1 // Licensed under the Apache License, Version 2.0 2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 4 // All files in the project carrying such notice may not be copied, modified, or distributed 5 // except according to those terms. 6 //! Definition of public APIs for WLAN Extensibility Framework. 7 use shared::basetsd::UINT32; 8 use shared::guiddef::{CLSID, GUID}; 9 use shared::minwindef::{BOOL, BYTE, DWORD, LPVOID, PBOOL, PBYTE, PDWORD, UCHAR, ULONG, USHORT}; 10 use shared::windot11::{ 11 DOT11_ASSOC_STATUS, DOT11_DIRECTION, PDOT11_ASSOCIATION_COMPLETION_PARAMETERS, 12 PDOT11_CIPHER_DEFAULT_KEY_VALUE, PDOT11_CIPHER_KEY_MAPPING_KEY_VALUE, PDOT11_MAC_ADDRESS, 13 PDOT11_PRIVACY_EXEMPTION, 14 }; 15 use shared::wlantypes::{DOT11_AUTH_ALGORITHM, DOT11_BSS_TYPE, DOT11_CIPHER_ALGORITHM, DOT11_SSID}; 16 use um::dot1x::{ONEX_AUTH_STATUS, ONEX_REASON_CODE}; 17 use um::eaptypes::EAP_ATTRIBUTES; 18 use um::l2cmn::PL2_NOTIFICATION_DATA; 19 use um::winnt::{HANDLE, LPWSTR, PHANDLE, WCHAR}; 20 use um::winuser::PWTSSESSION_NOTIFICATION; 21 use um::wlanihvtypes::{MS_MAX_PROFILE_NAME_LENGTH, PDOT11EXT_IHV_PROFILE_PARAMS}; 22 use um::wlclient::{PDOT11_ADAPTER, PDOT11_BSS_LIST, PDOT11_PORT_STATE}; 23 STRUCT!{struct DOT11EXT_APIS { 24 Dot11ExtAllocateBuffer: DOT11EXT_ALLOCATE_BUFFER, 25 Dot11ExtFreeBuffer: DOT11EXT_FREE_BUFFER, 26 Dot11ExtSetProfileCustomUserData: DOT11EXT_SET_PROFILE_CUSTOM_USER_DATA, 27 Dot11ExtGetProfileCustomUserData: DOT11EXT_GET_PROFILE_CUSTOM_USER_DATA, 28 Dot11ExtSetCurrentProfile: DOT11EXT_SET_CURRENT_PROFILE, 29 Dot11ExtSendUIRequest: DOT11EXT_SEND_UI_REQUEST, 30 Dot11ExtPreAssociateCompletion: DOT11EXT_PRE_ASSOCIATE_COMPLETION, 31 Dot11ExtPostAssociateCompletion: DOT11EXT_POST_ASSOCIATE_COMPLETION, 32 Dot11ExtSendNotification: DOT11EXT_SEND_NOTIFICATION, 33 Dot11ExtSendPacket: DOT11EXT_SEND_PACKET, 34 Dot11ExtSetEtherTypeHandling: DOT11EXT_SET_ETHERTYPE_HANDLING, 35 Dot11ExtSetAuthAlgorithm: DOT11EXT_SET_AUTH_ALGORITHM, 36 Dot11ExtSetUnicastCipherAlgorithm: DOT11EXT_SET_UNICAST_CIPHER_ALGORITHM, 37 Dot11ExtSetMulticastCipherAlgorithm: DOT11EXT_SET_MULTICAST_CIPHER_ALGORITHM, 38 Dot11ExtSetDefaultKey: DOT11EXT_SET_DEFAULT_KEY, 39 Dot11ExtSetKeyMappingKey: DOT11EXT_SET_KEY_MAPPING_KEY, 40 Dot11ExtSetDefaultKeyId: DOT11EXT_SET_DEFAULT_KEY_ID, 41 Dot11ExtNicSpecificExtension: DOT11EXT_NIC_SPECIFIC_EXTENSION, 42 Dot11ExtSetExcludeUnencrypted: DOT11EXT_SET_EXCLUDE_UNENCRYPTED, 43 Dot11ExtStartOneX: DOT11EXT_ONEX_START, 44 Dot11ExtStopOneX: DOT11EXT_ONEX_STOP, 45 Dot11ExtProcessSecurityPacket: DOT11EXT_PROCESS_ONEX_PACKET, 46 }} 47 pub type PDOT11EXT_APIS = *mut DOT11EXT_APIS; 48 STRUCT!{struct DOT11EXT_IHV_HANDLERS { 49 Dot11ExtIhvDeinitService: DOT11EXTIHV_DEINIT_SERVICE, 50 Dot11ExtIhvInitAdapter: DOT11EXTIHV_INIT_ADAPTER, 51 Dot11ExtIhvDeinitAdapter: DOT11EXTIHV_DEINIT_ADAPTER, 52 Dot11ExtIhvPerformPreAssociate: DOT11EXTIHV_PERFORM_PRE_ASSOCIATE, 53 Dot11ExtIhvAdapterReset: DOT11EXTIHV_ADAPTER_RESET, 54 Dot11ExtIhvPerformPostAssociate: DOT11EXTIHV_PERFORM_POST_ASSOCIATE, 55 Dot11ExtIhvStopPostAssociate: DOT11EXTIHV_STOP_POST_ASSOCIATE, 56 Dot11ExtIhvValidateProfile: DOT11EXTIHV_VALIDATE_PROFILE, 57 Dot11ExtIhvPerformCapabilityMatch: DOT11EXTIHV_PERFORM_CAPABILITY_MATCH, 58 Dot11ExtIhvCreateDiscoveryProfiles: DOT11EXTIHV_CREATE_DISCOVERY_PROFILES, 59 Dot11ExtIhvProcessSessionChange: DOT11EXTIHV_PROCESS_SESSION_CHANGE, 60 Dot11ExtIhvReceiveIndication: DOT11EXTIHV_RECEIVE_INDICATION, 61 Dot11ExtIhvReceivePacket: DOT11EXTIHV_RECEIVE_PACKET, 62 Dot11ExtIhvSendPacketCompletion: DOT11EXTIHV_SEND_PACKET_COMPLETION, 63 Dot11ExtIhvIsUIRequestPending: DOT11EXTIHV_IS_UI_REQUEST_PENDING, 64 Dot11ExtIhvProcessUIResponse: DOT11EXTIHV_PROCESS_UI_RESPONSE, 65 Dot11ExtIhvQueryUIRequest: DOT11EXTIHV_QUERY_UI_REQUEST, 66 Dot11ExtIhvOnexIndicateResult: DOT11EXTIHV_ONEX_INDICATE_RESULT, 67 Dot11ExtIhvControl: DOT11EXTIHV_CONTROL, 68 }} 69 pub type PDOT11EXT_IHV_HANDLERS = *mut DOT11EXT_IHV_HANDLERS; 70 STRUCT!{struct DOT11EXT_VIRTUAL_STATION_APIS { 71 Dot11ExtRequestVirtualStation: DOT11EXT_REQUEST_VIRTUAL_STATION, 72 Dot11ExtReleaseVirtualStation: DOT11EXT_RELEASE_VIRTUAL_STATION, 73 Dot11ExtQueryVirtualStationProperties: DOT11EXT_QUERY_VIRTUAL_STATION_PROPERTIES, 74 Dot11ExtSetVirtualStationAPProperties: DOT11EXT_SET_VIRTUAL_STATION_AP_PROPERTIES, 75 }} 76 pub type PDOT11EXT_VIRTUAL_STATION_APIS = *mut DOT11EXT_VIRTUAL_STATION_APIS; 77 STRUCT!{struct DOT11_IHV_VERSION_INFO { 78 dwVerMin: DWORD, 79 dwVerMax: DWORD, 80 }} 81 pub type PDOT11_IHV_VERSION_INFO = *mut DOT11_IHV_VERSION_INFO; 82 ENUM!{enum DOT11EXT_IHV_CONNECTION_PHASE { 83 connection_phase_any = 0, 84 connection_phase_initial_connection = 1, 85 connection_phase_post_l3_connection = 2, 86 }} 87 pub type PDOT11EXT_IHV_CONNECTION_PHASE = *mut DOT11EXT_IHV_CONNECTION_PHASE; 88 STRUCT!{struct DOT11EXT_IHV_UI_REQUEST { 89 dwSessionId: DWORD, 90 guidUIRequest: GUID, 91 UIPageClsid: CLSID, 92 dwByteCount: DWORD, 93 pvUIRequest: *mut BYTE, 94 }} 95 pub type PDOT11EXT_IHV_UI_REQUEST = *mut DOT11EXT_IHV_UI_REQUEST; 96 ENUM!{enum DOT11_MSONEX_RESULT { 97 DOT11_MSONEX_SUCCESS = 0, 98 DOT11_MSONEX_FAILURE = 1, 99 DOT11_MSONEX_IN_PROGRESS = 2, 100 }} 101 pub type PDOT11_MSONEX_RESULT = *mut DOT11_MSONEX_RESULT; 102 STRUCT!{struct DOT11_EAP_RESULT { 103 dwFailureReasonCode: UINT32, 104 pAttribArray: *mut EAP_ATTRIBUTES, 105 }} 106 pub type PDOT11_EAP_RESULT = *mut DOT11_EAP_RESULT; 107 STRUCT!{struct DOT11_MSONEX_RESULT_PARAMS { 108 Dot11OnexAuthStatus: ONEX_AUTH_STATUS, 109 Dot11OneXReasonCode: ONEX_REASON_CODE, 110 pbMPPESendKey: PBYTE, 111 dwMPPESendKeyLen: DWORD, 112 pbMPPERecvKey: PBYTE, 113 dwMPPERecvKeyLen: DWORD, 114 pDot11EapResult: PDOT11_EAP_RESULT, 115 }} 116 pub type PDOT11_MSONEX_RESULT_PARAMS = *mut DOT11_MSONEX_RESULT_PARAMS; 117 STRUCT!{struct DOT11EXT_IHV_CONNECTIVITY_PROFILE { 118 pszXmlFragmentIhvConnectivity: LPWSTR, 119 }} 120 pub type PDOT11EXT_IHV_CONNECTIVITY_PROFILE = *mut DOT11EXT_IHV_CONNECTIVITY_PROFILE; 121 STRUCT!{struct DOT11EXT_IHV_SECURITY_PROFILE { 122 pszXmlFragmentIhvSecurity: LPWSTR, 123 bUseMSOnex: BOOL, 124 }} 125 pub type PDOT11EXT_IHV_SECURITY_PROFILE = *mut DOT11EXT_IHV_SECURITY_PROFILE; 126 STRUCT!{struct DOT11EXT_IHV_DISCOVERY_PROFILE { 127 IhvConnectivityProfile: DOT11EXT_IHV_CONNECTIVITY_PROFILE, 128 IhvSecurityProfile: DOT11EXT_IHV_SECURITY_PROFILE, 129 }} 130 pub type PDOT11EXT_IHV_DISCOVERY_PROFILE = *mut DOT11EXT_IHV_DISCOVERY_PROFILE; 131 STRUCT!{struct DOT11EXT_IHV_DISCOVERY_PROFILE_LIST { 132 dwCount: DWORD, 133 pIhvDiscoveryProfiles: PDOT11EXT_IHV_DISCOVERY_PROFILE, 134 }} 135 pub type PDOT11EXT_IHV_DISCOVERY_PROFILE_LIST = *mut DOT11EXT_IHV_DISCOVERY_PROFILE_LIST; 136 ENUM!{enum DOT11EXT_IHV_INDICATION_TYPE { 137 IndicationTypeNicSpecificNotification = 0, 138 IndicationTypePmkidCandidateList = 1, 139 IndicationTypeTkipMicFailure = 2, 140 IndicationTypePhyStateChange = 3, 141 IndicationTypeLinkQuality = 4, 142 }} 143 pub type PDOT11EXT_IHV_INDICATION_TYPE = *mut DOT11EXT_IHV_INDICATION_TYPE; 144 pub const DOT11EXT_PSK_MAX_LENGTH: usize = 64; 145 STRUCT!{struct DOT11EXT_VIRTUAL_STATION_AP_PROPERTY { 146 dot11SSID: DOT11_SSID, 147 dot11AuthAlgo: DOT11_AUTH_ALGORITHM, 148 dot11CipherAlgo: DOT11_CIPHER_ALGORITHM, 149 bIsPassPhrase: BOOL, 150 dwKeyLength: DWORD, 151 ucKeyData: [UCHAR; DOT11EXT_PSK_MAX_LENGTH], 152 }} 153 pub type PDOT11EXT_VIRTUAL_STATION_AP_PROPERTY = *mut DOT11EXT_VIRTUAL_STATION_AP_PROPERTY; 154 pub const WDIAG_IHV_WLAN_ID_FLAG_SECURITY_ENABLED: DWORD = 0x00000001; 155 STRUCT!{struct WDIAG_IHV_WLAN_ID { 156 strProfileName: [WCHAR; MS_MAX_PROFILE_NAME_LENGTH], 157 Ssid: DOT11_SSID, 158 BssType: DOT11_BSS_TYPE, 159 dwFlags: DWORD, 160 dwReasonCode: DWORD, 161 }} 162 pub type PWDIAG_IHV_WLAN_ID = *mut WDIAG_IHV_WLAN_ID; 163 FN!{stdcall DOT11EXT_ALLOCATE_BUFFER( 164 dwByteCount: DWORD, 165 ppvBuffer: *mut LPVOID, 166 ) -> DWORD} 167 FN!{stdcall DOT11EXT_FREE_BUFFER( 168 pvMemory: LPVOID, 169 ) -> ()} 170 FN!{stdcall DOT11EXT_SET_PROFILE_CUSTOM_USER_DATA( 171 hDot11SvcHandle: HANDLE, 172 hConnectSession: HANDLE, 173 dwSessionID: DWORD, 174 dwDataSize: DWORD, 175 pvData: LPVOID, 176 ) -> DWORD} 177 FN!{stdcall DOT11EXT_GET_PROFILE_CUSTOM_USER_DATA( 178 hDot11SvcHandle: HANDLE, 179 hConnectSession: HANDLE, 180 dwSessionID: DWORD, 181 pdwDataSize: *mut DWORD, 182 ppvData: *mut LPVOID, 183 ) -> DWORD} 184 FN!{stdcall DOT11EXT_SET_CURRENT_PROFILE( 185 hDot11SvcHandle: HANDLE, 186 hConnectSession: HANDLE, 187 pIhvConnProfile: PDOT11EXT_IHV_CONNECTIVITY_PROFILE, 188 pIhvSecProfile: PDOT11EXT_IHV_SECURITY_PROFILE, 189 ) -> DWORD} 190 FN!{stdcall DOT11EXT_SEND_UI_REQUEST( 191 hDot11SvcHandle: HANDLE, 192 pIhvUIRequest: PDOT11EXT_IHV_UI_REQUEST, 193 ) -> DWORD} 194 FN!{stdcall DOT11EXT_PRE_ASSOCIATE_COMPLETION( 195 hDot11SvcHandle: HANDLE, 196 hConnectSession: HANDLE, 197 dwReasonCode: DWORD, 198 dwWin32Error: DWORD, 199 ) -> DWORD} 200 FN!{stdcall DOT11EXT_POST_ASSOCIATE_COMPLETION( 201 hDot11SvcHandle: HANDLE, 202 hSecuritySessionID: HANDLE, 203 pPeer: PDOT11_MAC_ADDRESS, 204 dwReasonCode: DWORD, 205 dwWin32Error: DWORD, 206 ) -> DWORD} 207 FN!{stdcall DOT11EXT_SEND_NOTIFICATION( 208 hDot11SvcHandle: HANDLE, 209 pNotificationData: PL2_NOTIFICATION_DATA, 210 ) -> DWORD} 211 FN!{stdcall DOT11EXT_SEND_PACKET( 212 hDot11SvcHandle: HANDLE, 213 uPacketLen: ULONG, 214 pvPacket: LPVOID, 215 hSendCompletion: HANDLE, 216 ) -> DWORD} 217 FN!{stdcall DOT11EXT_SET_ETHERTYPE_HANDLING( 218 hDot11SvcHandle: HANDLE, 219 uMaxBackLog: ULONG, 220 uNumOfExemption: ULONG, 221 pExemption: PDOT11_PRIVACY_EXEMPTION, 222 uNumOfRegistration: ULONG, 223 pusRegistration: *mut USHORT, 224 ) -> DWORD} 225 FN!{stdcall DOT11EXT_SET_AUTH_ALGORITHM( 226 hDot11SvcHandle: HANDLE, 227 dwAuthAlgo: DWORD, 228 ) -> DWORD} 229 FN!{stdcall DOT11EXT_SET_UNICAST_CIPHER_ALGORITHM( 230 hDot11SvcHandle: HANDLE, 231 dwUnicastCipherAlgo: DWORD, 232 ) -> DWORD} 233 FN!{stdcall DOT11EXT_SET_MULTICAST_CIPHER_ALGORITHM( 234 hDot11SvcHandle: HANDLE, 235 dwMulticastCipherAlgo: DWORD, 236 ) -> DWORD} 237 FN!{stdcall DOT11EXT_SET_DEFAULT_KEY( 238 hDot11SvcHandle: HANDLE, 239 pKey: PDOT11_CIPHER_DEFAULT_KEY_VALUE, 240 dot11Direction: DOT11_DIRECTION, 241 ) -> DWORD} 242 FN!{stdcall DOT11EXT_SET_KEY_MAPPING_KEY( 243 hDot11SvcHandle: HANDLE, 244 pKey: PDOT11_CIPHER_KEY_MAPPING_KEY_VALUE, 245 ) -> DWORD} 246 FN!{stdcall DOT11EXT_SET_DEFAULT_KEY_ID( 247 hDot11SvcHandle: HANDLE, 248 uDefaultKeyId: ULONG, 249 ) -> DWORD} 250 FN!{stdcall DOT11EXT_SET_EXCLUDE_UNENCRYPTED( 251 hDot11SvcHandle: HANDLE, 252 bExcludeUnencrypted: BOOL, 253 ) -> DWORD} 254 FN!{stdcall DOT11EXT_NIC_SPECIFIC_EXTENSION( 255 hDot11SvcHandle: HANDLE, 256 dwInBufferSize: DWORD, 257 pvInBuffer: LPVOID, 258 pdwOutBufferSize: *mut DWORD, 259 pvOutBuffer: LPVOID, 260 ) -> DWORD} 261 FN!{stdcall DOT11EXT_ONEX_START( 262 hDot11SvcHandle: HANDLE, 263 pEapAttributes: *mut EAP_ATTRIBUTES, 264 ) -> DWORD} 265 FN!{stdcall DOT11EXT_ONEX_STOP( 266 hDot11SvcHandle: HANDLE, 267 ) -> DWORD} 268 FN!{stdcall DOT11EXT_PROCESS_ONEX_PACKET( 269 hDot11SvcHandle: HANDLE, 270 dwInPacketSize: DWORD, 271 pvInPacket: LPVOID, 272 ) -> DWORD} 273 FN!{stdcall DOT11EXT_REQUEST_VIRTUAL_STATION( 274 hDot11PrimaryHandle: HANDLE, 275 pvReserved: LPVOID, 276 ) -> DWORD} 277 FN!{stdcall DOT11EXT_RELEASE_VIRTUAL_STATION( 278 hDot11PrimaryHandle: HANDLE, 279 pvReserved: LPVOID, 280 ) -> DWORD} 281 FN!{stdcall DOT11EXT_QUERY_VIRTUAL_STATION_PROPERTIES( 282 hDot11SvcHandle: HANDLE, 283 pbIsVirtualStation: *mut BOOL, 284 pgPrimary: *mut GUID, 285 pvReserved: LPVOID, 286 ) -> DWORD} 287 FN!{stdcall DOT11EXT_SET_VIRTUAL_STATION_AP_PROPERTIES( 288 hDot11SvcHandle: HANDLE, 289 hConnectSession: HANDLE, 290 dwNumProperties: DWORD, 291 pProperties: PDOT11EXT_VIRTUAL_STATION_AP_PROPERTY, 292 pvReserved: LPVOID, 293 ) -> DWORD} 294 pub const IHV_VERSION_FUNCTION_NAME: &'static str = "Dot11ExtIhvGetVersionInfo"; 295 pub const IHV_INIT_FUNCTION_NAME: &'static str = "Dot11ExtIhvInitService"; 296 pub const IHV_INIT_VS_FUNCTION_NAME: &'static str = "Dot11ExtIhvInitVirtualStation"; 297 FN!{stdcall DOT11EXTIHV_GET_VERSION_INFO( 298 pDot11IHVVersionInfo: PDOT11_IHV_VERSION_INFO, 299 ) -> DWORD} 300 FN!{stdcall DOT11EXTIHV_INIT_SERVICE( 301 dwVerNumUsed: DWORD, 302 pDot11ExtAPI: PDOT11EXT_APIS, 303 pvReserved: LPVOID, 304 pDot11IHVHandlers: PDOT11EXT_IHV_HANDLERS, 305 ) -> DWORD} 306 FN!{stdcall DOT11EXTIHV_INIT_VIRTUAL_STATION( 307 pDot11ExtVSAPI: PDOT11EXT_VIRTUAL_STATION_APIS, 308 pvReserved: LPVOID, 309 ) -> DWORD} 310 FN!{stdcall DOT11EXTIHV_DEINIT_SERVICE() -> ()} 311 FN!{stdcall DOT11EXTIHV_INIT_ADAPTER( 312 pDot11Adapter: PDOT11_ADAPTER, 313 hDot11SvcHandle: HANDLE, 314 phIhvExtAdapter: PHANDLE, 315 ) -> DWORD} 316 FN!{stdcall DOT11EXTIHV_DEINIT_ADAPTER( 317 hIhvExtAdapter: HANDLE, 318 ) -> ()} 319 FN!{stdcall DOT11EXTIHV_PERFORM_PRE_ASSOCIATE( 320 hIhvExtAdapter: HANDLE, 321 hConnectSession: HANDLE, 322 pIhvProfileParams: PDOT11EXT_IHV_PROFILE_PARAMS, 323 pIhvConnProfile: PDOT11EXT_IHV_CONNECTIVITY_PROFILE, 324 pIhvSecProfile: PDOT11EXT_IHV_SECURITY_PROFILE, 325 pConnectableBssid: PDOT11_BSS_LIST, 326 pdwReasonCode: PDWORD, 327 ) -> DWORD} 328 FN!{stdcall DOT11EXTIHV_ADAPTER_RESET( 329 hIhvExtAdapter: HANDLE, 330 ) -> DWORD} 331 FN!{stdcall DOT11EXTIHV_PERFORM_POST_ASSOCIATE( 332 hIhvExtAdapter: HANDLE, 333 hSecuritySessionID: HANDLE, 334 pPortState: PDOT11_PORT_STATE, 335 uDot11AssocParamsBytes: ULONG, 336 pDot11AssocParams: PDOT11_ASSOCIATION_COMPLETION_PARAMETERS, 337 ) -> DWORD} 338 FN!{stdcall DOT11EXTIHV_STOP_POST_ASSOCIATE( 339 hIhvExtAdapter: HANDLE, 340 pPeer: PDOT11_MAC_ADDRESS, 341 dot11AssocStatus: DOT11_ASSOC_STATUS, 342 ) -> DWORD} 343 FN!{stdcall DOT11EXTIHV_VALIDATE_PROFILE( 344 hIhvExtAdapter: HANDLE, 345 pIhvProfileParams: PDOT11EXT_IHV_PROFILE_PARAMS, 346 pIhvConnProfile: PDOT11EXT_IHV_CONNECTIVITY_PROFILE, 347 pIhvSecProfile: PDOT11EXT_IHV_SECURITY_PROFILE, 348 pdwReasonCode: PDWORD, 349 ) -> DWORD} 350 FN!{stdcall DOT11EXTIHV_PERFORM_CAPABILITY_MATCH( 351 hIhvExtAdapter: HANDLE, 352 pIhvProfileParams: PDOT11EXT_IHV_PROFILE_PARAMS, 353 pIhvConnProfile: PDOT11EXT_IHV_CONNECTIVITY_PROFILE, 354 pIhvSecProfile: PDOT11EXT_IHV_SECURITY_PROFILE, 355 pConnectableBssid: PDOT11_BSS_LIST, 356 pdwReasonCode: PDWORD, 357 ) -> DWORD} 358 FN!{stdcall DOT11EXTIHV_CREATE_DISCOVERY_PROFILES( 359 hIhvExtAdapter: HANDLE, 360 bInsecure: BOOL, 361 pIhvProfileParams: PDOT11EXT_IHV_PROFILE_PARAMS, 362 pConnectableBssid: PDOT11_BSS_LIST, 363 pIhvDiscoveryProfileList: PDOT11EXT_IHV_DISCOVERY_PROFILE_LIST, 364 pdwReasonCode: PDWORD, 365 ) -> DWORD} 366 FN!{stdcall DOT11EXTIHV_PROCESS_SESSION_CHANGE( 367 uEventType: ULONG, 368 pSessionNotification: PWTSSESSION_NOTIFICATION, 369 ) -> DWORD} 370 FN!{stdcall DOT11EXTIHV_RECEIVE_INDICATION( 371 hIhvExtAdapter: HANDLE, 372 indicationType: DOT11EXT_IHV_INDICATION_TYPE, 373 uBufferLength: ULONG, 374 pvBuffer: LPVOID, 375 ) -> DWORD} 376 FN!{stdcall DOT11EXTIHV_RECEIVE_PACKET( 377 hIhvExtAdapter: HANDLE, 378 dwInBufferSize: DWORD, 379 pvInBuffer: LPVOID, 380 ) -> DWORD} 381 FN!{stdcall DOT11EXTIHV_SEND_PACKET_COMPLETION( 382 hSendCompletion: HANDLE, 383 ) -> DWORD} 384 FN!{stdcall DOT11EXTIHV_IS_UI_REQUEST_PENDING( 385 guidUIRequest: GUID, 386 pbIsRequestPending: PBOOL, 387 ) -> DWORD} 388 FN!{stdcall DOT11EXTIHV_PROCESS_UI_RESPONSE( 389 guidUIRequest: GUID, 390 dwByteCount: DWORD, 391 pvResponseBuffer: LPVOID, 392 ) -> DWORD} 393 FN!{stdcall DOT11EXTIHV_QUERY_UI_REQUEST( 394 hIhvExtAdapter: HANDLE, 395 connectionPhase: DOT11EXT_IHV_CONNECTION_PHASE, 396 ppIhvUIRequest: *mut PDOT11EXT_IHV_UI_REQUEST, 397 ) -> DWORD} 398 FN!{stdcall DOT11EXTIHV_ONEX_INDICATE_RESULT( 399 hIhvExtAdapter: HANDLE, 400 msOneXResult: DOT11_MSONEX_RESULT, 401 pDot11MsOneXResultParams: PDOT11_MSONEX_RESULT_PARAMS, 402 ) -> DWORD} 403 FN!{stdcall DOT11EXTIHV_CONTROL( 404 hIhvExtAdapter: HANDLE, 405 dwInBufferSize: DWORD, 406 pInBuffer: PBYTE, 407 dwOutBufferSize: DWORD, 408 pOutBuffer: PBYTE, 409 pdwBytesReturned: PDWORD, 410 ) -> DWORD} 411