-implement WlanScan and WlanEnumInterfaces

-add some more NDIS definitions

svn path=/trunk/; revision=40055
This commit is contained in:
Christoph von Wittich 2009-03-16 09:22:25 +00:00
parent 7ea6daa784
commit aaa5075d3d
5 changed files with 78 additions and 5 deletions

View file

@ -112,6 +112,21 @@ DWORD _RpcScan(
PDOT11_SSID pDot11Ssid, PDOT11_SSID pDot11Ssid,
PWLAN_RAW_DATA pIeData) PWLAN_RAW_DATA pIeData)
{ {
/*
DWORD dwBytesReturned;
HANDLE hDevice;
ULONG OidCode = OID_802_11_BSSID_LIST_SCAN;
PNDIS_802_11_BSSID_LIST pBssIDList;
DeviceIoControl(hDevice,
IOCTL_NDIS_QUERY_GLOBAL_STATS,
&OidCode,
sizeof(ULONG),
NULL,
0,
&dwBytesReturned,
NULL);
*/
UNIMPLEMENTED; UNIMPLEMENTED;
return ERROR_CALL_NOT_IMPLEMENTED; return ERROR_CALL_NOT_IMPLEMENTED;
} }
@ -173,7 +188,6 @@ DWORD _RpcAsyncGetNotification(
return ERROR_CALL_NOT_IMPLEMENTED; return ERROR_CALL_NOT_IMPLEMENTED;
} }
DWORD _RpcSetProfileEapUserData( DWORD _RpcSetProfileEapUserData(
WLANSVC_RPC_HANDLE hClientHandle, WLANSVC_RPC_HANDLE hClientHandle,
GUID *pInterfaceGuid, GUID *pInterfaceGuid,

View file

@ -60,13 +60,62 @@ WlanCloseHandle(IN HANDLE hClientHandle,
return dwError; return dwError;
} }
DWORD
WINAPI
WlanEnumInterfaces(IN HANDLE hClientHandle,
PVOID pReserved,
OUT PWLAN_INTERFACE_INFO_LIST *ppInterfaceList)
{
DWORD dwError = ERROR_SUCCESS;
if ((pReserved != NULL) || (ppInterfaceList == NULL) || (hClientHandle == NULL))
return ERROR_INVALID_PARAMETER;
RpcTryExcept
{
_RpcEnumInterfaces(hClientHandle, ppInterfaceList);
}
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
dwError = RpcExceptionCode();
}
RpcEndExcept;
return dwError;
}
DWORD
WINAPI
WlanScan(IN HANDLE hClientHandle,
IN GUID *pInterfaceGuid,
IN PDOT11_SSID pDot11Ssid,
IN PWLAN_RAW_DATA pIeData,
PVOID pReserved)
{
DWORD dwError = ERROR_SUCCESS;
if ((pReserved != NULL) || (pInterfaceGuid == NULL) || (hClientHandle == NULL))
return ERROR_INVALID_PARAMETER;
RpcTryExcept
{
_RpcScan(hClientHandle, pInterfaceGuid, pDot11Ssid, pIeData);
}
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
dwError = RpcExceptionCode();
}
RpcEndExcept;
return dwError;
}
void __RPC_FAR * __RPC_USER void __RPC_FAR * __RPC_USER
midl_user_allocate(size_t len) midl_user_allocate(size_t len)
{ {
return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len); return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
} }
void __RPC_USER void __RPC_USER
midl_user_free(void __RPC_FAR * ptr) midl_user_free(void __RPC_FAR * ptr)
{ {

View file

@ -1,9 +1,9 @@
@ stdcall WlanAllocateMemory (long) @ stdcall WlanAllocateMemory (long)
@ stub WlanCloseHandle @ stdcall WlanCloseHandle (ptr ptr)
@ stub WlanConnect @ stub WlanConnect
@ stub WlanDeleteProfile @ stub WlanDeleteProfile
@ stub WlanDisconnect @ stub WlanDisconnect
@ stub WlanEnumInterfaces @ stdcall WlanEnumInterfaces (ptr ptr ptr)
@ stub WlanExtractPsdIEDataList @ stub WlanExtractPsdIEDataList
@ stdcall WlanFreeMemory (ptr) @ stdcall WlanFreeMemory (ptr)
@ stub WlanGetAvailableNetworkList @ stub WlanGetAvailableNetworkList
@ -22,7 +22,7 @@
@ stub WlanRegisterNotification @ stub WlanRegisterNotification
@ stub WlanRenameProfile @ stub WlanRenameProfile
@ stub WlanSaveTemporaryProfile @ stub WlanSaveTemporaryProfile
@ stub WlanScan @ stdcall WlanScan (ptr ptr ptr ptr ptr)
@ stub WlanSetAutoConfigParameter @ stub WlanSetAutoConfigParameter
@ stub WlanSetFilterList @ stub WlanSetFilterList
@ stub WlanSetInterface @ stub WlanSetInterface

View file

@ -2,6 +2,9 @@
#define _NTDDNDIS_ #define _NTDDNDIS_
#endif #endif
#define OID_802_11_BSSID_LIST 0x0D010217
#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A
typedef struct _NDIS_OBJECT_HEADER typedef struct _NDIS_OBJECT_HEADER
{ {
UCHAR Type; UCHAR Type;
@ -9,4 +12,9 @@ typedef struct _NDIS_OBJECT_HEADER
USHORT Size; USHORT Size;
} NDIS_OBJECT_HEADER, *PNDIS_OBJECT_HEADER; } NDIS_OBJECT_HEADER, *PNDIS_OBJECT_HEADER;
typedef struct _NDIS_802_11_BSSID_LIST
{
ULONG NumberOfItems;
NDIS_WLAN_BSSID Bssid[1];
} NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST;

View file

@ -190,6 +190,8 @@ PVOID WINAPI WlanAllocateMemory(DWORD dwSize);
VOID WINAPI WlanFreeMemory(PVOID pMemory); VOID WINAPI WlanFreeMemory(PVOID pMemory);
DWORD WINAPI WlanOpenHandle(IN DWORD dwClientVersion, PVOID pReserved, OUT DWORD *pdwNegotiatedVersion, OUT HANDLE *phClientHandle); DWORD WINAPI WlanOpenHandle(IN DWORD dwClientVersion, PVOID pReserved, OUT DWORD *pdwNegotiatedVersion, OUT HANDLE *phClientHandle);
DWORD WINAPI WlanCloseHandle(IN HANDLE hClientHandle, PVOID pReserved); DWORD WINAPI WlanCloseHandle(IN HANDLE hClientHandle, PVOID pReserved);
DWORD WINAPI WlanEnumInterfaces(IN HANDLE hClientHandle, PVOID pReserved, OUT PWLAN_INTERFACE_INFO_LIST *ppInterfaceList);
DWORD WINAPI WlanScan(IN HANDLE hClientHandle, IN GUID *pInterfaceGuid, IN PDOT11_SSID pDot11Ssid, IN PWLAN_RAW_DATA pIeData, PVOID pReserved);
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus