xpmgr/BuildTools/Include/wlanihv.h

886 lines
21 KiB
C

/*++
Copyright (c) 2005 Microsoft Corporation
Module Name:
wlanihv.h
Abstract:
Definition of public APIs for WLAN Extensibility Framework.
--*/
#ifndef __WLAN_IHV_H__
#define __WLAN_IHV_H__
#pragma once
#include <windot11.h>
#include <wlclient.h>
#include <l2cmn.h>
#include <WlanIhvTypes.h>
#include <dot1x.h>
// Forward declaration for the
// API structure to be exchanged
// during IHV DLL initialization.
typedef
struct _DOT11EXT_APIS
DOT11EXT_APIS, *PDOT11EXT_APIS;
// Forward declaration for the
// handler structure to be exchanged
// during IHV DLL initialization.
typedef
struct _DOT11EXT_IHV_HANDLERS
DOT11EXT_IHV_HANDLERS, *PDOT11EXT_IHV_HANDLERS;
// Forward declaration for the
// API set for controlling virtual station.
typedef
struct _DOT11EXT_VIRTUAL_STATION_APIS
DOT11EXT_VIRTUAL_STATION_APIS, *PDOT11EXT_VIRTUAL_STATION_APIS;
// Version exchange between
// extensibility framework
// and IHV DLL.
typedef
struct _DOT11_IHV_VERSION_INFO
{
DWORD dwVerMin;
DWORD dwVerMax;
}
DOT11_IHV_VERSION_INFO, *PDOT11_IHV_VERSION_INFO;
// connection phase to decide
// appropriate UI request.
typedef enum
_DOT11EXT_IHV_CONNECTION_PHASE
{
connection_phase_any,
connection_phase_initial_connection,
connection_phase_post_l3_connection
}
DOT11EXT_IHV_CONNECTION_PHASE, *PDOT11EXT_IHV_CONNECTION_PHASE;
// Information to build the UI Request information.
typedef
struct _DOT11EXT_IHV_UI_REQUEST
{
DWORD dwSessionId;
GUID guidUIRequest;
CLSID UIPageClsid;
DWORD dwByteCount;
#ifdef __midl
[size_is(dwByteCount)]
#endif
__field_ecount(dwByteCount) BYTE* pvUIRequest;
}
DOT11EXT_IHV_UI_REQUEST, *PDOT11EXT_IHV_UI_REQUEST;
// Structures to support MS 802.1X extensibility
typedef enum _DOT11_MSONEX_RESULT
{
DOT11_MSONEX_SUCCESS,
DOT11_MSONEX_FAILURE,
DOT11_MSONEX_IN_PROGRESS
} DOT11_MSONEX_RESULT, *PDOT11_MSONEX_RESULT;
typedef struct _DOT11_EAP_RESULT
{
UINT32 dwFailureReasonCode;
EAP_ATTRIBUTES* pAttribArray;
} DOT11_EAP_RESULT, *PDOT11_EAP_RESULT;
typedef struct _DOT11_MSONEX_RESULT_PARAMS
{
ONEX_AUTH_STATUS Dot11OnexAuthStatus;
ONEX_REASON_CODE Dot11OneXReasonCode;
#ifdef __midl
[size_is(dwMPPESendKeyLen)]
#endif
__field_ecount(dwMPPESendKeyLen) PBYTE pbMPPESendKey;
DWORD dwMPPESendKeyLen;
#ifdef __midl
[size_is(dwMPPERecvKeyLen)]
#endif
__field_ecount(dwMPPERecvKeyLen) PBYTE pbMPPERecvKey;
DWORD dwMPPERecvKeyLen;
PDOT11_EAP_RESULT pDot11EapResult;
} DOT11_MSONEX_RESULT_PARAMS, *PDOT11_MSONEX_RESULT_PARAMS;
// Structures to define Ihv profiles.
typedef
struct _DOT11EXT_IHV_CONNECTIVITY_PROFILE
{
#ifdef __midl
[string]
#endif
LPWSTR pszXmlFragmentIhvConnectivity;
}
DOT11EXT_IHV_CONNECTIVITY_PROFILE, *PDOT11EXT_IHV_CONNECTIVITY_PROFILE;
typedef
struct _DOT11EXT_IHV_SECURITY_PROFILE
{
#ifdef __midl
[string]
#endif
LPWSTR pszXmlFragmentIhvSecurity;
BOOL bUseMSOnex;
}
DOT11EXT_IHV_SECURITY_PROFILE, *PDOT11EXT_IHV_SECURITY_PROFILE;
typedef
struct _DOT11EXT_IHV_DISCOVERY_PROFILE
{
DOT11EXT_IHV_CONNECTIVITY_PROFILE IhvConnectivityProfile;
DOT11EXT_IHV_SECURITY_PROFILE IhvSecurityProfile;
}
DOT11EXT_IHV_DISCOVERY_PROFILE, *PDOT11EXT_IHV_DISCOVERY_PROFILE;
typedef
struct _DOT11EXT_IHV_DISCOVERY_PROFILE_LIST
{
DWORD dwCount;
#ifdef __midl
[size_is(dwCount)]
#endif
PDOT11EXT_IHV_DISCOVERY_PROFILE pIhvDiscoveryProfiles;
}
DOT11EXT_IHV_DISCOVERY_PROFILE_LIST, *PDOT11EXT_IHV_DISCOVERY_PROFILE_LIST;
//
// Enum to distinguish between received Ihv notification types.
//
typedef enum
_DOT11EXT_IHV_INDICATION_TYPE
{
IndicationTypeNicSpecificNotification,
IndicationTypePmkidCandidateList,
IndicationTypeTkipMicFailure,
IndicationTypePhyStateChange,
IndicationTypeLinkQuality
}
DOT11EXT_IHV_INDICATION_TYPE, *PDOT11EXT_IHV_INDICATION_TYPE;
//
// Structure to represent the virtual station
// access point property.
//
#define DOT11EXT_PSK_MAX_LENGTH 64
typedef
struct _DOT11EXT_VIRTUAL_STATION_AP_PROPERTY
{
DOT11_SSID dot11SSID;
DOT11_AUTH_ALGORITHM dot11AuthAlgo;
DOT11_CIPHER_ALGORITHM dot11CipherAlgo;
BOOL bIsPassPhrase;
DWORD dwKeyLength;
UCHAR ucKeyData[DOT11EXT_PSK_MAX_LENGTH];
}
DOT11EXT_VIRTUAL_STATION_AP_PROPERTY, *PDOT11EXT_VIRTUAL_STATION_AP_PROPERTY;
//
// Diagnostics Helper Class class parameter
//
#define WDIAG_IHV_WLAN_ID_FLAG_SECURITY_ENABLED 0x00000001
typedef
struct _WDIAG_IHV_WLAN_ID
{
WCHAR strProfileName [MS_MAX_PROFILE_NAME_LENGTH];
DOT11_SSID Ssid;
DOT11_BSS_TYPE BssType;
DWORD dwFlags; // Flags define above
DWORD dwReasonCode; // Set only when an applicable reason code is available
}
WDIAG_IHV_WLAN_ID, *PWDIAG_IHV_WLAN_ID;
typedef
DWORD
(WINAPI *DOT11EXT_ALLOCATE_BUFFER)
(
DWORD dwByteCount,
__deref_out_bcount(dwByteCount) LPVOID* ppvBuffer
);
typedef
VOID
(WINAPI *DOT11EXT_FREE_BUFFER)
(
__in_opt LPVOID pvMemory
);
typedef
DWORD
(WINAPI *DOT11EXT_SET_PROFILE_CUSTOM_USER_DATA)
(
__in_opt HANDLE hDot11SvcHandle,
__in_opt HANDLE hConnectSession,
DWORD dwSessionID,
DWORD dwDataSize,
__in_bcount(dwDataSize) LPVOID pvData
);
typedef
DWORD
(WINAPI *DOT11EXT_GET_PROFILE_CUSTOM_USER_DATA)
(
__in_opt HANDLE hDot11SvcHandle,
__in_opt HANDLE hConnectSession,
DWORD dwSessionID,
__out DWORD* pdwDataSize,
__deref_out_bcount(*pdwDataSize) LPVOID* ppvData
);
typedef
DWORD
(WINAPI *DOT11EXT_SET_CURRENT_PROFILE)
(
__in_opt HANDLE hDot11SvcHandle,
__in_opt HANDLE hConnectSession,
__in_opt PDOT11EXT_IHV_CONNECTIVITY_PROFILE pIhvConnProfile,
__in_opt PDOT11EXT_IHV_SECURITY_PROFILE pIhvSecProfile
);
typedef
DWORD
(WINAPI *DOT11EXT_SEND_UI_REQUEST)
(
__in_opt HANDLE hDot11SvcHandle,
__in PDOT11EXT_IHV_UI_REQUEST pIhvUIRequest
);
typedef
DWORD
(WINAPI *DOT11EXT_PRE_ASSOCIATE_COMPLETION)
(
__in_opt HANDLE hDot11SvcHandle,
__in_opt HANDLE hConnectSession,
DWORD dwReasonCode,
DWORD dwWin32Error
);
typedef
DWORD
(WINAPI *DOT11EXT_POST_ASSOCIATE_COMPLETION)
(
__in_opt HANDLE hDot11SvcHandle,
__in_opt HANDLE hSecuritySessionID,
__in_opt PDOT11_MAC_ADDRESS pPeer,
DWORD dwReasonCode,
DWORD dwWin32Error
);
typedef
DWORD
(WINAPI *DOT11EXT_SEND_NOTIFICATION)
(
__in_opt HANDLE hDot11SvcHandle,
__in PL2_NOTIFICATION_DATA pNotificationData
);
typedef
DWORD
(WINAPI *DOT11EXT_SEND_PACKET)
(
__in_opt HANDLE hDot11SvcHandle,
ULONG uPacketLen,
__in_bcount(uPacketLen) LPVOID pvPacket,
__in_opt HANDLE hSendCompletion
);
typedef
DWORD
(WINAPI *DOT11EXT_SET_ETHERTYPE_HANDLING)
(
__in_opt HANDLE hDot11SvcHandle,
ULONG uMaxBackLog,
ULONG uNumOfExemption,
__in_ecount_opt(uNumOfExemption) PDOT11_PRIVACY_EXEMPTION pExemption,
ULONG uNumOfRegistration,
__in_ecount_opt(uNumOfRegistration) USHORT* pusRegistration
);
typedef
DWORD
(WINAPI *DOT11EXT_SET_AUTH_ALGORITHM)
(
__in_opt HANDLE hDot11SvcHandle,
DWORD dwAuthAlgo
);
typedef
DWORD
(WINAPI *DOT11EXT_SET_UNICAST_CIPHER_ALGORITHM)
(
__in_opt HANDLE hDot11SvcHandle,
DWORD dwUnicastCipherAlgo
);
typedef
DWORD
(WINAPI *DOT11EXT_SET_MULTICAST_CIPHER_ALGORITHM)
(
__in_opt HANDLE hDot11SvcHandle,
DWORD dwMulticastCipherAlgo
);
typedef
DWORD
(WINAPI *DOT11EXT_SET_DEFAULT_KEY)
(
__in_opt HANDLE hDot11SvcHandle,
__in PDOT11_CIPHER_DEFAULT_KEY_VALUE pKey,
DOT11_DIRECTION dot11Direction
);
typedef
DWORD
(WINAPI *DOT11EXT_SET_KEY_MAPPING_KEY)
(
__in_opt HANDLE hDot11SvcHandle,
__in PDOT11_CIPHER_KEY_MAPPING_KEY_VALUE pKey
);
typedef
DWORD
(WINAPI *DOT11EXT_SET_DEFAULT_KEY_ID)
(
__in_opt HANDLE hDot11SvcHandle,
ULONG uDefaultKeyId
);
typedef
DWORD
(WINAPI *DOT11EXT_SET_EXCLUDE_UNENCRYPTED)
(
__in_opt HANDLE hDot11SvcHandle,
BOOL bExcludeUnencrypted
);
typedef
DWORD
(WINAPI *DOT11EXT_NIC_SPECIFIC_EXTENSION)
(
__in_opt HANDLE hDot11SvcHandle,
DWORD dwInBufferSize,
__in_bcount(dwInBufferSize) LPVOID pvInBuffer,
__inout DWORD* pdwOutBufferSize,
__out_bcount_part_opt(*pdwOutBufferSize, *pdwOutBufferSize) LPVOID pvOutBuffer
);
/*
IHV should allocate EAP attributes using DOT11EXT_ALLOCATE_BUFFER
The IHV framework will free them.
*/
typedef
DWORD
(WINAPI *DOT11EXT_ONEX_START)
(
__in_opt HANDLE hDot11SvcHandle,
__in_opt EAP_ATTRIBUTES* pEapAttributes
);
typedef
DWORD
(WINAPI *DOT11EXT_ONEX_STOP)
(
__in_opt HANDLE hDot11SvcHandle
);
typedef
DWORD
(WINAPI *DOT11EXT_PROCESS_ONEX_PACKET)
(
__in_opt HANDLE hDot11SvcHandle,
DWORD dwInPacketSize,
__in_bcount(dwInPacketSize) LPVOID pvInPacket
);
//
// APIs to control Virtual Station.
//
typedef
DWORD
(WINAPI *DOT11EXT_REQUEST_VIRTUAL_STATION)
(
__in_opt HANDLE hDot11PrimaryHandle,
__reserved LPVOID pvReserved
);
typedef
DWORD
(WINAPI *DOT11EXT_RELEASE_VIRTUAL_STATION)
(
__in_opt HANDLE hDot11PrimaryHandle,
__reserved LPVOID pvReserved
);
typedef
DWORD
(WINAPI *DOT11EXT_QUERY_VIRTUAL_STATION_PROPERTIES)
(
__in_opt HANDLE hDot11SvcHandle,
__out BOOL* pbIsVirtualStation,
__out GUID* pgPrimary,
__reserved LPVOID pvReserved
);
typedef
DWORD
(WINAPI *DOT11EXT_SET_VIRTUAL_STATION_AP_PROPERTIES)
(
__in_opt HANDLE hDot11SvcHandle,
__in_opt HANDLE hConnectSession,
DWORD dwNumProperties,
__in_ecount(dwNumProperties) PDOT11EXT_VIRTUAL_STATION_AP_PROPERTY pProperties,
__reserved LPVOID pvReserved
);
#define IHV_VERSION_FUNCTION_NAME "Dot11ExtIhvGetVersionInfo"
#define IHV_INIT_FUNCTION_NAME "Dot11ExtIhvInitService"
#define IHV_INIT_VS_FUNCTION_NAME "Dot11ExtIhvInitVirtualStation"
typedef
DWORD
(WINAPI *DOT11EXTIHV_GET_VERSION_INFO)
(
__out PDOT11_IHV_VERSION_INFO pDot11IHVVersionInfo
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_INIT_SERVICE)
(
DWORD dwVerNumUsed,
__in PDOT11EXT_APIS pDot11ExtAPI,
__reserved LPVOID pvReserved,
__out PDOT11EXT_IHV_HANDLERS pDot11IHVHandlers
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_INIT_VIRTUAL_STATION)
(
__in PDOT11EXT_VIRTUAL_STATION_APIS pDot11ExtVSAPI,
__reserved LPVOID pvReserved
);
typedef
VOID
(WINAPI *DOT11EXTIHV_DEINIT_SERVICE)
(
VOID
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_INIT_ADAPTER)
(
__in PDOT11_ADAPTER pDot11Adapter,
__in_opt HANDLE hDot11SvcHandle,
__out PHANDLE phIhvExtAdapter
);
typedef
VOID
(WINAPI *DOT11EXTIHV_DEINIT_ADAPTER)
(
__in_opt HANDLE hIhvExtAdapter
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_PERFORM_PRE_ASSOCIATE)
(
__in_opt HANDLE hIhvExtAdapter,
__in_opt HANDLE hConnectSession,
__in_opt PDOT11EXT_IHV_PROFILE_PARAMS pIhvProfileParams,
__in PDOT11EXT_IHV_CONNECTIVITY_PROFILE pIhvConnProfile,
__in PDOT11EXT_IHV_SECURITY_PROFILE pIhvSecProfile,
__in PDOT11_BSS_LIST pConnectableBssid,
__out PDWORD pdwReasonCode
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_ADAPTER_RESET)
(
__in_opt HANDLE hIhvExtAdapter
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_PERFORM_POST_ASSOCIATE)
(
__in_opt HANDLE hIhvExtAdapter,
__in_opt HANDLE hSecuritySessionID,
__in PDOT11_PORT_STATE pPortState,
ULONG uDot11AssocParamsBytes,
__in_bcount(uDot11AssocParamsBytes) PDOT11_ASSOCIATION_COMPLETION_PARAMETERS pDot11AssocParams
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_STOP_POST_ASSOCIATE)
(
__in_opt HANDLE hIhvExtAdapter,
__in PDOT11_MAC_ADDRESS pPeer,
DOT11_ASSOC_STATUS dot11AssocStatus
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_VALIDATE_PROFILE)
(
__in_opt HANDLE hIhvExtAdapter,
__in_opt PDOT11EXT_IHV_PROFILE_PARAMS pIhvProfileParams,
__in PDOT11EXT_IHV_CONNECTIVITY_PROFILE pIhvConnProfile,
__in PDOT11EXT_IHV_SECURITY_PROFILE pIhvSecProfile,
__out PDWORD pdwReasonCode
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_PERFORM_CAPABILITY_MATCH)
(
__in_opt HANDLE hIhvExtAdapter,
__in_opt PDOT11EXT_IHV_PROFILE_PARAMS pIhvProfileParams,
__in PDOT11EXT_IHV_CONNECTIVITY_PROFILE pIhvConnProfile,
__in PDOT11EXT_IHV_SECURITY_PROFILE pIhvSecProfile,
__in_opt PDOT11_BSS_LIST pConnectableBssid,
__out PDWORD pdwReasonCode
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_CREATE_DISCOVERY_PROFILES)
(
__in_opt HANDLE hIhvExtAdapter,
BOOL bInsecure,
__in_opt PDOT11EXT_IHV_PROFILE_PARAMS pIhvProfileParams,
__in_opt PDOT11_BSS_LIST pConnectableBssid,
__out PDOT11EXT_IHV_DISCOVERY_PROFILE_LIST pIhvDiscoveryProfileList,
__out PDWORD pdwReasonCode
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_PROCESS_SESSION_CHANGE)
(
ULONG uEventType,
__in PWTSSESSION_NOTIFICATION pSessionNotification
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_RECEIVE_INDICATION)
(
__in_opt HANDLE hIhvExtAdapter,
DOT11EXT_IHV_INDICATION_TYPE indicationType,
ULONG uBufferLength,
__in_bcount_opt(uBufferLength) LPVOID pvBuffer
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_RECEIVE_PACKET)
(
__in_opt HANDLE hIhvExtAdapter,
DWORD dwInBufferSize,
__in_bcount(dwInBufferSize) LPVOID pvInBuffer
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_SEND_PACKET_COMPLETION)
(
__in_opt HANDLE hSendCompletion
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_IS_UI_REQUEST_PENDING)
(
GUID guidUIRequest,
__out PBOOL pbIsRequestPending
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_PROCESS_UI_RESPONSE)
(
GUID guidUIRequest,
DWORD dwByteCount,
__in_bcount_opt(dwByteCount) LPVOID pvResponseBuffer
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_QUERY_UI_REQUEST)
(
__in_opt HANDLE hIhvExtAdapter,
DOT11EXT_IHV_CONNECTION_PHASE connectionPhase,
__deref_out PDOT11EXT_IHV_UI_REQUEST* ppIhvUIRequest
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_ONEX_INDICATE_RESULT)
(
__in_opt HANDLE hIhvExtAdapter,
DOT11_MSONEX_RESULT msOneXResult,
__in_opt PDOT11_MSONEX_RESULT_PARAMS pDot11MsOneXResultParams
);
typedef
DWORD
(WINAPI *DOT11EXTIHV_CONTROL)
(
__in_opt HANDLE hIhvExtAdapter,
DWORD dwInBufferSize,
__in_bcount_opt(dwInBufferSize) PBYTE pInBuffer,
DWORD dwOutBufferSize,
__out_bcount_part_opt(dwOutBufferSize,*pdwBytesReturned) PBYTE pOutBuffer,
__out PDWORD pdwBytesReturned
);
struct _DOT11EXT_APIS
{
DOT11EXT_ALLOCATE_BUFFER Dot11ExtAllocateBuffer;
DOT11EXT_FREE_BUFFER Dot11ExtFreeBuffer;
DOT11EXT_SET_PROFILE_CUSTOM_USER_DATA Dot11ExtSetProfileCustomUserData;
DOT11EXT_GET_PROFILE_CUSTOM_USER_DATA Dot11ExtGetProfileCustomUserData;
DOT11EXT_SET_CURRENT_PROFILE Dot11ExtSetCurrentProfile;
DOT11EXT_SEND_UI_REQUEST Dot11ExtSendUIRequest;
DOT11EXT_PRE_ASSOCIATE_COMPLETION Dot11ExtPreAssociateCompletion;
DOT11EXT_POST_ASSOCIATE_COMPLETION Dot11ExtPostAssociateCompletion;
DOT11EXT_SEND_NOTIFICATION Dot11ExtSendNotification;
DOT11EXT_SEND_PACKET Dot11ExtSendPacket;
DOT11EXT_SET_ETHERTYPE_HANDLING Dot11ExtSetEtherTypeHandling;
DOT11EXT_SET_AUTH_ALGORITHM Dot11ExtSetAuthAlgorithm;
DOT11EXT_SET_UNICAST_CIPHER_ALGORITHM Dot11ExtSetUnicastCipherAlgorithm;
DOT11EXT_SET_MULTICAST_CIPHER_ALGORITHM Dot11ExtSetMulticastCipherAlgorithm;
DOT11EXT_SET_DEFAULT_KEY Dot11ExtSetDefaultKey;
DOT11EXT_SET_KEY_MAPPING_KEY Dot11ExtSetKeyMappingKey;
DOT11EXT_SET_DEFAULT_KEY_ID Dot11ExtSetDefaultKeyId;
DOT11EXT_NIC_SPECIFIC_EXTENSION Dot11ExtNicSpecificExtension;
DOT11EXT_SET_EXCLUDE_UNENCRYPTED Dot11ExtSetExcludeUnencrypted;
DOT11EXT_ONEX_START Dot11ExtStartOneX;
DOT11EXT_ONEX_STOP Dot11ExtStopOneX;
DOT11EXT_PROCESS_ONEX_PACKET Dot11ExtProcessSecurityPacket;
};
struct _DOT11EXT_IHV_HANDLERS
{
DOT11EXTIHV_DEINIT_SERVICE Dot11ExtIhvDeinitService;
DOT11EXTIHV_INIT_ADAPTER Dot11ExtIhvInitAdapter;
DOT11EXTIHV_DEINIT_ADAPTER Dot11ExtIhvDeinitAdapter;
DOT11EXTIHV_PERFORM_PRE_ASSOCIATE Dot11ExtIhvPerformPreAssociate;
DOT11EXTIHV_ADAPTER_RESET Dot11ExtIhvAdapterReset;
DOT11EXTIHV_PERFORM_POST_ASSOCIATE Dot11ExtIhvPerformPostAssociate;
DOT11EXTIHV_STOP_POST_ASSOCIATE Dot11ExtIhvStopPostAssociate;
DOT11EXTIHV_VALIDATE_PROFILE Dot11ExtIhvValidateProfile;
DOT11EXTIHV_PERFORM_CAPABILITY_MATCH Dot11ExtIhvPerformCapabilityMatch;
DOT11EXTIHV_CREATE_DISCOVERY_PROFILES Dot11ExtIhvCreateDiscoveryProfiles;
DOT11EXTIHV_PROCESS_SESSION_CHANGE Dot11ExtIhvProcessSessionChange;
DOT11EXTIHV_RECEIVE_INDICATION Dot11ExtIhvReceiveIndication;
DOT11EXTIHV_RECEIVE_PACKET Dot11ExtIhvReceivePacket;
DOT11EXTIHV_SEND_PACKET_COMPLETION Dot11ExtIhvSendPacketCompletion;
DOT11EXTIHV_IS_UI_REQUEST_PENDING Dot11ExtIhvIsUIRequestPending;
DOT11EXTIHV_PROCESS_UI_RESPONSE Dot11ExtIhvProcessUIResponse;
DOT11EXTIHV_QUERY_UI_REQUEST Dot11ExtIhvQueryUIRequest;
DOT11EXTIHV_ONEX_INDICATE_RESULT Dot11ExtIhvOnexIndicateResult;
DOT11EXTIHV_CONTROL Dot11ExtIhvControl;
};
struct _DOT11EXT_VIRTUAL_STATION_APIS
{
DOT11EXT_REQUEST_VIRTUAL_STATION Dot11ExtRequestVirtualStation;
DOT11EXT_RELEASE_VIRTUAL_STATION Dot11ExtReleaseVirtualStation;
DOT11EXT_QUERY_VIRTUAL_STATION_PROPERTIES Dot11ExtQueryVirtualStationProperties;
DOT11EXT_SET_VIRTUAL_STATION_AP_PROPERTIES Dot11ExtSetVirtualStationAPProperties;
};
#endif // __WLAN_IHV_H__