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 ****************************************************************/
11 #include <wlansvc_s.h>
15 //#define GET_IF_ENTRY2_IMPLEMENTED 1
19 DWORD dwClientVersion
,
20 DWORD
*pdwNegotiatedVersion
,
21 LPWLANSVC_RPC_HANDLE phClientHandle
)
24 return ERROR_CALL_NOT_IMPLEMENTED
;
27 DWORD
_RpcCloseHandle(
28 LPWLANSVC_RPC_HANDLE phClientHandle
)
31 return ERROR_CALL_NOT_IMPLEMENTED
;
34 DWORD
_RpcEnumInterfaces(
35 WLANSVC_RPC_HANDLE hClientHandle
,
36 PWLAN_INTERFACE_INFO_LIST
*ppInterfaceList
)
38 #if GET_IF_ENTRY2_IMPLEMENTED
39 DWORD dwNumInterfaces
;
40 DWORD dwResult
, dwSize
;
43 PWLAN_INTERFACE_INFO_LIST InterfaceList
;
45 if (!hClientHandle
|| !ppInterfaceList
)
46 return ERROR_INVALID_PARAMETER
;
48 dwResult
= GetNumberOfInterfaces(&dwNumInterfaces
);
49 dwSize
= sizeof(WLAN_INTERFACE_INFO_LIST
);
50 if (dwResult
!= NO_ERROR
)
52 /* set num interfaces to zero when an error occurs */
57 if (dwNumInterfaces
> 1)
59 /* add extra size for interface */
60 dwSize
+= (dwNumInterfaces
-1) * sizeof(WLAN_INTERFACE_INFO
);
64 /* allocate interface list */
65 InterfaceList
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, dwSize
);
68 return ERROR_NOT_ENOUGH_MEMORY
;
71 *ppInterfaceList
= InterfaceList
;
77 for(dwIndex
= 0; dwIndex
< dwNumInterfaces
; dwIndex
++)
79 ZeroMemory(&IfRow
, sizeof(MIB_IF_ROW2
));
80 IfRow
.InterfaceIndex
= dwIndex
;
82 dwResult
= GetIfEntry2(&IfRow
);
83 if (dwResult
== NO_ERROR
)
85 if (IfRow
.Type
== IF_TYPE_IEEE80211
&& IfRow
.InterfaceAndOperStatusFlags
.HardwareInterface
)
87 RtlMoveMemory(&InterfaceList
->InterfaceInfo
[InterfaceList
->dwNumberOfItems
].InterfaceGuid
, &IfRow
.InterfaceGuid
, sizeof(GUID
));
88 wcscpy(InterfaceList
->InterfaceInfo
[InterfaceList
->dwNumberOfItems
].strInterfaceDescription
, IfRow
.Description
);
90 InterfaceList
->dwNumberOfItems
++;
98 return ERROR_CALL_NOT_IMPLEMENTED
;
102 DWORD
_RpcSetAutoConfigParameter(
103 WLANSVC_RPC_HANDLE hClientHandle
,
109 return ERROR_CALL_NOT_IMPLEMENTED
;
112 DWORD
_RpcQueryAutoConfigParameter(
113 WLANSVC_RPC_HANDLE hClientHandle
,
117 DWORD
*pWlanOpcodeValueType
)
120 return ERROR_CALL_NOT_IMPLEMENTED
;
123 DWORD
_RpcGetInterfaceCapability(
124 WLANSVC_RPC_HANDLE hClientHandle
,
125 GUID
*pInterfaceGuid
,
126 PWLAN_INTERFACE_CAPABILITY
*ppCapability
)
129 return ERROR_CALL_NOT_IMPLEMENTED
;
132 DWORD
_RpcSetInterface(
133 WLANSVC_RPC_HANDLE hClientHandle
,
134 GUID
*pInterfaceGuid
,
140 return ERROR_CALL_NOT_IMPLEMENTED
;
143 DWORD
_RpcQueryInterface(
144 WLANSVC_RPC_HANDLE hClientHandle
,
145 GUID
*pInterfaceGuid
,
149 LPDWORD pWlanOpcodeValueType
)
152 return ERROR_CALL_NOT_IMPLEMENTED
;
155 DWORD
_RpcIhvControl(
156 WLANSVC_RPC_HANDLE hClientHandle
,
157 GUID
*pInterfaceGuid
,
159 DWORD dwInBufferSize
,
161 DWORD dwOutBufferSize
,
163 LPDWORD pdwBytesReturned
)
166 return ERROR_CALL_NOT_IMPLEMENTED
;
170 WLANSVC_RPC_HANDLE hClientHandle
,
171 GUID
*pInterfaceGuid
,
172 PDOT11_SSID pDot11Ssid
,
173 PWLAN_RAW_DATA pIeData
)
176 DWORD dwBytesReturned;
178 ULONG OidCode = OID_802_11_BSSID_LIST_SCAN;
179 PNDIS_802_11_BSSID_LIST pBssIDList;
181 DeviceIoControl(hDevice,
182 IOCTL_NDIS_QUERY_GLOBAL_STATS,
191 return ERROR_CALL_NOT_IMPLEMENTED
;
194 DWORD
_RpcGetAvailableNetworkList(
195 WLANSVC_RPC_HANDLE hClientHandle
,
196 GUID
*pInterfaceGuid
,
198 WLAN_AVAILABLE_NETWORK_LIST
**ppAvailableNetworkList
)
201 return ERROR_CALL_NOT_IMPLEMENTED
;
204 DWORD
_RpcGetNetworkBssList(
205 WLANSVC_RPC_HANDLE hClientHandle
,
206 GUID
*pInterfaceGuid
,
207 PDOT11_SSID pDot11Ssid
,
209 DWORD bSecurityEnabled
,
210 LPDWORD dwBssListSize
,
211 LPBYTE
*ppWlanBssList
)
214 return ERROR_CALL_NOT_IMPLEMENTED
;
218 WLANSVC_RPC_HANDLE hClientHandle
,
219 GUID
*pInterfaceGuid
,
220 PWLAN_CONNECTION_PARAMETERS
*pConnectionParameters
)
223 return ERROR_CALL_NOT_IMPLEMENTED
;
226 DWORD
_RpcDisconnect(
227 WLANSVC_RPC_HANDLE hClientHandle
,
228 GUID
*pInterfaceGUID
)
231 return ERROR_CALL_NOT_IMPLEMENTED
;
234 DWORD
_RpcRegisterNotification(
235 WLANSVC_RPC_HANDLE hClientHandle
,
237 LPDWORD pdwPrevNotifSource
)
240 return ERROR_CALL_NOT_IMPLEMENTED
;
243 DWORD
_RpcAsyncGetNotification(
244 WLANSVC_RPC_HANDLE hClientHandle
,
245 PWLAN_NOTIFICATION_DATA
*NotificationData
)
248 return ERROR_CALL_NOT_IMPLEMENTED
;
251 DWORD
_RpcSetProfileEapUserData(
252 WLANSVC_RPC_HANDLE hClientHandle
,
253 GUID
*pInterfaceGuid
,
254 wchar_t *strProfileName
,
255 EAP_METHOD_TYPE MethodType
,
257 DWORD dwEapUserDataSize
,
258 LPBYTE pbEapUserData
)
261 return ERROR_CALL_NOT_IMPLEMENTED
;
264 DWORD
_RpcSetProfile(
265 WLANSVC_RPC_HANDLE hClientHandle
,
266 GUID
*pInterfaceGuid
,
268 wchar_t *strProfileXml
,
269 wchar_t *strAllUserProfileSecurity
,
271 LPDWORD pdwReasonCode
)
274 return ERROR_CALL_NOT_IMPLEMENTED
;
277 DWORD
_RpcGetProfile(
278 WLANSVC_RPC_HANDLE hClientHandle
,
279 GUID
*pInterfaceGuid
,
280 wchar_t *strProfileName
,
281 wchar_t **pstrProfileXml
,
283 LPDWORD pdwGrantedAccess
)
286 return ERROR_CALL_NOT_IMPLEMENTED
;
289 DWORD
_RpcDeleteProfile(
290 WLANSVC_RPC_HANDLE hClientHandle
,
291 GUID
*pInterfaceGuid
,
292 wchar_t *strProfileName
)
295 return ERROR_CALL_NOT_IMPLEMENTED
;
298 DWORD
_RpcRenameProfile(
299 WLANSVC_RPC_HANDLE hClientHandle
,
300 GUID
*pInterfaceGuid
,
301 wchar_t *strOldProfileName
,
302 wchar_t *strNewProfileName
)
305 return ERROR_CALL_NOT_IMPLEMENTED
;
308 DWORD
_RpcSetProfileList(
309 WLANSVC_RPC_HANDLE hClientHandle
,
310 GUID
*pInterfaceGuid
,
312 BYTE
**strProfileNames
)
315 return ERROR_CALL_NOT_IMPLEMENTED
;
318 DWORD
_RpcGetProfileList(
319 WLANSVC_RPC_HANDLE hClientHandle
,
320 GUID
*pInterfaceGuid
,
321 PWLAN_PROFILE_INFO_LIST
*ppProfileList
)
324 return ERROR_CALL_NOT_IMPLEMENTED
;
327 DWORD
_RpcSetProfilePosition(
328 WLANSVC_RPC_HANDLE hClientHandle
,
329 GUID
*pInterfaceGuid
,
330 wchar_t *strProfileName
,
334 return ERROR_CALL_NOT_IMPLEMENTED
;
337 DWORD
_RpcSetProfileCustomUserData(
338 WLANSVC_RPC_HANDLE hClientHandle
,
339 GUID
*pInterfaceGuid
,
340 wchar_t *strProfileName
,
345 return ERROR_CALL_NOT_IMPLEMENTED
;
348 DWORD
_RpcGetProfileCustomUserData(
349 WLANSVC_RPC_HANDLE hClientHandle
,
350 GUID
*pInterfaceGuid
,
351 wchar_t *strProfileName
,
356 return ERROR_CALL_NOT_IMPLEMENTED
;
359 DWORD
_RpcSetFilterList(
360 WLANSVC_RPC_HANDLE hClientHandle
,
361 short wlanFilterListType
,
362 PDOT11_NETWORK_LIST pNetworkList
)
365 return ERROR_CALL_NOT_IMPLEMENTED
;
368 DWORD
_RpcGetFilterList(
369 WLANSVC_RPC_HANDLE hClientHandle
,
370 short wlanFilterListType
,
371 PDOT11_NETWORK_LIST
*pNetworkList
)
374 return ERROR_CALL_NOT_IMPLEMENTED
;
377 DWORD
_RpcSetPsdIEDataList(
378 WLANSVC_RPC_HANDLE hClientHandle
,
380 DWORD dwDataListSize
,
381 LPBYTE pPsdIEDataList
)
384 return ERROR_CALL_NOT_IMPLEMENTED
;
387 DWORD
_RpcSaveTemporaryProfile(
388 WLANSVC_RPC_HANDLE hClientHandle
,
389 GUID
*pInterfaceGuid
,
390 wchar_t *strProfileName
,
391 wchar_t *strAllUserProfileSecurity
,
396 return ERROR_CALL_NOT_IMPLEMENTED
;
399 DWORD
_RpcIsUIRequestPending(
401 GUID
*pInterfaceGuid
,
406 return ERROR_CALL_NOT_IMPLEMENTED
;
409 DWORD
_RpcSetUIForwardingNetworkList(
416 return ERROR_CALL_NOT_IMPLEMENTED
;
419 DWORD
_RpcIsNetworkSuppressed(
422 GUID
*pInterfaceGuid
,
426 return ERROR_CALL_NOT_IMPLEMENTED
;
429 DWORD
_RpcRemoveUIForwardingNetworkList(
431 GUID
*pInterfaceGuid
)
434 return ERROR_CALL_NOT_IMPLEMENTED
;
437 DWORD
_RpcQueryExtUIRequest(
442 GUID
*pInterfaceGuid
,
446 return ERROR_CALL_NOT_IMPLEMENTED
;
449 DWORD
_RpcUIResponse(
455 return ERROR_CALL_NOT_IMPLEMENTED
;
458 DWORD
_RpcGetProfileKeyInfo(
461 GUID
*pInterfaceGuid
,
469 return ERROR_CALL_NOT_IMPLEMENTED
;
472 DWORD
_RpcAsyncDoPlap(
474 GUID
*pInterfaceGuid
,
480 return ERROR_CALL_NOT_IMPLEMENTED
;
483 DWORD
_RpcQueryPlapCredentials(
488 GUID
*pInterfaceGuid
,
495 return ERROR_CALL_NOT_IMPLEMENTED
;
498 DWORD
_RpcCancelPlap(
500 GUID
*pInterfaceGuid
)
503 return ERROR_CALL_NOT_IMPLEMENTED
;
506 DWORD
_RpcSetSecuritySettings(
507 WLANSVC_RPC_HANDLE hClientHandle
,
508 WLAN_SECURABLE_OBJECT SecurableObject
,
509 wchar_t *strModifiedSDDL
)
512 return ERROR_CALL_NOT_IMPLEMENTED
;
515 DWORD
_RpcGetSecuritySettings(
516 WLANSVC_RPC_HANDLE hClientHandle
,
517 WLAN_SECURABLE_OBJECT SecurableObject
,
518 WLAN_OPCODE_VALUE_TYPE
*pValueType
,
519 wchar_t **pstrCurrentSDDL
,
520 LPDWORD pdwGrantedAccess
)
523 return ERROR_CALL_NOT_IMPLEMENTED
;
526 void __RPC_FAR
* __RPC_USER
midl_user_allocate(SIZE_T len
)
528 return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, len
);
532 void __RPC_USER
midl_user_free(void __RPC_FAR
* ptr
)
534 HeapFree(GetProcessHeap(), 0, ptr
);
538 void __RPC_USER
WLANSVC_RPC_HANDLE_rundown(WLANSVC_RPC_HANDLE hClientHandle
)