2 * PROJECT: ReactOS WLAN Service
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: base/services/wlansvc/rpcserver.c
5 * PURPOSE: RPC server interface
6 * COPYRIGHT: Copyright 2009 Christoph von Wittich
9 /* INCLUDES ****************************************************************/
13 #include "wlansvc_s.h"
17 //#define GET_IF_ENTRY2_IMPLEMENTED 1
21 DWORD dwClientVersion
,
22 DWORD
*pdwNegotiatedVersion
,
23 LPWLANSVC_RPC_HANDLE phClientHandle
)
26 return ERROR_CALL_NOT_IMPLEMENTED
;
29 DWORD
_RpcCloseHandle(
30 LPWLANSVC_RPC_HANDLE phClientHandle
)
33 return ERROR_CALL_NOT_IMPLEMENTED
;
36 DWORD
_RpcEnumInterfaces(
37 WLANSVC_RPC_HANDLE hClientHandle
,
38 PWLAN_INTERFACE_INFO_LIST
*ppInterfaceList
)
40 #if GET_IF_ENTRY2_IMPLEMENTED
41 DWORD dwNumInterfaces
;
42 DWORD dwResult
, dwSize
;
45 PWLAN_INTERFACE_INFO_LIST InterfaceList
;
47 if (!hClientHandle
|| !ppInterfaceList
)
48 return ERROR_INVALID_PARAMETER
;
50 dwResult
= GetNumberOfInterfaces(&dwNumInterfaces
);
51 dwSize
= sizeof(WLAN_INTERFACE_INFO_LIST
);
52 if (dwResult
!= NO_ERROR
)
54 /* set num interfaces to zero when an error occurs */
59 if (dwNumInterfaces
> 1)
61 /* add extra size for interface */
62 dwSize
+= (dwNumInterfaces
-1) * sizeof(WLAN_INTERFACE_INFO
);
66 /* allocate interface list */
67 InterfaceList
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, dwSize
);
70 return ERROR_NOT_ENOUGH_MEMORY
;
73 *ppInterfaceList
= InterfaceList
;
79 for(dwIndex
= 0; dwIndex
< dwNumInterfaces
; dwIndex
++)
81 ZeroMemory(&IfRow
, sizeof(MIB_IF_ROW2
));
82 IfRow
.InterfaceIndex
= dwIndex
;
84 dwResult
= GetIfEntry2(&IfRow
);
85 if (dwResult
== NO_ERROR
)
87 if (IfRow
.Type
== IF_TYPE_IEEE80211
&& IfRow
.InterfaceAndOperStatusFlags
.HardwareInterface
)
89 RtlMoveMemory(&InterfaceList
->InterfaceInfo
[InterfaceList
->dwNumberOfItems
].InterfaceGuid
, &IfRow
.InterfaceGuid
, sizeof(GUID
));
90 wcscpy(InterfaceList
->InterfaceInfo
[InterfaceList
->dwNumberOfItems
].strInterfaceDescription
, IfRow
.Description
);
92 InterfaceList
->dwNumberOfItems
++;
100 return ERROR_CALL_NOT_IMPLEMENTED
;
104 DWORD
_RpcSetAutoConfigParameter(
105 WLANSVC_RPC_HANDLE hClientHandle
,
111 return ERROR_CALL_NOT_IMPLEMENTED
;
114 DWORD
_RpcQueryAutoConfigParameter(
115 WLANSVC_RPC_HANDLE hClientHandle
,
119 DWORD
*pWlanOpcodeValueType
)
122 return ERROR_CALL_NOT_IMPLEMENTED
;
125 DWORD
_RpcGetInterfaceCapability(
126 WLANSVC_RPC_HANDLE hClientHandle
,
127 GUID
*pInterfaceGuid
,
128 PWLAN_INTERFACE_CAPABILITY
*ppCapability
)
131 return ERROR_CALL_NOT_IMPLEMENTED
;
134 DWORD
_RpcSetInterface(
135 WLANSVC_RPC_HANDLE hClientHandle
,
136 GUID
*pInterfaceGuid
,
142 return ERROR_CALL_NOT_IMPLEMENTED
;
145 DWORD
_RpcQueryInterface(
146 WLANSVC_RPC_HANDLE hClientHandle
,
147 GUID
*pInterfaceGuid
,
151 LPDWORD pWlanOpcodeValueType
)
154 return ERROR_CALL_NOT_IMPLEMENTED
;
157 DWORD
_RpcIhvControl(
158 WLANSVC_RPC_HANDLE hClientHandle
,
159 GUID
*pInterfaceGuid
,
161 DWORD dwInBufferSize
,
163 DWORD dwOutBufferSize
,
165 LPDWORD pdwBytesReturned
)
168 return ERROR_CALL_NOT_IMPLEMENTED
;
172 WLANSVC_RPC_HANDLE hClientHandle
,
173 GUID
*pInterfaceGuid
,
174 PDOT11_SSID pDot11Ssid
,
175 PWLAN_RAW_DATA pIeData
)
178 DWORD dwBytesReturned;
180 ULONG OidCode = OID_802_11_BSSID_LIST_SCAN;
181 PNDIS_802_11_BSSID_LIST pBssIDList;
183 DeviceIoControl(hDevice,
184 IOCTL_NDIS_QUERY_GLOBAL_STATS,
193 return ERROR_CALL_NOT_IMPLEMENTED
;
196 DWORD
_RpcGetAvailableNetworkList(
197 WLANSVC_RPC_HANDLE hClientHandle
,
198 GUID
*pInterfaceGuid
,
200 WLAN_AVAILABLE_NETWORK_LIST
**ppAvailableNetworkList
)
203 return ERROR_CALL_NOT_IMPLEMENTED
;
206 DWORD
_RpcGetNetworkBssList(
207 WLANSVC_RPC_HANDLE hClientHandle
,
208 GUID
*pInterfaceGuid
,
209 PDOT11_SSID pDot11Ssid
,
211 DWORD bSecurityEnabled
,
212 LPDWORD dwBssListSize
,
213 LPBYTE
*ppWlanBssList
)
216 return ERROR_CALL_NOT_IMPLEMENTED
;
220 WLANSVC_RPC_HANDLE hClientHandle
,
221 GUID
*pInterfaceGuid
,
222 PWLAN_CONNECTION_PARAMETERS
*pConnectionParameters
)
225 return ERROR_CALL_NOT_IMPLEMENTED
;
228 DWORD
_RpcDisconnect(
229 WLANSVC_RPC_HANDLE hClientHandle
,
230 GUID
*pInterfaceGUID
)
233 return ERROR_CALL_NOT_IMPLEMENTED
;
236 DWORD
_RpcRegisterNotification(
237 WLANSVC_RPC_HANDLE hClientHandle
,
239 LPDWORD pdwPrevNotifSource
)
242 return ERROR_CALL_NOT_IMPLEMENTED
;
245 DWORD
_RpcAsyncGetNotification(
246 WLANSVC_RPC_HANDLE hClientHandle
,
247 PWLAN_NOTIFICATION_DATA
*NotificationData
)
250 return ERROR_CALL_NOT_IMPLEMENTED
;
253 DWORD
_RpcSetProfileEapUserData(
254 WLANSVC_RPC_HANDLE hClientHandle
,
255 GUID
*pInterfaceGuid
,
256 wchar_t *strProfileName
,
257 EAP_METHOD_TYPE MethodType
,
259 DWORD dwEapUserDataSize
,
260 LPBYTE pbEapUserData
)
263 return ERROR_CALL_NOT_IMPLEMENTED
;
266 DWORD
_RpcSetProfile(
267 WLANSVC_RPC_HANDLE hClientHandle
,
268 GUID
*pInterfaceGuid
,
270 wchar_t *strProfileXml
,
271 wchar_t *strAllUserProfileSecurity
,
273 LPDWORD pdwReasonCode
)
276 return ERROR_CALL_NOT_IMPLEMENTED
;
279 DWORD
_RpcGetProfile(
280 WLANSVC_RPC_HANDLE hClientHandle
,
281 GUID
*pInterfaceGuid
,
282 wchar_t *strProfileName
,
283 wchar_t **pstrProfileXml
,
285 LPDWORD pdwGrantedAccess
)
288 return ERROR_CALL_NOT_IMPLEMENTED
;
291 DWORD
_RpcDeleteProfile(
292 WLANSVC_RPC_HANDLE hClientHandle
,
293 GUID
*pInterfaceGuid
,
294 wchar_t *strProfileName
)
297 return ERROR_CALL_NOT_IMPLEMENTED
;
300 DWORD
_RpcRenameProfile(
301 WLANSVC_RPC_HANDLE hClientHandle
,
302 GUID
*pInterfaceGuid
,
303 wchar_t *strOldProfileName
,
304 wchar_t *strNewProfileName
)
307 return ERROR_CALL_NOT_IMPLEMENTED
;
310 DWORD
_RpcSetProfileList(
311 WLANSVC_RPC_HANDLE hClientHandle
,
312 GUID
*pInterfaceGuid
,
314 BYTE
**strProfileNames
)
317 return ERROR_CALL_NOT_IMPLEMENTED
;
320 DWORD
_RpcGetProfileList(
321 WLANSVC_RPC_HANDLE hClientHandle
,
322 GUID
*pInterfaceGuid
,
323 PWLAN_PROFILE_INFO_LIST
*ppProfileList
)
326 return ERROR_CALL_NOT_IMPLEMENTED
;
329 DWORD
_RpcSetProfilePosition(
330 WLANSVC_RPC_HANDLE hClientHandle
,
331 GUID
*pInterfaceGuid
,
332 wchar_t *strProfileName
,
336 return ERROR_CALL_NOT_IMPLEMENTED
;
339 DWORD
_RpcSetProfileCustomUserData(
340 WLANSVC_RPC_HANDLE hClientHandle
,
341 GUID
*pInterfaceGuid
,
342 wchar_t *strProfileName
,
347 return ERROR_CALL_NOT_IMPLEMENTED
;
350 DWORD
_RpcGetProfileCustomUserData(
351 WLANSVC_RPC_HANDLE hClientHandle
,
352 GUID
*pInterfaceGuid
,
353 wchar_t *strProfileName
,
358 return ERROR_CALL_NOT_IMPLEMENTED
;
361 DWORD
_RpcSetFilterList(
362 WLANSVC_RPC_HANDLE hClientHandle
,
363 short wlanFilterListType
,
364 PDOT11_NETWORK_LIST pNetworkList
)
367 return ERROR_CALL_NOT_IMPLEMENTED
;
370 DWORD
_RpcGetFilterList(
371 WLANSVC_RPC_HANDLE hClientHandle
,
372 short wlanFilterListType
,
373 PDOT11_NETWORK_LIST
*pNetworkList
)
376 return ERROR_CALL_NOT_IMPLEMENTED
;
379 DWORD
_RpcSetPsdIEDataList(
380 WLANSVC_RPC_HANDLE hClientHandle
,
382 DWORD dwDataListSize
,
383 LPBYTE pPsdIEDataList
)
386 return ERROR_CALL_NOT_IMPLEMENTED
;
389 DWORD
_RpcSaveTemporaryProfile(
390 WLANSVC_RPC_HANDLE hClientHandle
,
391 GUID
*pInterfaceGuid
,
392 wchar_t *strProfileName
,
393 wchar_t *strAllUserProfileSecurity
,
398 return ERROR_CALL_NOT_IMPLEMENTED
;
401 DWORD
_RpcIsUIRequestPending(
403 GUID
*pInterfaceGuid
,
408 return ERROR_CALL_NOT_IMPLEMENTED
;
411 DWORD
_RpcSetUIForwardingNetworkList(
418 return ERROR_CALL_NOT_IMPLEMENTED
;
421 DWORD
_RpcIsNetworkSuppressed(
424 GUID
*pInterfaceGuid
,
428 return ERROR_CALL_NOT_IMPLEMENTED
;
431 DWORD
_RpcRemoveUIForwardingNetworkList(
433 GUID
*pInterfaceGuid
)
436 return ERROR_CALL_NOT_IMPLEMENTED
;
439 DWORD
_RpcQueryExtUIRequest(
444 GUID
*pInterfaceGuid
,
448 return ERROR_CALL_NOT_IMPLEMENTED
;
451 DWORD
_RpcUIResponse(
457 return ERROR_CALL_NOT_IMPLEMENTED
;
460 DWORD
_RpcGetProfileKeyInfo(
463 GUID
*pInterfaceGuid
,
471 return ERROR_CALL_NOT_IMPLEMENTED
;
474 DWORD
_RpcAsyncDoPlap(
476 GUID
*pInterfaceGuid
,
482 return ERROR_CALL_NOT_IMPLEMENTED
;
485 DWORD
_RpcQueryPlapCredentials(
490 GUID
*pInterfaceGuid
,
497 return ERROR_CALL_NOT_IMPLEMENTED
;
500 DWORD
_RpcCancelPlap(
502 GUID
*pInterfaceGuid
)
505 return ERROR_CALL_NOT_IMPLEMENTED
;
508 DWORD
_RpcSetSecuritySettings(
509 WLANSVC_RPC_HANDLE hClientHandle
,
510 WLAN_SECURABLE_OBJECT SecurableObject
,
511 wchar_t *strModifiedSDDL
)
514 return ERROR_CALL_NOT_IMPLEMENTED
;
517 DWORD
_RpcGetSecuritySettings(
518 WLANSVC_RPC_HANDLE hClientHandle
,
519 WLAN_SECURABLE_OBJECT SecurableObject
,
520 WLAN_OPCODE_VALUE_TYPE
*pValueType
,
521 wchar_t **pstrCurrentSDDL
,
522 LPDWORD pdwGrantedAccess
)
525 return ERROR_CALL_NOT_IMPLEMENTED
;
528 void __RPC_FAR
* __RPC_USER
midl_user_allocate(SIZE_T len
)
530 return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, len
);
534 void __RPC_USER
midl_user_free(void __RPC_FAR
* ptr
)
536 HeapFree(GetProcessHeap(), 0, ptr
);
540 void __RPC_USER
WLANSVC_RPC_HANDLE_rundown(WLANSVC_RPC_HANDLE hClientHandle
)