13 #define WLAN_MAX_PHY_INDEX 64
14 #define WLAN_MAX_NAME_LENGTH 256
18 #if defined(__midl) || defined(__WIDL__)
19 typedef [v1_enum
] enum _WLAN_OPCODE_VALUE_TYPE
{
21 typedef enum _WLAN_OPCODE_VALUE_TYPE
{
23 wlan_opcode_value_type_query_only
= 0,
24 wlan_opcode_value_type_set_by_group_policy
,
25 wlan_opcode_value_type_set_by_user
,
26 wlan_opcode_value_type_invalid
27 } WLAN_OPCODE_VALUE_TYPE
;
29 typedef enum _WLAN_SECURABLE_OBJECT
{
30 wlan_secure_permit_list
= 0,
31 wlan_secure_deny_list
,
32 wlan_secure_ac_enabled
,
33 wlan_secure_bc_scan_enabled
,
35 wlan_secure_show_denied
,
36 wlan_secure_interface_properties
,
37 wlan_secure_ihv_control
,
38 wlan_secure_all_user_profiles_order
,
39 wlan_secure_add_new_all_user_profiles
,
40 wlan_secure_add_new_per_user_profiles
,
41 wlan_secure_media_streaming_mode_enabled
,
42 wlan_secure_current_operation_mode
,
43 WLAN_SECURABLE_OBJECT_COUNT
44 } WLAN_SECURABLE_OBJECT
, *PWLAN_SECURABLE_OBJECT
;
46 typedef enum _WLAN_CONNECTION_MODE
{
47 wlan_connection_mode_profile
= 0,
48 wlan_connection_mode_temporary_profile
,
49 wlan_connection_mode_discovery_secure
,
50 wlan_connection_mode_discovery_unsecure
,
51 wlan_connection_mode_auto
,
52 wlan_connection_mode_invalid
53 } WLAN_CONNECTION_MODE
, *PWLAN_CONNECTION_MODE
;
55 #if defined(__midl) || defined(__WIDL__)
56 typedef [v1_enum
] enum _WLAN_INTERFACE_STATE
{
58 typedef enum _WLAN_INTERFACE_STATE
{
60 wlan_interface_state_not_ready
= 0,
61 wlan_interface_state_connected
,
62 wlan_interface_state_ad_hoc_network_formed
,
63 wlan_interface_state_disconnecting
,
64 wlan_interface_state_disconnected
,
65 wlan_interface_state_associating
,
66 wlan_interface_state_discovering
,
67 wlan_interface_state_authenticating
68 } WLAN_INTERFACE_STATE
;
70 typedef enum _WLAN_INTERFACE_TYPE
{
71 wlan_interface_type_emulated_802_11
= 0,
72 wlan_interface_type_native_802_11
,
73 wlan_interface_type_invalid
74 } WLAN_INTERFACE_TYPE
, *PWLAN_INTERFACE_TYPE
;
77 typedef DWORD WLAN_REASON_CODE
, *PWLAN_REASON_CODE
;
78 typedef ULONG WLAN_SIGNAL_QUALITY
, *PWLAN_SIGNAL_QUALITY
;
80 typedef struct _DOT11_NETWORK
{
82 DOT11_BSS_TYPE dot11BssType
;
83 } DOT11_NETWORK
, *PDOT11_NETWORK
;
85 typedef struct _DOT11_NETWORK_LIST
{
86 DWORD dwNumberOfItems
;
88 #if defined(__midl) || defined(__WIDL__)
89 [size_is(dwNumberOfItems
)] DOT11_NETWORK Network
[];
91 DOT11_NETWORK Network
[1];
93 } DOT11_NETWORK_LIST
, *PDOT11_NETWORK_LIST
;
95 typedef struct _WLAN_INTERFACE_INFO
{
97 WCHAR strInterfaceDescription
[256];
98 WLAN_INTERFACE_STATE isState
;
99 } WLAN_INTERFACE_INFO
, *PWLAN_INTERFACE_INFO
;
101 typedef struct _WLAN_INTERFACE_INFO_LIST
{
102 DWORD dwNumberOfItems
;
104 #if defined(__midl) || defined(__WIDL__)
105 [unique
, size_is(dwNumberOfItems
)] WLAN_INTERFACE_INFO InterfaceInfo
[*];
107 WLAN_INTERFACE_INFO InterfaceInfo
[1];
109 } WLAN_INTERFACE_INFO_LIST
, *PWLAN_INTERFACE_INFO_LIST
;
111 typedef struct _WLAN_INTERFACE_CAPABILITY
{
112 WLAN_INTERFACE_TYPE interfaceType
;
113 BOOL bDot11DSupported
;
114 DWORD dwMaxDesiredSsidListSize
;
115 DWORD dwMaxDesiredBssidListSize
;
116 DWORD dwNumberOfSupportedPhys
;
117 /* enum32 */ long dot11PhyTypes
[WLAN_MAX_PHY_INDEX
];
118 } WLAN_INTERFACE_CAPABILITY
, *PWLAN_INTERFACE_CAPABILITY
;
120 typedef struct _WLAN_RAW_DATA
{
122 #if defined(__midl) || defined(__WIDL__)
123 [size_is(dwDataSize
)] BYTE DataBlob
[];
127 } WLAN_RAW_DATA
, *PWLAN_RAW_DATA
;
129 typedef struct _WLAN_PROFILE_INFO
{
130 WCHAR strProfileName
[256];
132 } WLAN_PROFILE_INFO
, *PWLAN_PROFILE_INFO
;
134 typedef struct _WLAN_PROFILE_INFO_LIST
{
135 DWORD dwNumberOfItems
;
137 #if defined(__midl) || defined(__WIDL__)
138 [size_is(dwNumberOfItems
)] WLAN_PROFILE_INFO ProfileInfo
[];
140 WLAN_PROFILE_INFO ProfileInfo
[1];
142 } WLAN_PROFILE_INFO_LIST
, *PWLAN_PROFILE_INFO_LIST
;
144 typedef struct _WLAN_AVAILABLE_NETWORK
{
145 WCHAR strProfileName
[WLAN_MAX_NAME_LENGTH
];
146 DOT11_SSID dot11Ssid
;
147 DOT11_BSS_TYPE dot11BssType
;
148 ULONG uNumberOfBssids
;
149 BOOL bNetworkConnectable
;
150 WLAN_REASON_CODE wlanNotConnectableReason
;
151 ULONG uNumberOfPhyTypes
;
152 DOT11_PHY_TYPE dot11PhyTypes
[8];
154 WLAN_SIGNAL_QUALITY wlanSignalQuality
;
155 BOOL bSecurityEnabled
;
156 DOT11_AUTH_ALGORITHM dot11DefaultAuthAlgorithm
;
157 DOT11_CIPHER_ALGORITHM dot11DefaultCipherAlgorithm
;
160 } WLAN_AVAILABLE_NETWORK
, *PWLAN_AVAILABLE_NETWORK
;
162 typedef struct _WLAN_AVAILABLE_NETWORK_LIST
{
163 DWORD dwNumberOfItems
;
165 #if defined(__midl) || defined(__WIDL__)
166 [size_is(dwNumberOfItems
)] WLAN_AVAILABLE_NETWORK Network
[*];
168 WLAN_AVAILABLE_NETWORK Network
[1];
170 } WLAN_AVAILABLE_NETWORK_LIST
,*PWLAN_AVAILABLE_NETWORK_LIST
;
172 typedef struct _WLAN_CONNECTION_PARAMETERS
{
173 WLAN_CONNECTION_MODE wlanConnectionMode
;
174 #if defined(__midl) || defined(__WIDL__)
175 [string
] LPCWSTR strProfile
;
179 PDOT11_SSID pDot11Ssid
;
180 PDOT11_BSSID_LIST pDesiredBssidList
;
181 DOT11_BSS_TYPE dot11BssType
;
183 } WLAN_CONNECTION_PARAMETERS
, *PWLAN_CONNECTION_PARAMETERS
;
185 typedef L2_NOTIFICATION_DATA WLAN_NOTIFICATION_DATA
, *PWLAN_NOTIFICATION_DATA
;
188 #if !defined(__midl) && !defined(__WIDL__)
189 PVOID WINAPI
WlanAllocateMemory(DWORD dwSize
);
190 VOID WINAPI
WlanFreeMemory(PVOID pMemory
);
191 DWORD WINAPI
WlanOpenHandle(IN DWORD dwClientVersion
, PVOID pReserved
, OUT DWORD
*pdwNegotiatedVersion
, OUT HANDLE
*phClientHandle
);
192 DWORD WINAPI
WlanCloseHandle(IN HANDLE hClientHandle
, PVOID pReserved
);
193 DWORD WINAPI
WlanEnumInterfaces(IN HANDLE hClientHandle
, PVOID pReserved
, OUT PWLAN_INTERFACE_INFO_LIST
*ppInterfaceList
);
194 DWORD WINAPI
WlanScan(IN HANDLE hClientHandle
, IN GUID
*pInterfaceGuid
, IN PDOT11_SSID pDot11Ssid
, IN PWLAN_RAW_DATA pIeData
, PVOID pReserved
);