ifndef __WINDOT11_H__
define __WINDOT11_H__

include winapifamily.inc

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef _NTDDNDIS_
include ntddndis.inc
endif

include WlanTypes.inc

_DOT11_MAC_ADDRESS	struct
ucDot11MacAddress	UCHAR 6 dup(?)
_DOT11_MAC_ADDRESS	ends
DOT11_MAC_ADDRESS	typedef _DOT11_MAC_ADDRESS
PDOT11_MAC_ADDRESS	typedef ptr _DOT11_MAC_ADDRESS

DOT11_BSSID_LIST	struct
define DOT11_BSSID_LIST_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
BSSIDs			DOT11_MAC_ADDRESS 1 dup(<>)
DOT11_BSSID_LIST	ends
PDOT11_BSSID_LIST	typedef ptr DOT11_BSSID_LIST

define DOT11_HESSID_LENGTH   6
DOT11_HESSID		struct
			UCHAR DOT11_HESSID_LENGTH  dup(?)
DOT11_HESSID		ends
PDOT11_HESSID		typedef ptr DOT11_HESSID

.enum _DOT11_PHY_TYPE {
    dot11_phy_type_unknown = 0,
    dot11_phy_type_any = dot11_phy_type_unknown,
    dot11_phy_type_fhss = 1,
    dot11_phy_type_dsss = 2,
    dot11_phy_type_irbaseband = 3,
    dot11_phy_type_ofdm = 4,
    dot11_phy_type_hrdsss = 5,
    dot11_phy_type_erp = 6,
    dot11_phy_type_ht = 7,
    dot11_phy_type_vht = 8,
    dot11_phy_type_dmg = 9,
    dot11_phy_type_he = 10,
    dot11_phy_type_IHV_start = 0x80000000,
    dot11_phy_type_IHV_end = 0xffffffff
    }
DOT11_PHY_TYPE		typedef _DOT11_PHY_TYPE
PDOT11_PHY_TYPE		typedef ptr _DOT11_PHY_TYPE

define DOT11_RATE_SET_MAX_LENGTH 126
_DOT11_RATE_SET		struct
uRateSetLength		ULONG ?
ucRateSet		UCHAR DOT11_RATE_SET_MAX_LENGTH dup(?)
_DOT11_RATE_SET		ends
DOT11_RATE_SET		typedef _DOT11_RATE_SET
PDOT11_RATE_SET		typedef ptr _DOT11_RATE_SET

DOT11_COUNTRY_OR_REGION_STRING struct
			UCHAR 3 dup(?)
DOT11_COUNTRY_OR_REGION_STRING ends
PDOT11_COUNTRY_OR_REGION_STRING typedef ptr DOT11_COUNTRY_OR_REGION_STRING

DOT11_DIALOG_TOKEN	typedef UCHAR
DOT11_WFD_STATUS_CODE	typedef UCHAR
DOT11_WFD_MINOR_REASON_CODE typedef UCHAR

DOT11_WFD_SERVICE_HASH	struct
			UCHAR 6 dup(?)
DOT11_WFD_SERVICE_HASH	ends

define DOT11_WFD_SERVICE_NAME_MAX_LENGTH 255
define DOT11_WFD_APS2_SERVICE_TYPE_MAX_LENGTH 21
define DOT11_WFD_ASP2_INSTANCE_NAME_MAX_LENGTH 63
define DOT11_WFD_SERVICE_INFORMATION_MAX_LENGTH 65535
define DOT11_MAX_REQUESTED_SERVICE_INFORMATION_LENGTH 255
define DOT11_WFD_SESSION_INFO_MAX_LENGTH 144
_DOT11_WFD_SESSION_INFO struct
uSessionInfoLength	USHORT ?
ucSessionInfo		UCHAR DOT11_WFD_SESSION_INFO_MAX_LENGTH dup(?)
_DOT11_WFD_SESSION_INFO ends
DOT11_WFD_SESSION_INFO	typedef _DOT11_WFD_SESSION_INFO
PDOT11_WFD_SESSION_INFO typedef ptr _DOT11_WFD_SESSION_INFO

if (NTDDI_VERSION ge NTDDI_WIN8 or NDIS_SUPPORT_NDIS630)
define NWF_WFD_SUPPORTED
define NWF_POWER_SAVE_SUPPORTED
endif

if (NTDDI_VERSION ge NTDDI_WIN7 or NDIS_SUPPORT_NDIS620)
define NWF_EXTAP_SUPPORTED
define NWF_VWIFI_SUPPORTED
endif

if (NTDDI_VERSION ge NTDDI_VISTA)
define NDIS_PACKET_TYPE_MEDIA_SPECIFIC_MASK	   (0x0fff0000)
define NDIS_PACKET_TYPE_802_11_DIRECTED_DATA	   NDIS_PACKET_TYPE_DIRECTED
define NDIS_PACKET_TYPE_802_11_BROADCAST_DATA	   NDIS_PACKET_TYPE_BROADCAST
define NDIS_PACKET_TYPE_802_11_MULTICAST_DATA	   NDIS_PACKET_TYPE_MULTICAST
define NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_DATA  NDIS_PACKET_TYPE_ALL_MULTICAST
define NDIS_PACKET_TYPE_802_11_PROMISCUOUS_DATA	   NDIS_PACKET_TYPE_PROMISCUOUS
define NDIS_PACKET_TYPE_802_11_RAW_DATA		   (0x00010000)
define NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT	   (0x00020000)
define NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT	   (0x00040000)
define NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT	   (0x00080000)
define NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT  (0x00100000)
define NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT	   (0x00200000)
define NDIS_PACKET_TYPE_802_11_RAW_MGMT		   (0x00400000)
define NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL	   (0x00800000)
define NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL	   (0x01000000)
define NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL	   (0x02000000)
define NDIS_PACKET_TYPE_ALL_802_11_FILTERS (NDIS_PACKET_TYPE_DIRECTED or NDIS_PACKET_TYPE_MULTICAST or NDIS_PACKET_TYPE_ALL_MULTICAST or NDIS_PACKET_TYPE_BROADCAST or NDIS_PACKET_TYPE_PROMISCUOUS or NDIS_PACKET_TYPE_802_11_RAW_DATA or NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT or NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT or NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT or NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT or NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT or NDIS_PACKET_TYPE_802_11_RAW_MGMT or NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL or NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL or NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL)
define DOT11_MAX_PDU_SIZE			   2346
define DOT11_MIN_PDU_SIZE			   (256)
define DOT11_MAX_NUM_DEFAULT_KEY		   4

if (NTDDI_VERSION ge NTDDI_WIN8 or NDIS_SUPPORT_NDIS630)
define DOT11_MAX_NUM_DEFAULT_KEY_MFP		   DOT11_MAX_NUM_DEFAULT_KEY + 2
endif

define OID_DOT11_NDIS_START			   0x0D010300

define NWF_MANDATORY_OID       (0x01)
define NWF_OPTIONAL_OID	       (0x02)

define NWF_OPERATIONAL_OID     (0x01)
define NWF_STATISTICS_OID      (0x02)

NWF_DEFINE_OID macro Seq,o,m
  exitm<((0x0E000000) or ((o) shl 16) or ((m) shl 8) or (Seq))>
  endm

define OID_DOT11_OFFLOAD_CAPABILITY	       (OID_DOT11_NDIS_START + 0)
define DOT11_HW_WEP_SUPPORTED_TX	       0x00000001
define DOT11_HW_WEP_SUPPORTED_RX	       0x00000002
define DOT11_HW_FRAGMENTATION_SUPPORTED	       0x00000004
define DOT11_HW_DEFRAGMENTATION_SUPPORTED      0x00000008
define DOT11_HW_MSDU_AUTH_SUPPORTED_TX	       0x00000010
define DOT11_HW_MSDU_AUTH_SUPPORTED_RX	       0x00000020
define DOT11_CONF_ALGO_WEP_RC4		       0x00000001
define DOT11_CONF_ALGO_TKIP		       0x00000002
define DOT11_AUTH_ALGO_MICHAEL		       0x00000001

_DOT11_OFFLOAD_CAPABILITY struct
uReserved		ULONG ?
uFlags			ULONG ?
uSupportedWEPAlgorithms ULONG ?
uNumOfReplayWindows	ULONG ?
uMaxWEPKeyMappingLength ULONG ?
uSupportedAuthAlgorithms ULONG ?
uMaxAuthKeyMappingLength ULONG ?
_DOT11_OFFLOAD_CAPABILITY ends
DOT11_OFFLOAD_CAPABILITY typedef _DOT11_OFFLOAD_CAPABILITY
PDOT11_OFFLOAD_CAPABILITY typedef ptr _DOT11_OFFLOAD_CAPABILITY

define OID_DOT11_CURRENT_OFFLOAD_CAPABILITY	   (OID_DOT11_NDIS_START + 1)
_DOT11_CURRENT_OFFLOAD_CAPABILITY struct
uReserved		ULONG ?
uFlags			ULONG ?
_DOT11_CURRENT_OFFLOAD_CAPABILITY ends
DOT11_CURRENT_OFFLOAD_CAPABILITY typedef _DOT11_CURRENT_OFFLOAD_CAPABILITY
PDOT11_CURRENT_OFFLOAD_CAPABILITY typedef ptr _DOT11_CURRENT_OFFLOAD_CAPABILITY

define OID_DOT11_WEP_OFFLOAD			   (OID_DOT11_NDIS_START + 2)
.enum DOT11_OFFLOAD_TYPE {
	dot11_offload_type_wep = 1,
	dot11_offload_type_auth = 2
    }
_DOT11_IV48_COUNTER	struct
uIV32Counter		ULONG ?
usIV16Counter		USHORT ?
_DOT11_IV48_COUNTER	ends
DOT11_IV48_COUNTER	typedef _DOT11_IV48_COUNTER
PDOT11_IV48_COUNTER	typedef ptr _DOT11_IV48_COUNTER
_DOT11_WEP_OFFLOAD	struct
uReserved		ULONG ?
hOffloadContext		HANDLE ?
hOffload		HANDLE ?
dot11OffloadType	DOT11_OFFLOAD_TYPE ?
dwAlgorithm		ULONG ?
bRowIsOutbound		BOOLEAN ?
bUseDefault		BOOLEAN ?
uFlags			ULONG ?
ucMacAddress		UCHAR 6 dup(?)
uNumOfRWsOnPeer		ULONG ?
uNumOfRWsOnMe		ULONG ?
dot11IV48Counters	DOT11_IV48_COUNTER 16 dup(<>)
usDot11RWBitMaps	USHORT 16 dup(?)
usKeyLength		USHORT ?
ucKey			UCHAR 1 dup(?)
_DOT11_WEP_OFFLOAD	ends
DOT11_WEP_OFFLOAD	typedef _DOT11_WEP_OFFLOAD
PDOT11_WEP_OFFLOAD	typedef ptr _DOT11_WEP_OFFLOAD

define OID_DOT11_WEP_UPLOAD			   (OID_DOT11_NDIS_START + 3)
_DOT11_WEP_UPLOAD	struct
uReserved		ULONG ?
dot11OffloadType	DOT11_OFFLOAD_TYPE ?
hOffload		HANDLE ?
uNumOfRWsUsed		ULONG ?
dot11IV48Counters	DOT11_IV48_COUNTER 16 dup(<>)
usDot11RWBitMaps	USHORT 16 dup(?)
_DOT11_WEP_UPLOAD	ends
DOT11_WEP_UPLOAD	typedef _DOT11_WEP_UPLOAD
PDOT11_WEP_UPLOAD	typedef ptr _DOT11_WEP_UPLOAD

define OID_DOT11_DEFAULT_WEP_OFFLOAD		   (OID_DOT11_NDIS_START + 4)
.enum DOT11_KEY_DIRECTION {
	dot11_key_direction_both = 1,
	dot11_key_direction_inbound = 2,
	dot11_key_direction_outbound = 3
    }
_DOT11_DEFAULT_WEP_OFFLOAD struct
uReserved		ULONG ?
hOffloadContext		HANDLE ?
hOffload		HANDLE ?
dwIndex			ULONG ?
dot11OffloadType	DOT11_OFFLOAD_TYPE ?
dwAlgorithm		ULONG ?
uFlags			ULONG ?
dot11KeyDirection	DOT11_KEY_DIRECTION ?
ucMacAddress		UCHAR 6 dup(?)
uNumOfRWsOnMe		ULONG ?
dot11IV48Counters	DOT11_IV48_COUNTER 16 dup(<>)
usDot11RWBitMaps	USHORT 16 dup(?)
usKeyLength		USHORT ?
ucKey			UCHAR 1 dup(?)
_DOT11_DEFAULT_WEP_OFFLOAD ends
DOT11_DEFAULT_WEP_OFFLOAD typedef _DOT11_DEFAULT_WEP_OFFLOAD
PDOT11_DEFAULT_WEP_OFFLOAD typedef ptr _DOT11_DEFAULT_WEP_OFFLOAD

define OID_DOT11_DEFAULT_WEP_UPLOAD	       (OID_DOT11_NDIS_START + 5)
_DOT11_DEFAULT_WEP_UPLOAD struct
uReserved		ULONG ?
dot11OffloadType	DOT11_OFFLOAD_TYPE ?
hOffload		HANDLE ?
uNumOfRWsUsed		ULONG ?
dot11IV48Counters	DOT11_IV48_COUNTER 16 dup(<>)
usDot11RWBitMaps	USHORT 16 dup(?)
_DOT11_DEFAULT_WEP_UPLOAD ends
DOT11_DEFAULT_WEP_UPLOAD typedef _DOT11_DEFAULT_WEP_UPLOAD
PDOT11_DEFAULT_WEP_UPLOAD typedef ptr _DOT11_DEFAULT_WEP_UPLOAD

define OID_DOT11_MPDU_MAX_LENGTH	       (OID_DOT11_NDIS_START + 6)

define OID_DOT11_OPERATION_MODE_CAPABILITY     (OID_DOT11_NDIS_START + 7)
define DOT11_OPERATION_MODE_UNKNOWN	       0x00000000
define DOT11_OPERATION_MODE_STATION	       0x00000001
define DOT11_OPERATION_MODE_AP		       0x00000002
define DOT11_OPERATION_MODE_EXTENSIBLE_STATION 0x00000004
define DOT11_OPERATION_MODE_EXTENSIBLE_AP      0x00000008
define DOT11_OPERATION_MODE_WFD_DEVICE	       0x00000010
define DOT11_OPERATION_MODE_WFD_GROUP_OWNER    0x00000020
define DOT11_OPERATION_MODE_WFD_CLIENT	       0x00000040
define DOT11_OPERATION_MODE_MANUFACTURING      0x40000000
define DOT11_OPERATION_MODE_NETWORK_MONITOR    0x80000000
_DOT11_OPERATION_MODE_CAPABILITY struct
uReserved		ULONG ?
uMajorVersion		ULONG ?
uMinorVersion		ULONG ?
uNumOfTXBuffers		ULONG ?
uNumOfRXBuffers		ULONG ?
uOpModeCapability	ULONG ?
_DOT11_OPERATION_MODE_CAPABILITY ends
DOT11_OPERATION_MODE_CAPABILITY typedef _DOT11_OPERATION_MODE_CAPABILITY
PDOT11_OPERATION_MODE_CAPABILITY typedef ptr _DOT11_OPERATION_MODE_CAPABILITY

define OID_DOT11_CURRENT_OPERATION_MODE	       (OID_DOT11_NDIS_START + 8)
_DOT11_CURRENT_OPERATION_MODE struct
uReserved		ULONG ?
uCurrentOpMode		ULONG ?
_DOT11_CURRENT_OPERATION_MODE ends
DOT11_CURRENT_OPERATION_MODE typedef _DOT11_CURRENT_OPERATION_MODE
PDOT11_CURRENT_OPERATION_MODE typedef ptr _DOT11_CURRENT_OPERATION_MODE

define OID_DOT11_CURRENT_PACKET_FILTER	       (OID_DOT11_NDIS_START + 9)
define DOT11_PACKET_TYPE_DIRECTED_CTRL	       0x00000001
define DOT11_PACKET_TYPE_DIRECTED_MGMT	       0x00000002
define DOT11_PACKET_TYPE_DIRECTED_DATA	       0x00000004
define DOT11_PACKET_TYPE_MULTICAST_CTRL	       0x00000008
define DOT11_PACKET_TYPE_MULTICAST_MGMT	       0x00000010
define DOT11_PACKET_TYPE_MULTICAST_DATA	       0x00000020
define DOT11_PACKET_TYPE_BROADCAST_CTRL	       0x00000040
define DOT11_PACKET_TYPE_BROADCAST_MGMT	       0x00000080
define DOT11_PACKET_TYPE_BROADCAST_DATA	       0x00000100
define DOT11_PACKET_TYPE_PROMISCUOUS_CTRL      0x00000200
define DOT11_PACKET_TYPE_PROMISCUOUS_MGMT      0x00000400
define DOT11_PACKET_TYPE_PROMISCUOUS_DATA      0x00000800
define DOT11_PACKET_TYPE_ALL_MULTICAST_CTRL    0x00001000
define DOT11_PACKET_TYPE_ALL_MULTICAST_MGMT    0x00002000
define DOT11_PACKET_TYPE_ALL_MULTICAST_DATA    0x00004000
define DOT11_PACKET_TYPE_RESERVED  ( not ( DOT11_PACKET_TYPE_DIRECTED_CTRL or DOT11_PACKET_TYPE_DIRECTED_MGMT or DOT11_PACKET_TYPE_DIRECTED_DATA or DOT11_PACKET_TYPE_MULTICAST_CTRL or DOT11_PACKET_TYPE_MULTICAST_MGMT or DOT11_PACKET_TYPE_MULTICAST_DATA or DOT11_PACKET_TYPE_BROADCAST_CTRL or DOT11_PACKET_TYPE_BROADCAST_MGMT or DOT11_PACKET_TYPE_BROADCAST_DATA or DOT11_PACKET_TYPE_PROMISCUOUS_CTRL or DOT11_PACKET_TYPE_PROMISCUOUS_MGMT or DOT11_PACKET_TYPE_PROMISCUOUS_DATA or DOT11_PACKET_TYPE_ALL_MULTICAST_CTRL or DOT11_PACKET_TYPE_ALL_MULTICAST_MGMT or DOT11_PACKET_TYPE_ALL_MULTICAST_DATA or 0 ))

define OID_DOT11_ATIM_WINDOW		       (OID_DOT11_NDIS_START + 10)

define OID_DOT11_SCAN_REQUEST		       (OID_DOT11_NDIS_START + 11)

.enum DOT11_SCAN_TYPE {
	dot11_scan_type_active = 1,
	dot11_scan_type_passive = 2,
	dot11_scan_type_auto = 3,
	dot11_scan_type_forced = 0x80000000
    }
_DOT11_SCAN_REQUEST	struct
dot11BSSType		DOT11_BSS_TYPE ?
dot11BSSID		DOT11_MAC_ADDRESS <>
dot11SSID		DOT11_SSID <>
dot11ScanType		DOT11_SCAN_TYPE ?
bRestrictedScan		BOOLEAN ?
bUseRequestIE		BOOLEAN ?
uRequestIDsOffset	ULONG ?
uNumOfRequestIDs	ULONG ?
uPhyTypesOffset		ULONG ?
uNumOfPhyTypes		ULONG ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
ucBuffer		UCHAR 1 dup(?)
_DOT11_SCAN_REQUEST	ends
DOT11_SCAN_REQUEST	typedef _DOT11_SCAN_REQUEST
PDOT11_SCAN_REQUEST	typedef ptr _DOT11_SCAN_REQUEST

.enum CH_DESCRIPTION_TYPE {
	ch_description_type_logical = 1,
	ch_description_type_center_frequency = 2,
	ch_description_type_phy_specific
    }
_DOT11_PHY_TYPE_INFO	struct
dot11PhyType		DOT11_PHY_TYPE ?
bUseParameters		BOOLEAN ?
uProbeDelay		ULONG ?
uMinChannelTime		ULONG ?
uMaxChannelTime		ULONG ?
ChDescriptionType	CH_DESCRIPTION_TYPE ?
uChannelListSize	ULONG ?
ucChannelListBuffer	UCHAR 1 dup(?)
_DOT11_PHY_TYPE_INFO	ends
DOT11_PHY_TYPE_INFO	typedef _DOT11_PHY_TYPE_INFO
PDOT11_PHY_TYPE_INFO	typedef ptr _DOT11_PHY_TYPE_INFO

_DOT11_SCAN_REQUEST_V2	struct
dot11BSSType		DOT11_BSS_TYPE ?
dot11BSSID		DOT11_MAC_ADDRESS <>
dot11ScanType		DOT11_SCAN_TYPE ?
bRestrictedScan		BOOLEAN ?
udot11SSIDsOffset	ULONG ?
uNumOfdot11SSIDs	ULONG ?
bUseRequestIE		BOOLEAN ?
uRequestIDsOffset	ULONG ?
uNumOfRequestIDs	ULONG ?
uPhyTypeInfosOffset	ULONG ?
uNumOfPhyTypeInfos	ULONG ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
ucBuffer		UCHAR 1 dup(?)
_DOT11_SCAN_REQUEST_V2	ends
DOT11_SCAN_REQUEST_V2	typedef _DOT11_SCAN_REQUEST_V2
PDOT11_SCAN_REQUEST_V2	typedef ptr _DOT11_SCAN_REQUEST_V2

define OID_DOT11_CURRENT_PHY_TYPE	       (OID_DOT11_NDIS_START + 12)
DOT11_PHY_TYPE_LIST	struct
define DOT11_PHY_TYPE_LIST_REVISION_1	       1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11PhyType		DOT11_PHY_TYPE 1 dup(?)
DOT11_PHY_TYPE_LIST	ends
PDOT11_PHY_TYPE_LIST	typedef ptr DOT11_PHY_TYPE_LIST

define OID_DOT11_JOIN_REQUEST		       (OID_DOT11_NDIS_START + 13)

define DOT11_CAPABILITY_INFO_ESS	       0x0001
define DOT11_CAPABILITY_INFO_IBSS	       0x0002
define DOT11_CAPABILITY_INFO_CF_POLLABLE       0x0004
define DOT11_CAPABILITY_INFO_CF_POLL_REQ       0x0008
define DOT11_CAPABILITY_INFO_PRIVACY	       0x0010
define DOT11_CAPABILITY_SHORT_PREAMBLE	       0x0020
define DOT11_CAPABILITY_PBCC		       0x0040
define DOT11_CAPABILITY_CHANNEL_AGILITY	       0x0080
define DOT11_CAPABILITY_SHORT_SLOT_TIME	       0x0400
define DOT11_CAPABILITY_DSSSOFDM	       0x2000

_DOT11_BSS_DESCRIPTION	struct
uReserved		ULONG ?
dot11BSSID		DOT11_MAC_ADDRESS <>
dot11BSSType		DOT11_BSS_TYPE ?
usBeaconPeriod		USHORT ?
ullTimestamp		ULONGLONG ?
usCapabilityInformation USHORT ?
uBufferLength		ULONG ?
ucBuffer		UCHAR 1 dup(?)
_DOT11_BSS_DESCRIPTION	ends
DOT11_BSS_DESCRIPTION	typedef _DOT11_BSS_DESCRIPTION
PDOT11_BSS_DESCRIPTION	typedef ptr _DOT11_BSS_DESCRIPTION

_DOT11_JOIN_REQUEST	struct
uJoinFailureTimeout	ULONG ?
OperationalRateSet	DOT11_RATE_SET <>
uChCenterFrequency	ULONG ?
dot11BSSDescription	DOT11_BSS_DESCRIPTION <>
_DOT11_JOIN_REQUEST	ends
DOT11_JOIN_REQUEST	typedef _DOT11_JOIN_REQUEST
PDOT11_JOIN_REQUEST	typedef ptr _DOT11_JOIN_REQUEST

define OID_DOT11_START_REQUEST		       (OID_DOT11_NDIS_START + 14)
_DOT11_START_REQUEST	struct
uStartFailureTimeout	ULONG ?
OperationalRateSet	DOT11_RATE_SET <>
uChCenterFrequency	ULONG ?
dot11BSSDescription	DOT11_BSS_DESCRIPTION <>
_DOT11_START_REQUEST	ends
DOT11_START_REQUEST	typedef _DOT11_START_REQUEST
PDOT11_START_REQUEST	typedef ptr _DOT11_START_REQUEST

define OID_DOT11_UPDATE_IE		       (OID_DOT11_NDIS_START + 15)
.enum DOT11_UPDATE_IE_OP {
    dot11_update_ie_op_create_replace = 1,
    dot11_update_ie_op_delete = 2,
}

_DOT11_UPDATE_IE	struct
dot11UpdateIEOp		DOT11_UPDATE_IE_OP ?
uBufferLength		ULONG ?
ucBuffer		UCHAR 1 dup(?)
_DOT11_UPDATE_IE	ends
DOT11_UPDATE_IE		typedef _DOT11_UPDATE_IE
PDOT11_UPDATE_IE	typedef ptr _DOT11_UPDATE_IE

define OID_DOT11_RESET_REQUEST			   (OID_DOT11_NDIS_START + 16)
.enum DOT11_RESET_TYPE {
	dot11_reset_type_phy = 1,
	dot11_reset_type_mac = 2,
	dot11_reset_type_phy_and_mac = 3
    }
_DOT11_RESET_REQUEST	struct
dot11ResetType		DOT11_RESET_TYPE ?
dot11MacAddress		DOT11_MAC_ADDRESS <>
bSetDefaultMIB		BOOLEAN ?
_DOT11_RESET_REQUEST	ends
DOT11_RESET_REQUEST	typedef _DOT11_RESET_REQUEST
PDOT11_RESET_REQUEST	typedef ptr _DOT11_RESET_REQUEST

define OID_DOT11_NIC_POWER_STATE		   (OID_DOT11_NDIS_START + 17)

define OID_DOT11_OPTIONAL_CAPABILITY		   (OID_DOT11_NDIS_START + 18)
_DOT11_OPTIONAL_CAPABILITY struct
uReserved		ULONG ?
bDot11PCF		BOOLEAN ?
bDot11PCFMPDUTransferToPC BOOLEAN ?
bStrictlyOrderedServiceClass BOOLEAN ?
_DOT11_OPTIONAL_CAPABILITY ends
DOT11_OPTIONAL_CAPABILITY typedef _DOT11_OPTIONAL_CAPABILITY
PDOT11_OPTIONAL_CAPABILITY typedef ptr _DOT11_OPTIONAL_CAPABILITY

define OID_DOT11_CURRENT_OPTIONAL_CAPABILITY	   (OID_DOT11_NDIS_START + 19)
_DOT11_CURRENT_OPTIONAL_CAPABILITY struct
uReserved		ULONG ?
bDot11CFPollable	BOOLEAN ?
bDot11PCF		BOOLEAN ?
bDot11PCFMPDUTransferToPC BOOLEAN ?
bStrictlyOrderedServiceClass BOOLEAN ?
_DOT11_CURRENT_OPTIONAL_CAPABILITY ends
DOT11_CURRENT_OPTIONAL_CAPABILITY typedef _DOT11_CURRENT_OPTIONAL_CAPABILITY
PDOT11_CURRENT_OPTIONAL_CAPABILITY typedef ptr _DOT11_CURRENT_OPTIONAL_CAPABILITY

define OID_DOT11_STATION_ID			   (OID_DOT11_NDIS_START + 20)
define OID_DOT11_MEDIUM_OCCUPANCY_LIMIT		   (OID_DOT11_NDIS_START + 21)
define OID_DOT11_CF_POLLABLE			   (OID_DOT11_NDIS_START + 22)
define OID_DOT11_CFP_PERIOD			   (OID_DOT11_NDIS_START + 23)
define OID_DOT11_CFP_MAX_DURATION		   (OID_DOT11_NDIS_START + 24)
define OID_DOT11_POWER_MGMT_MODE		   (OID_DOT11_NDIS_START + 25)

.enum DOT11_POWER_MODE {
    dot11_power_mode_unknown = 0,
    dot11_power_mode_active = 1,
    dot11_power_mode_powersave = 2
    }

define DOT11_POWER_SAVE_LEVEL_MAX_PSP	   1
define DOT11_POWER_SAVE_LEVEL_FAST_PSP	   2

_DOT11_POWER_MGMT_MODE	struct
dot11PowerMode		DOT11_POWER_MODE ?
uPowerSaveLevel		ULONG ?
usListenInterval	USHORT ?
usAID			USHORT ?
bReceiveDTIMs		BOOLEAN ?
_DOT11_POWER_MGMT_MODE	ends
DOT11_POWER_MGMT_MODE	typedef _DOT11_POWER_MGMT_MODE
PDOT11_POWER_MGMT_MODE	typedef ptr _DOT11_POWER_MGMT_MODE

define OID_DOT11_OPERATIONAL_RATE_SET		   (OID_DOT11_NDIS_START + 26)
define OID_DOT11_BEACON_PERIOD			   (OID_DOT11_NDIS_START + 27)
define OID_DOT11_DTIM_PERIOD			   (OID_DOT11_NDIS_START + 28)
define OID_DOT11_WEP_ICV_ERROR_COUNT		   (OID_DOT11_NDIS_START + 29)
define OID_DOT11_MAC_ADDRESS			   (OID_DOT11_NDIS_START + 30)
define OID_DOT11_RTS_THRESHOLD			   (OID_DOT11_NDIS_START + 31)
define OID_DOT11_SHORT_RETRY_LIMIT		   (OID_DOT11_NDIS_START + 32)
define OID_DOT11_LONG_RETRY_LIMIT		   (OID_DOT11_NDIS_START + 33)
define OID_DOT11_FRAGMENTATION_THRESHOLD	   (OID_DOT11_NDIS_START + 34)
define OID_DOT11_MAX_TRANSMIT_MSDU_LIFETIME	   (OID_DOT11_NDIS_START + 35)
define OID_DOT11_MAX_RECEIVE_LIFETIME		   (OID_DOT11_NDIS_START + 36)
define OID_DOT11_COUNTERS_ENTRY			   (OID_DOT11_NDIS_START + 37)

_DOT11_COUNTERS_ENTRY	struct
uTransmittedFragmentCount ULONG ?
uMulticastTransmittedFrameCount ULONG ?
uFailedCount		ULONG ?
uRetryCount		ULONG ?
uMultipleRetryCount	ULONG ?
uFrameDuplicateCount	ULONG ?
uRTSSuccessCount	ULONG ?
uRTSFailureCount	ULONG ?
uACKFailureCount	ULONG ?
uReceivedFragmentCount	ULONG ?
uMulticastReceivedFrameCount ULONG ?
uFCSErrorCount		ULONG ?
uTransmittedFrameCount	ULONG ?
_DOT11_COUNTERS_ENTRY	ends
DOT11_COUNTERS_ENTRY	typedef _DOT11_COUNTERS_ENTRY
PDOT11_COUNTERS_ENTRY	typedef ptr _DOT11_COUNTERS_ENTRY

define OID_DOT11_SUPPORTED_PHY_TYPES	       (OID_DOT11_NDIS_START + 38)
_DOT11_SUPPORTED_PHY_TYPES struct
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11PHYType		DOT11_PHY_TYPE 1 dup(?)
_DOT11_SUPPORTED_PHY_TYPES ends
DOT11_SUPPORTED_PHY_TYPES typedef _DOT11_SUPPORTED_PHY_TYPES
PDOT11_SUPPORTED_PHY_TYPES typedef ptr _DOT11_SUPPORTED_PHY_TYPES

define OID_DOT11_CURRENT_REG_DOMAIN	       (OID_DOT11_NDIS_START + 39)
define DOT11_REG_DOMAIN_OTHER		       0x00000000
define DOT11_REG_DOMAIN_FCC		       0x00000010
define DOT11_REG_DOMAIN_DOC		       0x00000020
define DOT11_REG_DOMAIN_ETSI		       0x00000030
define DOT11_REG_DOMAIN_SPAIN		       0x00000031
define DOT11_REG_DOMAIN_FRANCE		       0x00000032
define DOT11_REG_DOMAIN_MKK		       0x00000040

define OID_DOT11_TEMP_TYPE		       (OID_DOT11_NDIS_START + 40)
.enum DOT11_TEMP_TYPE {
	dot11_temp_type_unknown = 0,
	dot11_temp_type_1 = 1,
	dot11_temp_type_2 = 2
    }

define OID_DOT11_CURRENT_TX_ANTENNA		   (OID_DOT11_NDIS_START + 41)
define OID_DOT11_DIVERSITY_SUPPORT		   (OID_DOT11_NDIS_START + 42)
.enum DOT11_DIVERSITY_SUPPORT {
	dot11_diversity_support_unknown = 0,
	dot11_diversity_support_fixedlist = 1,
	dot11_diversity_support_notsupported = 2,
	dot11_diversity_support_dynamic = 3
    }

define OID_DOT11_CURRENT_RX_ANTENNA		   (OID_DOT11_NDIS_START + 43)

define OID_DOT11_SUPPORTED_POWER_LEVELS		   (OID_DOT11_NDIS_START + 44)
_DOT11_SUPPORTED_POWER_LEVELS struct
uNumOfSupportedPowerLevels ULONG ?
uTxPowerLevelValues	ULONG 8 dup(?)
_DOT11_SUPPORTED_POWER_LEVELS ends
DOT11_SUPPORTED_POWER_LEVELS typedef _DOT11_SUPPORTED_POWER_LEVELS
PDOT11_SUPPORTED_POWER_LEVELS typedef ptr _DOT11_SUPPORTED_POWER_LEVELS

define OID_DOT11_CURRENT_TX_POWER_LEVEL		   (OID_DOT11_NDIS_START + 45)
define OID_DOT11_HOP_TIME			   (OID_DOT11_NDIS_START + 46)
define OID_DOT11_CURRENT_CHANNEL_NUMBER		   (OID_DOT11_NDIS_START + 47)
define OID_DOT11_MAX_DWELL_TIME			   (OID_DOT11_NDIS_START + 48)
define OID_DOT11_CURRENT_DWELL_TIME		   (OID_DOT11_NDIS_START + 49)
define OID_DOT11_CURRENT_SET			   (OID_DOT11_NDIS_START + 50)
define OID_DOT11_CURRENT_PATTERN		   (OID_DOT11_NDIS_START + 51)
define OID_DOT11_CURRENT_INDEX			   (OID_DOT11_NDIS_START + 52)
define OID_DOT11_CURRENT_CHANNEL		   (OID_DOT11_NDIS_START + 53)

define OID_DOT11_CCA_MODE_SUPPORTED		   (OID_DOT11_NDIS_START + 54)
define DOT11_CCA_MODE_ED_ONLY		       0x00000001
define DOT11_CCA_MODE_CS_ONLY		       0x00000002
define DOT11_CCA_MODE_ED_and_CS		       0x00000004
define DOT11_CCA_MODE_CS_WITH_TIMER	       0x00000008
define DOT11_CCA_MODE_HRCS_AND_ED	       0x00000010

define OID_DOT11_CURRENT_CCA_MODE		   (OID_DOT11_NDIS_START + 55)
define OID_DOT11_ED_THRESHOLD			   (OID_DOT11_NDIS_START + 56)
define OID_DOT11_CCA_WATCHDOG_TIMER_MAX		   (OID_DOT11_NDIS_START + 57)
define OID_DOT11_CCA_WATCHDOG_COUNT_MAX		   (OID_DOT11_NDIS_START + 58)
define OID_DOT11_CCA_WATCHDOG_TIMER_MIN		   (OID_DOT11_NDIS_START + 59)
define OID_DOT11_CCA_WATCHDOG_COUNT_MIN		   (OID_DOT11_NDIS_START + 60)
define OID_DOT11_REG_DOMAINS_SUPPORT_VALUE	   (OID_DOT11_NDIS_START + 61)
_DOT11_REG_DOMAIN_VALUE struct
uRegDomainsSupportIndex ULONG ?
uRegDomainsSupportValue ULONG ?
_DOT11_REG_DOMAIN_VALUE ends
DOT11_REG_DOMAIN_VALUE	typedef _DOT11_REG_DOMAIN_VALUE
PDOT11_REG_DOMAIN_VALUE typedef ptr _DOT11_REG_DOMAIN_VALUE
_DOT11_REG_DOMAINS_SUPPORT_VALUE struct
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11RegDomainValue	DOT11_REG_DOMAIN_VALUE 1 dup(<>)
_DOT11_REG_DOMAINS_SUPPORT_VALUE ends
DOT11_REG_DOMAINS_SUPPORT_VALUE typedef _DOT11_REG_DOMAINS_SUPPORT_VALUE
PDOT11_REG_DOMAINS_SUPPORT_VALUE typedef ptr _DOT11_REG_DOMAINS_SUPPORT_VALUE

define OID_DOT11_SUPPORTED_TX_ANTENNA		   (OID_DOT11_NDIS_START + 62)
_DOT11_SUPPORTED_ANTENNA struct
uAntennaListIndex	ULONG ?
bSupportedAntenna	BOOLEAN ?
_DOT11_SUPPORTED_ANTENNA ends
DOT11_SUPPORTED_ANTENNA typedef _DOT11_SUPPORTED_ANTENNA
PDOT11_SUPPORTED_ANTENNA typedef ptr _DOT11_SUPPORTED_ANTENNA
_DOT11_SUPPORTED_ANTENNA_LIST struct
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11SupportedAntenna	DOT11_SUPPORTED_ANTENNA 1 dup(<>)
_DOT11_SUPPORTED_ANTENNA_LIST ends
DOT11_SUPPORTED_ANTENNA_LIST typedef _DOT11_SUPPORTED_ANTENNA_LIST
PDOT11_SUPPORTED_ANTENNA_LIST typedef ptr _DOT11_SUPPORTED_ANTENNA_LIST

define OID_DOT11_SUPPORTED_RX_ANTENNA		   (OID_DOT11_NDIS_START + 63)

define OID_DOT11_DIVERSITY_SELECTION_RX		   (OID_DOT11_NDIS_START + 64)
_DOT11_DIVERSITY_SELECTION_RX struct
uAntennaListIndex	ULONG ?
bDiversitySelectionRX	BOOLEAN ?
_DOT11_DIVERSITY_SELECTION_RX ends
DOT11_DIVERSITY_SELECTION_RX typedef _DOT11_DIVERSITY_SELECTION_RX
PDOT11_DIVERSITY_SELECTION_RX typedef ptr _DOT11_DIVERSITY_SELECTION_RX
_DOT11_DIVERSITY_SELECTION_RX_LIST struct
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11DiversitySelectionRx DOT11_DIVERSITY_SELECTION_RX 1 dup(<>)
_DOT11_DIVERSITY_SELECTION_RX_LIST ends
DOT11_DIVERSITY_SELECTION_RX_LIST typedef _DOT11_DIVERSITY_SELECTION_RX_LIST
PDOT11_DIVERSITY_SELECTION_RX_LIST typedef ptr _DOT11_DIVERSITY_SELECTION_RX_LIST

define OID_DOT11_SUPPORTED_DATA_RATES_VALUE	   (OID_DOT11_NDIS_START + 65)
define MAX_NUM_SUPPORTED_RATES		       8
define MAX_NUM_SUPPORTED_RATES_V2	       255
_DOT11_SUPPORTED_DATA_RATES_VALUE struct
ucSupportedTxDataRatesValue UCHAR MAX_NUM_SUPPORTED_RATES dup(?)
ucSupportedRxDataRatesValue UCHAR MAX_NUM_SUPPORTED_RATES dup(?)
_DOT11_SUPPORTED_DATA_RATES_VALUE ends
DOT11_SUPPORTED_DATA_RATES_VALUE typedef _DOT11_SUPPORTED_DATA_RATES_VALUE
PDOT11_SUPPORTED_DATA_RATES_VALUE typedef ptr _DOT11_SUPPORTED_DATA_RATES_VALUE

_DOT11_SUPPORTED_DATA_RATES_VALUE_V2 struct
ucSupportedTxDataRatesValue UCHAR MAX_NUM_SUPPORTED_RATES_V2 dup(?)
ucSupportedRxDataRatesValue UCHAR MAX_NUM_SUPPORTED_RATES_V2 dup(?)
_DOT11_SUPPORTED_DATA_RATES_VALUE_V2 ends
DOT11_SUPPORTED_DATA_RATES_VALUE_V2 typedef _DOT11_SUPPORTED_DATA_RATES_VALUE_V2
PDOT11_SUPPORTED_DATA_RATES_VALUE_V2 typedef ptr _DOT11_SUPPORTED_DATA_RATES_VALUE_V2

PDOT11_SUPPORTED_DATA_RATES_VALUE_V1 typedef ptr DOT11_SUPPORTED_DATA_RATES_VALUE_V1

define OID_DOT11_CURRENT_FREQUENCY		   (OID_DOT11_NDIS_START + 66)
define OID_DOT11_TI_THRESHOLD			   (OID_DOT11_NDIS_START + 67)

define OID_DOT11_FREQUENCY_BANDS_SUPPORTED	   (OID_DOT11_NDIS_START + 68)
define DOT11_FREQUENCY_BANDS_LOWER    0x00000001
define DOT11_FREQUENCY_BANDS_MIDDLE   0x00000002
define DOT11_FREQUENCY_BANDS_UPPER    0x00000004

define OID_DOT11_SHORT_PREAMBLE_OPTION_IMPLEMENTED (OID_DOT11_NDIS_START + 69)
define OID_DOT11_PBCC_OPTION_IMPLEMENTED	   (OID_DOT11_NDIS_START + 70)
define OID_DOT11_CHANNEL_AGILITY_PRESENT	   (OID_DOT11_NDIS_START + 71)
define OID_DOT11_CHANNEL_AGILITY_ENABLED	   (OID_DOT11_NDIS_START + 72)

define OID_DOT11_HR_CCA_MODE_SUPPORTED		   (OID_DOT11_NDIS_START + 73)
define DOT11_HR_CCA_MODE_ED_ONLY	0x00000001
define DOT11_HR_CCA_MODE_CS_ONLY	0x00000002
define DOT11_HR_CCA_MODE_CS_AND_ED	0x00000004
define DOT11_HR_CCA_MODE_CS_WITH_TIMER	0x00000008
define DOT11_HR_CCA_MODE_HRCS_AND_ED	0x00000010

define OID_DOT11_MULTI_DOMAIN_CAPABILITY_IMPLEMENTED   (OID_DOT11_NDIS_START + 74)
define OID_DOT11_MULTI_DOMAIN_CAPABILITY_ENABLED       (OID_DOT11_NDIS_START + 75)
define OID_DOT11_COUNTRY_STRING			       (OID_DOT11_NDIS_START + 76)

_DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY struct
uMultiDomainCapabilityIndex ULONG ?
uFirstChannelNumber	ULONG ?
uNumberOfChannels	ULONG ?
lMaximumTransmitPowerLevel LONG ?
_DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY ends
DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY typedef _DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY
PDOT11_MULTI_DOMAIN_CAPABILITY_ENTRY typedef ptr _DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY
_DOT11_MD_CAPABILITY_ENTRY_LIST struct
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11MDCapabilityEntry	DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY 1 dup(<>)
_DOT11_MD_CAPABILITY_ENTRY_LIST ends
DOT11_MD_CAPABILITY_ENTRY_LIST typedef _DOT11_MD_CAPABILITY_ENTRY_LIST
PDOT11_MD_CAPABILITY_ENTRY_LIST typedef ptr _DOT11_MD_CAPABILITY_ENTRY_LIST

define OID_DOT11_MULTI_DOMAIN_CAPABILITY	   (OID_DOT11_NDIS_START + 77)
define OID_DOT11_EHCC_PRIME_RADIX		   (OID_DOT11_NDIS_START + 78)
define OID_DOT11_EHCC_NUMBER_OF_CHANNELS_FAMILY_INDEX  (OID_DOT11_NDIS_START + 79)
define OID_DOT11_EHCC_CAPABILITY_IMPLEMENTED	   (OID_DOT11_NDIS_START + 80)
define OID_DOT11_EHCC_CAPABILITY_ENABLED	   (OID_DOT11_NDIS_START + 81)
define OID_DOT11_HOP_ALGORITHM_ADOPTED		   (OID_DOT11_NDIS_START + 82)
.enum DOT11_HOP_ALGO_ADOPTED {
	dot11_hop_algo_current = 0,
	dot11_hop_algo_hop_index = 1,
	dot11_hop_algo_hcc = 2
    }

define OID_DOT11_RANDOM_TABLE_FLAG		   (OID_DOT11_NDIS_START + 83)
define OID_DOT11_NUMBER_OF_HOPPING_SETS		   (OID_DOT11_NDIS_START + 84)
define OID_DOT11_HOP_MODULUS			   (OID_DOT11_NDIS_START + 85)
define OID_DOT11_HOP_OFFSET			   (OID_DOT11_NDIS_START + 86)
define OID_DOT11_HOPPING_PATTERN		   (OID_DOT11_NDIS_START + 87)
_DOT11_HOPPING_PATTERN_ENTRY struct
uHoppingPatternIndex	ULONG ?
uRandomTableFieldNumber ULONG ?
_DOT11_HOPPING_PATTERN_ENTRY ends
DOT11_HOPPING_PATTERN_ENTRY typedef _DOT11_HOPPING_PATTERN_ENTRY
PDOT11_HOPPING_PATTERN_ENTRY typedef ptr _DOT11_HOPPING_PATTERN_ENTRY
_DOT11_HOPPING_PATTERN_ENTRY_LIST struct
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11HoppingPatternEntry DOT11_HOPPING_PATTERN_ENTRY 1 dup(<>)
_DOT11_HOPPING_PATTERN_ENTRY_LIST ends
DOT11_HOPPING_PATTERN_ENTRY_LIST typedef _DOT11_HOPPING_PATTERN_ENTRY_LIST
PDOT11_HOPPING_PATTERN_ENTRY_LIST typedef ptr _DOT11_HOPPING_PATTERN_ENTRY_LIST

define OID_DOT11_RANDOM_TABLE_FIELD_NUMBER	   (OID_DOT11_NDIS_START + 88)
define OID_DOT11_WPA_TSC			   (OID_DOT11_NDIS_START + 89)
_DOT11_WPA_TSC		struct
uReserved		ULONG ?
dot11OffloadType	DOT11_OFFLOAD_TYPE ?
hOffload		HANDLE ?
dot11IV48Counter	DOT11_IV48_COUNTER <>
_DOT11_WPA_TSC		ends
DOT11_WPA_TSC		typedef _DOT11_WPA_TSC
PDOT11_WPA_TSC		typedef ptr _DOT11_WPA_TSC

define OID_DOT11_RSSI_RANGE			   (OID_DOT11_NDIS_START + 90)
_DOT11_RSSI_RANGE	struct
dot11PhyType		DOT11_PHY_TYPE ?
uRSSIMin		ULONG ?
uRSSIMax		ULONG ?
_DOT11_RSSI_RANGE	ends
DOT11_RSSI_RANGE	typedef _DOT11_RSSI_RANGE
PDOT11_RSSI_RANGE	typedef ptr _DOT11_RSSI_RANGE

define OID_DOT11_RF_USAGE			   (OID_DOT11_NDIS_START + 91)
define OID_DOT11_NIC_SPECIFIC_EXTENSION		   (OID_DOT11_NDIS_START + 92)
_DOT11_NIC_SPECIFIC_EXTENSION struct
uBufferLength		ULONG ?
uTotalBufferLength	ULONG ?
ucBuffer		UCHAR 1 dup(?)
_DOT11_NIC_SPECIFIC_EXTENSION ends
DOT11_NIC_SPECIFIC_EXTENSION typedef _DOT11_NIC_SPECIFIC_EXTENSION
PDOT11_NIC_SPECIFIC_EXTENSION typedef ptr _DOT11_NIC_SPECIFIC_EXTENSION

define OID_DOT11_AP_JOIN_REQUEST		   (OID_DOT11_NDIS_START + 93)
_DOT11_AP_JOIN_REQUEST	struct
uJoinFailureTimeout	ULONG ?
OperationalRateSet	DOT11_RATE_SET <>
uChCenterFrequency	ULONG ?
dot11BSSDescription	DOT11_BSS_DESCRIPTION <>
_DOT11_AP_JOIN_REQUEST	ends
DOT11_AP_JOIN_REQUEST	typedef _DOT11_AP_JOIN_REQUEST
PDOT11_AP_JOIN_REQUEST	typedef ptr _DOT11_AP_JOIN_REQUEST

define OID_DOT11_ERP_PBCC_OPTION_IMPLEMENTED	   (OID_DOT11_NDIS_START + 94)
define OID_DOT11_ERP_PBCC_OPTION_ENABLED	   (OID_DOT11_NDIS_START + 95)
define OID_DOT11_DSSS_OFDM_OPTION_IMPLEMENTED	   (OID_DOT11_NDIS_START + 96)
define OID_DOT11_DSSS_OFDM_OPTION_ENABLED	   (OID_DOT11_NDIS_START + 97)
define OID_DOT11_SHORT_SLOT_TIME_OPTION_IMPLEMENTED    (OID_DOT11_NDIS_START + 98)
define OID_DOT11_SHORT_SLOT_TIME_OPTION_ENABLED	   (OID_DOT11_NDIS_START + 99)
define OID_DOT11_MAX_MAC_ADDRESS_STATES		   (OID_DOT11_NDIS_START + 100)
define OID_DOT11_RECV_SENSITIVITY_LIST		   (OID_DOT11_NDIS_START + 101)

_DOT11_RECV_SENSITIVITY struct
ucDataRate		UCHAR ?
lRSSIMin		LONG ?
lRSSIMax		LONG ?
_DOT11_RECV_SENSITIVITY ends
DOT11_RECV_SENSITIVITY	typedef _DOT11_RECV_SENSITIVITY
PDOT11_RECV_SENSITIVITY typedef ptr _DOT11_RECV_SENSITIVITY

_DOT11_RECV_SENSITIVITY_LIST struct
union
 dot11PhyType		DOT11_PHY_TYPE ?
 uPhyId			ULONG ?
ends
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11RecvSensitivity	DOT11_RECV_SENSITIVITY 1 dup(<>)
_DOT11_RECV_SENSITIVITY_LIST ends
DOT11_RECV_SENSITIVITY_LIST typedef _DOT11_RECV_SENSITIVITY_LIST
PDOT11_RECV_SENSITIVITY_LIST typedef ptr _DOT11_RECV_SENSITIVITY_LIST

define OID_DOT11_WME_IMPLEMENTED		   (OID_DOT11_NDIS_START + 102)
define OID_DOT11_WME_ENABLED			   (OID_DOT11_NDIS_START + 103)
define OID_DOT11_WME_AC_PARAMETERS		   (OID_DOT11_NDIS_START + 104)
.enum DOT11_AC_PARAM {
	dot11_AC_param_BE = 0,
	dot11_AC_param_BK = 1,
	dot11_AC_param_VI = 2,
	dot11_AC_param_VO = 3,
	dot11_AC_param_max
    }
_DOT11_WME_AC_PARAMETERS struct
ucAccessCategoryIndex	UCHAR ?
ucAIFSN			UCHAR ?
ucECWmin		UCHAR ?
ucECWmax		UCHAR ?
usTXOPLimit		USHORT ?
_DOT11_WME_AC_PARAMETERS ends
DOT11_WME_AC_PARAMETERS typedef _DOT11_WME_AC_PARAMETERS
PDOT11_WME_AC_PARAMETERS typedef ptr _DOT11_WME_AC_PARAMETERS
_DOT11_WME_AC_PARAMTERS_LIST struct
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11WMEACParameters	DOT11_WME_AC_PARAMETERS 1 dup(<>)
_DOT11_WME_AC_PARAMTERS_LIST ends
DOT11_WME_AC_PARAMETERS_LIST typedef _DOT11_WME_AC_PARAMTERS_LIST
PDOT11_WME_AC_PARAMETERS_LIST typedef ptr _DOT11_WME_AC_PARAMTERS_LIST

define OID_DOT11_WME_UPDATE_IE			  (OID_DOT11_NDIS_START + 105)
_DOT11_WME_UPDATE_IE	struct
uParamElemMinBeaconIntervals ULONG ?
uWMEInfoElemOffset	ULONG ?
uWMEInfoElemLength	ULONG ?
uWMEParamElemOffset	ULONG ?
uWMEParamElemLength	ULONG ?
ucBuffer		UCHAR 1 dup(?)
_DOT11_WME_UPDATE_IE	ends
DOT11_WME_UPDATE_IE	typedef _DOT11_WME_UPDATE_IE
PDOT11_WME_UPDATE_IE	typedef ptr _DOT11_WME_UPDATE_IE

define OID_DOT11_QOS_TX_QUEUES_SUPPORTED	  (OID_DOT11_NDIS_START + 106)
define OID_DOT11_QOS_TX_DURATION		  (OID_DOT11_NDIS_START + 107)
_DOT11_QOS_TX_DURATION	struct
uNominalMSDUSize	ULONG ?
uMinPHYRate		ULONG ?
uDuration		ULONG ?
_DOT11_QOS_TX_DURATION	ends
DOT11_QOS_TX_DURATION	typedef _DOT11_QOS_TX_DURATION
PDOT11_QOS_TX_DURATION	typedef ptr _DOT11_QOS_TX_DURATION

define OID_DOT11_QOS_TX_MEDIUM_TIME		  (OID_DOT11_NDIS_START + 108)
_DOT11_QOS_TX_MEDIUM_TIME struct
dot11PeerAddress	DOT11_MAC_ADDRESS <>
ucQoSPriority		UCHAR ?
uMediumTimeAdmited	ULONG ?
_DOT11_QOS_TX_MEDIUM_TIME ends
DOT11_QOS_TX_MEDIUM_TIME typedef _DOT11_QOS_TX_MEDIUM_TIME
PDOT11_QOS_TX_MEDIUM_TIME typedef ptr _DOT11_QOS_TX_MEDIUM_TIME

define OID_DOT11_SUPPORTED_OFDM_FREQUENCY_LIST	  (OID_DOT11_NDIS_START + 109)
_DOT11_SUPPORTED_OFDM_FREQUENCY struct
uCenterFrequency	ULONG ?
_DOT11_SUPPORTED_OFDM_FREQUENCY ends
DOT11_SUPPORTED_OFDM_FREQUENCY typedef _DOT11_SUPPORTED_OFDM_FREQUENCY
PDOT11_SUPPORTED_OFDM_FREQUENCY typedef ptr _DOT11_SUPPORTED_OFDM_FREQUENCY
_DOT11_SUPPORTED_OFDM_FREQUENCY_LIST struct
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11SupportedOFDMFrequency DOT11_SUPPORTED_OFDM_FREQUENCY 1 dup(<>)
_DOT11_SUPPORTED_OFDM_FREQUENCY_LIST ends
DOT11_SUPPORTED_OFDM_FREQUENCY_LIST typedef _DOT11_SUPPORTED_OFDM_FREQUENCY_LIST
PDOT11_SUPPORTED_OFDM_FREQUENCY_LIST typedef ptr _DOT11_SUPPORTED_OFDM_FREQUENCY_LIST

define OID_DOT11_SUPPORTED_DSSS_CHANNEL_LIST	  (OID_DOT11_NDIS_START + 110)
_DOT11_SUPPORTED_DSSS_CHANNEL struct
uChannel		ULONG ?
_DOT11_SUPPORTED_DSSS_CHANNEL ends
DOT11_SUPPORTED_DSSS_CHANNEL typedef _DOT11_SUPPORTED_DSSS_CHANNEL
PDOT11_SUPPORTED_DSSS_CHANNEL typedef ptr _DOT11_SUPPORTED_DSSS_CHANNEL
_DOT11_SUPPORTED_DSSS_CHANNEL_LIST struct
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11SupportedDSSSChannel DOT11_SUPPORTED_DSSS_CHANNEL 1 dup(<>)
_DOT11_SUPPORTED_DSSS_CHANNEL_LIST ends
DOT11_SUPPORTED_DSSS_CHANNEL_LIST typedef _DOT11_SUPPORTED_DSSS_CHANNEL_LIST
PDOT11_SUPPORTED_DSSS_CHANNEL_LIST typedef ptr _DOT11_SUPPORTED_DSSS_CHANNEL_LIST

DOT11_BYTE_ARRAY	struct
Header			NDIS_OBJECT_HEADER <>
uNumOfBytes		ULONG ?
uTotalNumOfBytes	ULONG ?
ucBuffer		UCHAR 1 dup(?)
DOT11_BYTE_ARRAY	ends
PDOT11_BYTE_ARRAY	typedef ptr DOT11_BYTE_ARRAY

define OID_DOT11_AUTO_CONFIG_ENABLED		   NWF_DEFINE_OID(120,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define DOT11_PHY_AUTO_CONFIG_ENABLED_FLAG	   0x00000001
define DOT11_MAC_AUTO_CONFIG_ENABLED_FLAG	   0x00000002

define OID_DOT11_ENUM_BSS_LIST			   NWF_DEFINE_OID(121,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define DOT11_BSS_ENTRY_BYTE_ARRAY_REVISION_1   1

ifndef __midl
DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO union
uChCenterFrequency	ULONG ?
struct FHSS
 uHopPattern		ULONG ?
 uHopSet		ULONG ?
 uDwellTime		ULONG ?
ends
DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO ends
PDOT11_BSS_ENTRY_PHY_SPECIFIC_INFO typedef ptr DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO

DOT11_BSS_ENTRY		struct
uPhyId			ULONG ?
PhySpecificInfo		DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO <>
dot11BSSID		DOT11_MAC_ADDRESS <>
dot11BSSType		DOT11_BSS_TYPE ?
lRSSI			LONG ?
uLinkQuality		ULONG ?
bInRegDomain		BOOLEAN ?
usBeaconPeriod		USHORT ?
ullTimestamp		ULONGLONG ?
ullHostTimestamp	ULONGLONG ?
usCapabilityInformation USHORT ?
uBufferLength		ULONG ?
ucBuffer		UCHAR 1 dup(?)
DOT11_BSS_ENTRY		ends
PDOT11_BSS_ENTRY	typedef ptr DOT11_BSS_ENTRY
endif

define OID_DOT11_FLUSH_BSS_LIST			   NWF_DEFINE_OID(122,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)

define OID_DOT11_POWER_MGMT_REQUEST		   NWF_DEFINE_OID(123,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define DOT11_POWER_SAVING_NO_POWER_SAVING  0
define DOT11_POWER_SAVING_FAST_PSP	   8
define DOT11_POWER_SAVING_MAX_PSP	   16
define DOT11_POWER_SAVING_MAXIMUM_LEVEL	   24

define OID_DOT11_DESIRED_SSID_LIST		   NWF_DEFINE_OID(124,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_SSID_LIST		struct
define DOT11_SSID_LIST_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
SSIDs			DOT11_SSID 1 dup(<>)
DOT11_SSID_LIST		ends
PDOT11_SSID_LIST	typedef ptr DOT11_SSID_LIST

define OID_DOT11_EXCLUDED_MAC_ADDRESS_LIST	   NWF_DEFINE_OID(125,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_MAC_ADDRESS_LIST	struct
define DOT11_MAC_ADDRESS_LIST_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
MacAddrs		DOT11_MAC_ADDRESS 1 dup(<>)
DOT11_MAC_ADDRESS_LIST	ends
PDOT11_MAC_ADDRESS_LIST typedef ptr DOT11_MAC_ADDRESS_LIST

define OID_DOT11_DESIRED_BSSID_LIST		   NWF_DEFINE_OID(126,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_DESIRED_BSS_TYPE		   NWF_DEFINE_OID(127,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_PMKID_LIST			   NWF_DEFINE_OID(128,NWF_OPERATIONAL_OID,NWF_OPTIONAL_OID)

DOT11_PMKID_VALUE	struct
			UCHAR 16 dup(?)
DOT11_PMKID_VALUE	ends
DOT11_PMKID_ENTRY	struct
BSSID			DOT11_MAC_ADDRESS <>
PMKID			DOT11_PMKID_VALUE <>
uFlags			ULONG ?
DOT11_PMKID_ENTRY	ends
PDOT11_PMKID_ENTRY	typedef ptr DOT11_PMKID_ENTRY
DOT11_PMKID_LIST	struct
define DOT11_PMKID_LIST_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
PMKIDs			DOT11_PMKID_ENTRY 1 dup(<>)
DOT11_PMKID_LIST	ends
PDOT11_PMKID_LIST	typedef ptr DOT11_PMKID_LIST

define OID_DOT11_CONNECT_REQUEST		   NWF_DEFINE_OID(129,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_EXCLUDE_UNENCRYPTED		   NWF_DEFINE_OID(130,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_STATISTICS			   NWF_DEFINE_OID(131,NWF_STATISTICS_OID,NWF_MANDATORY_OID)
define DOT11_STATISTICS_UNKNOWN	   (ULONGLONG)(-1)
DOT11_PHY_FRAME_STATISTICS struct
ullTransmittedFrameCount ULONGLONG ?
ullMulticastTransmittedFrameCount ULONGLONG ?
ullFailedCount		ULONGLONG ?
ullRetryCount		ULONGLONG ?
ullMultipleRetryCount	ULONGLONG ?
ullMaxTXLifetimeExceededCount ULONGLONG ?
ullTransmittedFragmentCount ULONGLONG ?
ullRTSSuccessCount	ULONGLONG ?
ullRTSFailureCount	ULONGLONG ?
ullACKFailureCount	ULONGLONG ?
ullReceivedFrameCount	ULONGLONG ?
ullMulticastReceivedFrameCount ULONGLONG ?
ullPromiscuousReceivedFrameCount ULONGLONG ?
ullMaxRXLifetimeExceededCount ULONGLONG ?
ullFrameDuplicateCount	ULONGLONG ?
ullReceivedFragmentCount ULONGLONG ?
ullPromiscuousReceivedFragmentCount ULONGLONG ?
ullFCSErrorCount	ULONGLONG ?
DOT11_PHY_FRAME_STATISTICS ends
PDOT11_PHY_FRAME_STATISTICS typedef ptr DOT11_PHY_FRAME_STATISTICS
DOT11_MAC_FRAME_STATISTICS struct
ullTransmittedFrameCount ULONGLONG ?
ullReceivedFrameCount	ULONGLONG ?
ullTransmittedFailureFrameCount ULONGLONG ?
ullReceivedFailureFrameCount ULONGLONG ?
ullWEPExcludedCount	ULONGLONG ?
ullTKIPLocalMICFailures ULONGLONG ?
ullTKIPReplays		ULONGLONG ?
ullTKIPICVErrorCount	ULONGLONG ?
ullCCMPReplays		ULONGLONG ?
ullCCMPDecryptErrors	ULONGLONG ?
ullWEPUndecryptableCount ULONGLONG ?
ullWEPICVErrorCount	ULONGLONG ?
ullDecryptSuccessCount	ULONGLONG ?
ullDecryptFailureCount	ULONGLONG ?
DOT11_MAC_FRAME_STATISTICS ends
PDOT11_MAC_FRAME_STATISTICS typedef ptr DOT11_MAC_FRAME_STATISTICS
DOT11_STATISTICS	struct
define DOT11_STATISTICS_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
ullFourWayHandshakeFailures ULONGLONG ?
ullTKIPCounterMeasuresInvoked ULONGLONG ?
ullReserved		ULONGLONG ?
MacUcastCounters	DOT11_MAC_FRAME_STATISTICS <>
MacMcastCounters	DOT11_MAC_FRAME_STATISTICS <>
PhyCounters		DOT11_PHY_FRAME_STATISTICS 1 dup(<>)
DOT11_STATISTICS	ends
PDOT11_STATISTICS	typedef ptr DOT11_STATISTICS

define OID_DOT11_PRIVACY_EXEMPTION_LIST		   NWF_DEFINE_OID(132,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_PRIVACY_EXEMPTION struct
usEtherType		USHORT ?
define DOT11_EXEMPT_NO_EXEMPTION       0
define DOT11_EXEMPT_ALWAYS	       1
define DOT11_EXEMPT_ON_KEY_MAPPING_KEY_UNAVAILABLE 2
usExemptionActionType	USHORT ?
define DOT11_EXEMPT_UNICAST		1
define DOT11_EXEMPT_MULTICAST		2
define DOT11_EXEMPT_BOTH		3
usExemptionPacketType	USHORT ?
DOT11_PRIVACY_EXEMPTION ends
PDOT11_PRIVACY_EXEMPTION typedef ptr DOT11_PRIVACY_EXEMPTION
DOT11_PRIVACY_EXEMPTION_LIST struct
define DOT11_PRIVACY_EXEMPTION_LIST_REVISION_1	1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
PrivacyExemptionEntries DOT11_PRIVACY_EXEMPTION 1 dup(<>)
DOT11_PRIVACY_EXEMPTION_LIST ends
PDOT11_PRIVACY_EXEMPTION_LIST typedef ptr DOT11_PRIVACY_EXEMPTION_LIST

define OID_DOT11_ENABLED_AUTHENTICATION_ALGORITHM  NWF_DEFINE_OID(133,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_AUTH_ALGORITHM_LIST struct
define DOT11_AUTH_ALGORITHM_LIST_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
AlgorithmIds		DOT11_AUTH_ALGORITHM 1 dup(?)
DOT11_AUTH_ALGORITHM_LIST ends
PDOT11_AUTH_ALGORITHM_LIST typedef ptr DOT11_AUTH_ALGORITHM_LIST

define OID_DOT11_SUPPORTED_UNICAST_ALGORITHM_PAIR  NWF_DEFINE_OID(134,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_AUTH_CIPHER_PAIR_LIST struct
define DOT11_AUTH_CIPHER_PAIR_LIST_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
AuthCipherPairs		DOT11_AUTH_CIPHER_PAIR 1 dup(<>)
DOT11_AUTH_CIPHER_PAIR_LIST ends
PDOT11_AUTH_CIPHER_PAIR_LIST typedef ptr DOT11_AUTH_CIPHER_PAIR_LIST

define OID_DOT11_ENABLED_UNICAST_CIPHER_ALGORITHM  NWF_DEFINE_OID(135,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_CIPHER_ALGORITHM_LIST struct
define DOT11_CIPHER_ALGORITHM_LIST_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
AlgorithmIds		DOT11_CIPHER_ALGORITHM 1 dup(?)
DOT11_CIPHER_ALGORITHM_LIST ends
PDOT11_CIPHER_ALGORITHM_LIST typedef ptr DOT11_CIPHER_ALGORITHM_LIST

define OID_DOT11_SUPPORTED_MULTICAST_ALGORITHM_PAIR    NWF_DEFINE_OID(136,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_ENABLED_MULTICAST_CIPHER_ALGORITHM    NWF_DEFINE_OID(137,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_CIPHER_DEFAULT_KEY_ID		   NWF_DEFINE_OID(138,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_CIPHER_DEFAULT_KEY		   NWF_DEFINE_OID(139,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_CIPHER_DEFAULT_KEY_VALUE struct
define DOT11_CIPHER_DEFAULT_KEY_VALUE_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uKeyIndex		ULONG ?
AlgorithmId		DOT11_CIPHER_ALGORITHM ?
MacAddr			DOT11_MAC_ADDRESS <>
bDelete			BOOLEAN ?
bStatic			BOOLEAN ?
usKeyLength		USHORT ?
ucKey			UCHAR 1 dup(?)
DOT11_CIPHER_DEFAULT_KEY_VALUE ends
PDOT11_CIPHER_DEFAULT_KEY_VALUE typedef ptr DOT11_CIPHER_DEFAULT_KEY_VALUE
DOT11_KEY_ALGO_TKIP_MIC struct
ucIV48Counter		UCHAR 6 dup(?)
ulTKIPKeyLength		ULONG ?
ulMICKeyLength		ULONG ?
ucTKIPMICKeys		UCHAR 1 dup(?)
DOT11_KEY_ALGO_TKIP_MIC ends
PDOT11_KEY_ALGO_TKIP_MIC typedef ptr DOT11_KEY_ALGO_TKIP_MIC
DOT11_KEY_ALGO_CCMP	struct
ucIV48Counter		UCHAR 6 dup(?)
ulCCMPKeyLength		ULONG ?
ucCCMPKey		UCHAR 1 dup(?)
DOT11_KEY_ALGO_CCMP	ends
PDOT11_KEY_ALGO_CCMP	typedef ptr DOT11_KEY_ALGO_CCMP
DOT11_KEY_ALGO_GCMP	struct
ucIV48Counter		UCHAR 6 dup(?)
ulGCMPKeyLength		ULONG ?
ucGCMPKey		UCHAR 1 dup(?)
DOT11_KEY_ALGO_GCMP	ends
PDOT11_KEY_ALGO_GCMP	typedef ptr DOT11_KEY_ALGO_GCMP
DOT11_KEY_ALGO_GCMP_256 struct
ucIV48Counter		UCHAR 6 dup(?)
ulGCMP256KeyLength	ULONG ?
ucGCMP256Key		UCHAR 1 dup(?)
DOT11_KEY_ALGO_GCMP_256 ends
PDOT11_KEY_ALGO_GCMP_256 typedef ptr DOT11_KEY_ALGO_GCMP_256
DOT11_KEY_ALGO_BIP	struct
ucIPN			UCHAR 6 dup(?)
ulBIPKeyLength		ULONG ?
ucBIPKey		UCHAR 1 dup(?)
DOT11_KEY_ALGO_BIP	ends
PDOT11_KEY_ALGO_BIP	typedef ptr DOT11_KEY_ALGO_BIP
DOT11_KEY_ALGO_BIP_GMAC_256 struct
ucIPN			UCHAR 6 dup(?)
ulBIPGmac256KeyLength	ULONG ?
ucBIPGmac256Key		UCHAR 1 dup(?)
DOT11_KEY_ALGO_BIP_GMAC_256 ends
PDOT11_KEY_ALGO_BIP_GMAC_256 typedef ptr DOT11_KEY_ALGO_BIP_GMAC_256

define OID_DOT11_CIPHER_KEY_MAPPING_KEY		   NWF_DEFINE_OID(140,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
.enum DOT11_DIRECTION {
	DOT11_DIR_INBOUND = 1,
	DOT11_DIR_OUTBOUND,
	DOT11_DIR_BOTH
    }
define DOT11_CIPHER_KEY_MAPPING_KEY_VALUE_BYTE_ARRAY_REVISION_1	 1
DOT11_CIPHER_KEY_MAPPING_KEY_VALUE struct
PeerMacAddr		DOT11_MAC_ADDRESS <>
AlgorithmId		DOT11_CIPHER_ALGORITHM ?
Direction		DOT11_DIRECTION ?
bDelete			BOOLEAN ?
bStatic			BOOLEAN ?
usKeyLength		USHORT ?
ucKey			UCHAR 1 dup(?)
DOT11_CIPHER_KEY_MAPPING_KEY_VALUE ends
PDOT11_CIPHER_KEY_MAPPING_KEY_VALUE typedef ptr DOT11_CIPHER_KEY_MAPPING_KEY_VALUE
define OID_DOT11_ENUM_ASSOCIATION_INFO		   NWF_DEFINE_OID(141,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
.enum DOT11_ASSOCIATION_STATE {
	dot11_assoc_state_zero = 0,
	dot11_assoc_state_unauth_unassoc = 1,
	dot11_assoc_state_auth_unassoc = 2,
	dot11_assoc_state_auth_assoc = 3
    }
_DOT11_ASSOCIATION_INFO_EX struct
PeerMacAddress		DOT11_MAC_ADDRESS <>
BSSID			DOT11_MAC_ADDRESS <>
usCapabilityInformation USHORT ?
usListenInterval	USHORT ?
ucPeerSupportedRates	UCHAR MAX_NUM_SUPPORTED_RATES_V2 dup(?)
usAssociationID		USHORT ?
dot11AssociationState	DOT11_ASSOCIATION_STATE ?
dot11PowerMode		DOT11_POWER_MODE ?
liAssociationUpTime	LARGE_INTEGER <>
ullNumOfTxPacketSuccesses ULONGLONG ?
ullNumOfTxPacketFailures ULONGLONG ?
ullNumOfRxPacketSuccesses ULONGLONG ?
ullNumOfRxPacketFailures ULONGLONG ?
_DOT11_ASSOCIATION_INFO_EX ends
DOT11_ASSOCIATION_INFO_EX typedef _DOT11_ASSOCIATION_INFO_EX
PDOT11_ASSOCIATION_INFO_EX typedef ptr _DOT11_ASSOCIATION_INFO_EX
DOT11_ASSOCIATION_INFO_LIST struct
define DOT11_ASSOCIATION_INFO_LIST_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11AssocInfo		DOT11_ASSOCIATION_INFO_EX 1 dup(<>)
DOT11_ASSOCIATION_INFO_LIST ends
PDOT11_ASSOCIATION_INFO_LIST typedef ptr DOT11_ASSOCIATION_INFO_LIST

define OID_DOT11_DISCONNECT_REQUEST		   NWF_DEFINE_OID(142,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_UNICAST_USE_GROUP_ENABLED	   NWF_DEFINE_OID(143,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_HARDWARE_PHY_STATE		   NWF_DEFINE_OID(144,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_DESIRED_PHY_LIST		   NWF_DEFINE_OID(145,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_PHY_ID_LIST	struct
define DOT11_PHY_ID_LIST_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
dot11PhyId		ULONG 1 dup(?)
DOT11_PHY_ID_LIST	ends
PDOT11_PHY_ID_LIST	typedef ptr DOT11_PHY_ID_LIST
define DOT11_PHY_ID_ANY	       (0xffffffff)

define OID_DOT11_CURRENT_PHY_ID			   NWF_DEFINE_OID(146,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_MEDIA_STREAMING_ENABLED	   NWF_DEFINE_OID(147,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_UNREACHABLE_DETECTION_THRESHOLD   NWF_DEFINE_OID(148,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_ACTIVE_PHY_LIST		   NWF_DEFINE_OID(149,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_EXTSTA_CAPABILITY		   NWF_DEFINE_OID(150,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_EXTSTA_CAPABILITY struct
define DOT11_EXTSTA_CAPABILITY_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uScanSSIDListSize	ULONG ?
uDesiredBSSIDListSize	ULONG ?
uDesiredSSIDListSize	ULONG ?
uExcludedMacAddressListSize ULONG ?
uPrivacyExemptionListSize ULONG ?
uKeyMappingTableSize	ULONG ?
uDefaultKeyTableSize	ULONG ?
uWEPKeyValueMaxLength	ULONG ?
uPMKIDCacheSize		ULONG ?
uMaxNumPerSTADefaultKeyTables ULONG ?
DOT11_EXTSTA_CAPABILITY ends
PDOT11_EXTSTA_CAPABILITY typedef ptr DOT11_EXTSTA_CAPABILITY

define OID_DOT11_DATA_RATE_MAPPING_TABLE	   NWF_DEFINE_OID(151,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_DATA_RATE_MAPPING_ENTRY struct
ucDataRateIndex		UCHAR ?
ucDataRateFlag		UCHAR ?
usDataRateValue		USHORT ?
DOT11_DATA_RATE_MAPPING_ENTRY ends
PDOT11_DATA_RATE_MAPPING_ENTRY typedef ptr DOT11_DATA_RATE_MAPPING_ENTRY
_DOT11_DATA_RATE_MAPPING_TABLE struct
define DOT11_DATA_RATE_MAPPING_TABLE_REVISION_1	 1
Header			NDIS_OBJECT_HEADER <>
uDataRateMappingLength	ULONG ?
DataRateMappingEntries	DOT11_DATA_RATE_MAPPING_ENTRY DOT11_RATE_SET_MAX_LENGTH dup(<>)
_DOT11_DATA_RATE_MAPPING_TABLE ends
DOT11_DATA_RATE_MAPPING_TABLE typedef _DOT11_DATA_RATE_MAPPING_TABLE
PDOT11_DATA_RATE_MAPPING_TABLE typedef ptr _DOT11_DATA_RATE_MAPPING_TABLE
define DOT11_DATA_RATE_NON_STANDARD	   0x01
define DOT11_DATA_RATE_INDEX_MASK	   0x7f

define OID_DOT11_SUPPORTED_COUNTRY_OR_REGION_STRING    NWF_DEFINE_OID(152,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_COUNTRY_OR_REGION_STRING_LIST struct
define DOT11_COUNTRY_OR_REGION_STRING_LIST_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
CountryOrRegionStrings	DOT11_COUNTRY_OR_REGION_STRING 1 dup(<>)
DOT11_COUNTRY_OR_REGION_STRING_LIST ends
PDOT11_COUNTRY_OR_REGION_STRING_LIST typedef ptr DOT11_COUNTRY_OR_REGION_STRING_LIST

define OID_DOT11_DESIRED_COUNTRY_OR_REGION_STRING      NWF_DEFINE_OID(153,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)

define OID_DOT11_PORT_STATE_NOTIFICATION	   NWF_DEFINE_OID(154,NWF_OPERATIONAL_OID,NWF_OPTIONAL_OID)
DOT11_PORT_STATE_NOTIFICATION struct
define DOT11_PORT_STATE_NOTIFICATION_REVISION_1	 1
Header			NDIS_OBJECT_HEADER <>
PeerMac			DOT11_MAC_ADDRESS <>
bOpen			BOOLEAN ?
DOT11_PORT_STATE_NOTIFICATION ends
PDOT11_PORT_STATE_NOTIFICATION typedef ptr DOT11_PORT_STATE_NOTIFICATION

define OID_DOT11_IBSS_PARAMS			   NWF_DEFINE_OID(155,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_IBSS_PARAMS	struct
define DOT11_IBSS_PARAMS_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
bJoinOnly		BOOLEAN ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
DOT11_IBSS_PARAMS	ends
PDOT11_IBSS_PARAMS	typedef ptr DOT11_IBSS_PARAMS

define OID_DOT11_QOS_PARAMS			   NWF_DEFINE_OID(156,NWF_OPERATIONAL_OID,NWF_OPTIONAL_OID)
DOT11_QOS_PARAMS	struct
define DOT11_QOS_PARAMS_REVISION_1     1
Header			NDIS_OBJECT_HEADER <>
define DOT11_QOS_PROTOCOL_FLAG_WMM     (0x01)
define DOT11_QOS_PROTOCOL_FLAG_11E     (0x02)
ucEnabledQoSProtocolFlags UCHAR ?
DOT11_QOS_PARAMS	ends
PDOT11_QOS_PARAMS	typedef ptr DOT11_QOS_PARAMS

define OID_DOT11_SAFE_MODE_ENABLED		   NWF_DEFINE_OID(157,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_HIDDEN_NETWORK_ENABLED		   NWF_DEFINE_OID(158,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_ASSOCIATION_PARAMS		   NWF_DEFINE_OID(159,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
DOT11_ASSOCIATION_PARAMS struct
define DOT11_ASSOCIATION_PARAMS_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
BSSID			DOT11_MAC_ADDRESS <>
uAssocRequestIEsOffset	ULONG ?
uAssocRequestIEsLength	ULONG ?
DOT11_ASSOCIATION_PARAMS ends
PDOT11_ASSOCIATION_PARAMS typedef ptr DOT11_ASSOCIATION_PARAMS

define OID_DOT11_SAFE_MODE_HT_ENABLED		  NWF_DEFINE_OID(160,NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)

define DOT11_MAX_NUM_OF_FRAGMENTS		   16
define DOT11_PRIORITY_CONTENTION		   0
define DOT11_PRIORITY_CONTENTION_FREE		   1

define DOT11_SERVICE_CLASS_REORDERABLE_MULTICAST   0
define DOT11_SERVICE_CLASS_STRICTLY_ORDERED	   1
define DOT11_FLAGS_80211B_SHORT_PREAMBLE	   0x00000001
define DOT11_FLAGS_80211B_PBCC			   0x00000002
define DOT11_FLAGS_80211B_CHANNEL_AGILITY	   0x00000004
define DOT11_FLAGS_PS_ON			   0x00000008
define DOT11_FLAGS_80211G_DSSS_OFDM		   0x00000010
define DOT11_FLAGS_80211G_USE_PROTECTION	   0x00000020
define DOT11_FLAGS_80211G_NON_ERP_PRESENT	   0x00000040
define DOT11_FLAGS_80211G_BARKER_PREAMBLE_MODE	   0x00000080
define DOT11_WME_PACKET				   0x00000100

_DOT11_FRAGMENT_DESCRIPTOR struct
uOffset			ULONG ?
uLength			ULONG ?
_DOT11_FRAGMENT_DESCRIPTOR ends
DOT11_FRAGMENT_DESCRIPTOR typedef _DOT11_FRAGMENT_DESCRIPTOR
PDOT11_FRAGMENT_DESCRIPTOR typedef ptr _DOT11_FRAGMENT_DESCRIPTOR

_DOT11_PER_MSDU_COUNTERS struct
uTransmittedFragmentCount ULONG ?
uRetryCount		ULONG ?
uRTSSuccessCount	ULONG ?
uRTSFailureCount	ULONG ?
uACKFailureCount	ULONG ?
_DOT11_PER_MSDU_COUNTERS ends
DOT11_PER_MSDU_COUNTERS typedef _DOT11_PER_MSDU_COUNTERS
PDOT11_PER_MSDU_COUNTERS typedef ptr _DOT11_PER_MSDU_COUNTERS

PDOT11_PHY_ATTRIBUTES	typedef ptr DOT11_PHY_ATTRIBUTES

DOT11_HRDSSS_PHY_ATTRIBUTES struct
bShortPreambleOptionImplemented BOOLEAN ?
bPBCCOptionImplemented	BOOLEAN ?
bChannelAgilityPresent	BOOLEAN ?
uHRCCAModeSupported	ULONG ?
DOT11_HRDSSS_PHY_ATTRIBUTES ends
PDOT11_HRDSSS_PHY_ATTRIBUTES typedef ptr DOT11_HRDSSS_PHY_ATTRIBUTES

DOT11_OFDM_PHY_ATTRIBUTES struct
uFrequencyBandsSupported ULONG ?
DOT11_OFDM_PHY_ATTRIBUTES ends
PDOT11_OFDM_PHY_ATTRIBUTES typedef ptr DOT11_OFDM_PHY_ATTRIBUTES

DOT11_ERP_PHY_ATTRIBUTES struct
HRDSSSAttributes	DOT11_HRDSSS_PHY_ATTRIBUTES <>
bERPPBCCOptionImplemented BOOLEAN ?
bDSSSOFDMOptionImplemented BOOLEAN ?
bShortSlotTimeOptionImplemented BOOLEAN ?
DOT11_ERP_PHY_ATTRIBUTES ends
PDOT11_ERP_PHY_ATTRIBUTES typedef ptr DOT11_ERP_PHY_ATTRIBUTES

DOT11_PHY_ATTRIBUTES	struct
define DOT11_PHY_ATTRIBUTES_REVISION_1	1
Header			NDIS_OBJECT_HEADER <>
PhyType			DOT11_PHY_TYPE ?
bHardwarePhyState	BOOLEAN ?
bSoftwarePhyState	BOOLEAN ?
bCFPollable		BOOLEAN ?
uMPDUMaxLength		ULONG ?
TempType		DOT11_TEMP_TYPE ?
DiversitySupport	DOT11_DIVERSITY_SUPPORT ?
DOT11_PHY_ATTRIBUTES	ends
PhySpecificAttributes	typedef DOT11_PHY_ATTRIBUTES

define DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_OID_SUPPORTED  0x1
define DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_CERTIFIED      0x2
define DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_RESERVED       0xC

PDOT11_EXTSTA_ATTRIBUTES typedef ptr DOT11_EXTSTA_ATTRIBUTES
DOT11_EXTSTA_ATTRIBUTES struct
define DOT11_EXTSTA_ATTRIBUTES_REVISION_1  1
define DOT11_EXTSTA_ATTRIBUTES_REVISION_2  2
define DOT11_EXTSTA_ATTRIBUTES_REVISION_3  3
define DOT11_EXTSTA_ATTRIBUTES_REVISION_4  4
Header			NDIS_OBJECT_HEADER <>
uScanSSIDListSize	ULONG ?
uDesiredBSSIDListSize	ULONG ?
uDesiredSSIDListSize	ULONG ?
uExcludedMacAddressListSize ULONG ?
uPrivacyExemptionListSize ULONG ?
uKeyMappingTableSize	ULONG ?
uDefaultKeyTableSize	ULONG ?
uWEPKeyValueMaxLength	ULONG ?
uPMKIDCacheSize		ULONG ?
uMaxNumPerSTADefaultKeyTables ULONG ?
bStrictlyOrderedServiceClassImplemented BOOLEAN ?
ucSupportedQoSProtocolFlags UCHAR ?
bSafeModeImplemented	BOOLEAN ?
uNumSupportedCountryOrRegionStrings ULONG ?
pSupportedCountryOrRegionStrings PDOT11_COUNTRY_OR_REGION_STRING ?
uInfraNumSupportedUcastAlgoPairs ULONG ?
pInfraSupportedUcastAlgoPairs PDOT11_AUTH_CIPHER_PAIR ?
uInfraNumSupportedMcastAlgoPairs ULONG ?
pInfraSupportedMcastAlgoPairs PDOT11_AUTH_CIPHER_PAIR ?
uAdhocNumSupportedUcastAlgoPairs ULONG ?
pAdhocSupportedUcastAlgoPairs PDOT11_AUTH_CIPHER_PAIR ?
uAdhocNumSupportedMcastAlgoPairs ULONG ?
pAdhocSupportedMcastAlgoPairs PDOT11_AUTH_CIPHER_PAIR ?
bAutoPowerSaveMode	BOOLEAN ?
uMaxNetworkOffloadListSize ULONG ?
bMFPCapable		BOOLEAN ?
uInfraNumSupportedMcastMgmtAlgoPairs ULONG ?
bNeighborReportSupported BOOLEAN ?
bAPChannelReportSupported BOOLEAN ?
bActionFramesSupported	BOOLEAN ?
bANQPQueryOffloadSupported BOOLEAN ?
bHESSIDConnectionSupported BOOLEAN ?
DOT11_EXTSTA_ATTRIBUTES ends

if (defined(_NDIS_) or defined(NDIS_WRAPPER))
_DOT11_SEND_CONTEXT	struct
define DOT11_SEND_CONTEXT_REVISION_1  1
Header			NDIS_OBJECT_HEADER ?
pvReserved		PVOID ?
uFlags			ULONG ?
uPSLifetime		ULONG ?
uDelayedSleepValue	ULONG ?
ucTXDataRates		UCHAR 8 dup(?)
bIndicateAssociatedACKs BOOLEAN ?
bIndicateTXStatus	BOOLEAN ?
ucPriority		UCHAR ?
bDontFragment		BOOLEAN ?
dwExtendedStatus	ULONG ?
hIntegrityOffload	HANDLE ?
hWEPOffload		HANDLE ?
ucWPAMSDUPriority	UCHAR ?
ucNumOfRWsOnPeer	UCHAR ?
usAID			USHORT ?
pDot11PerMSDUCounters	PDOT11_PER_MSDU_COUNTERS ?
_DOT11_SEND_CONTEXT	ends
DOT11_SEND_CONTEXT	typedef _DOT11_SEND_CONTEXT
PDOT11_SEND_CONTEXT	typedef ptr _DOT11_SEND_CONTEXT

define DOT11_SEND_CONTEXT_SIZE ((sizeof(DOT11_SEND_CONTEXT) + MEMORY_ALLOCATION_ALIGNMENT - 1) and not (MEMORY_ALLOCATION_ALIGNMENT-1))

_DOT11_SEND_EXTENSION_INFO struct
uVersion		ULONG ?
Header			NDIS_OBJECT_HEADER ?
pvReserved		PVOID ?
uFlags			ULONG ?
uPSLifetime		ULONG ?
uDelayedSleepValue	ULONG ?
ucTXDataRates		UCHAR 8 dup(?)
bIndicateAssociatedACKs BOOLEAN ?
bIndicateTXStatus	BOOLEAN ?
ucPriority		UCHAR ?
bDontFragment		BOOLEAN ?
dwExtendedStatus	ULONG ?
hIntegrityOffload	HANDLE ?
hWEPOffload		HANDLE ?
ucWPAMSDUPriority	UCHAR ?
ucNumOfRWsOnPeer	UCHAR ?
usAID			USHORT ?
pDot11PerMSDUCounters	PDOT11_PER_MSDU_COUNTERS ?
usNumberOfFragments	USHORT ?
Dot11FragmentDescriptors DOT11_FRAGMENT_DESCRIPTOR 1 dup(?)
_DOT11_SEND_EXTENSION_INFO ends
DOT11_SEND_EXTENSION_INFO typedef _DOT11_SEND_EXTENSION_INFO
PDOT11_SEND_EXTENSION_INFO typedef ptr _DOT11_SEND_EXTENSION_INFO

.enum DOT11_ACK_POLICY {
	    dot11_ack_policy_none = 0,
	    dot11_ack_policy_acknowledge = 1,
	    dot11_ack_policy_do_not_acknowledge = 2,
	}

_DOT11_SEND_EXTENSION_INFO_V2 struct
record
 ucQoSPriority		UCHAR : 4 ?
 ucAckPolicy		UCHAR : 4 ?
ends
usExtendedTXDataRatesOffset USHORT ?
ucNumOfExtendedTXDataRates UCHAR ?
ucBuffer		UCHAR 1 dup(?)
_DOT11_SEND_EXTENSION_INFO_V2 ends
DOT11_SEND_EXTENSION_INFO_V2 typedef _DOT11_SEND_EXTENSION_INFO_V2
PDOT11_SEND_EXTENSION_INFO_V2 typedef ptr _DOT11_SEND_EXTENSION_INFO_V2

_DOT11_RECV_CONTEXT	struct
define DOT11_RECV_CONTEXT_REVISION_1  1
Header			NDIS_OBJECT_HEADER ?
pvReserved		PVOID ?
dot11PhyType		DOT11_PHY_TYPE ?
uChCenterFrequency	ULONG ?
lRSSI			LONG ?
uRSSI			ULONG ?
ucPriority		UCHAR ?
ucDataRate		UCHAR ?
ucPeerMacAddress	UCHAR 6 dup(?)
dwExtendedStatus	ULONG ?
hWEPOffloadContext	HANDLE ?
hAuthOffloadContext	HANDLE ?
usWEPAppliedMask	USHORT ?
usWPAMSDUPriority	USHORT ?
dot11LowestIV48Counter	DOT11_IV48_COUNTER ?
usDot11LeftRWBitMap	USHORT ?
dot11HighestIV48Counter DOT11_IV48_COUNTER ?
usDot11RightRWBitMap	USHORT ?
usNumberOfMPDUsReceived USHORT ?
_DOT11_RECV_CONTEXT	ends
DOT11_RECV_CONTEXT	typedef _DOT11_RECV_CONTEXT
PDOT11_RECV_CONTEXT	typedef ptr _DOT11_RECV_CONTEXT
define DOT11_RECV_CONTEXT_SIZE ((sizeof(DOT11_RECV_CONTEXT) + MEMORY_ALLOCATION_ALIGNMENT - 1) and not (MEMORY_ALLOCATION_ALIGNMENT-1))
else
_DOT11_RECV_EXTENSION_INFO struct
uVersion		ULONG ?
pvReserved		PVOID ?
dot11PhyType		DOT11_PHY_TYPE ?
uChCenterFrequency	ULONG ?
lRSSI			LONG ?
lRSSIMin		LONG ?
lRSSIMax		LONG ?
uRSSI			ULONG ?
ucPriority		UCHAR ?
ucDataRate		UCHAR ?
ucPeerMacAddress	UCHAR 6 dup(?)
dwExtendedStatus	ULONG ?
hWEPOffloadContext	HANDLE ?
hAuthOffloadContext	HANDLE ?
usWEPAppliedMask	USHORT ?
usWPAMSDUPriority	USHORT ?
dot11LowestIV48Counter	DOT11_IV48_COUNTER <>
usDot11LeftRWBitMap	USHORT ?
dot11HighestIV48Counter DOT11_IV48_COUNTER <>
usDot11RightRWBitMap	USHORT ?
usNumberOfMPDUsReceived USHORT ?
usNumberOfFragments	USHORT ?
pNdisPackets		PVOID 1 dup(?)
_DOT11_RECV_EXTENSION_INFO ends
DOT11_RECV_EXTENSION_INFO typedef _DOT11_RECV_EXTENSION_INFO
PDOT11_RECV_EXTENSION_INFO typedef ptr _DOT11_RECV_EXTENSION_INFO

_DOT11_RECV_EXTENSION_INFO_V2 struct
uVersion		ULONG ?
pvReserved		PVOID ?
dot11PhyType		DOT11_PHY_TYPE ?
uChCenterFrequency	ULONG ?
lRSSI			LONG ?
uRSSI			ULONG ?
ucPriority		UCHAR ?
ucDataRate		UCHAR ?
ucPeerMacAddress	UCHAR 6 dup(?)
dwExtendedStatus	ULONG ?
hWEPOffloadContext	HANDLE ?
hAuthOffloadContext	HANDLE ?
usWEPAppliedMask	USHORT ?
usWPAMSDUPriority	USHORT ?
dot11LowestIV48Counter	DOT11_IV48_COUNTER <>
usDot11LeftRWBitMap	USHORT ?
dot11HighestIV48Counter DOT11_IV48_COUNTER <>
usDot11RightRWBitMap	USHORT ?
usNumberOfMPDUsReceived USHORT ?
usNumberOfFragments	USHORT ?
pNdisPackets		PVOID 1 dup(?)
_DOT11_RECV_EXTENSION_INFO_V2 ends
DOT11_RECV_EXTENSION_INFO_V2 typedef _DOT11_RECV_EXTENSION_INFO_V2
PDOT11_RECV_EXTENSION_INFO_V2 typedef ptr _DOT11_RECV_EXTENSION_INFO_V2
endif

define DOT11_STATUS_SUCCESS			   0x00000001
define DOT11_STATUS_RETRY_LIMIT_EXCEEDED	   0x00000002
define DOT11_STATUS_UNSUPPORTED_PRIORITY	   0x00000004
define DOT11_STATUS_UNSUPPORTED_SERVICE_CLASS	   0x00000008
define DOT11_STATUS_UNAVAILABLE_PRIORITY	   0x00000010
define DOT11_STATUS_UNAVAILABLE_SERVICE_CLASS	   0x00000020
define DOT11_STATUS_XMIT_MSDU_TIMER_EXPIRED	   0x00000040
define DOT11_STATUS_UNAVAILABLE_BSS		   0x00000080
define DOT11_STATUS_EXCESSIVE_DATA_LENGTH	   0x00000100
define DOT11_STATUS_ENCRYPTION_FAILED		   0x00000200
define DOT11_STATUS_WEP_KEY_UNAVAILABLE		   0x00000400
define DOT11_STATUS_ICV_VERIFIED		   0x00000800
define DOT11_STATUS_PACKET_REASSEMBLED		   0x00001000
define DOT11_STATUS_PACKET_NOT_REASSEMBLED	   0x00002000
define DOT11_STATUS_GENERATE_AUTH_FAILED	   0x00004000
define DOT11_STATUS_AUTH_NOT_VERIFIED		   0x00008000
define DOT11_STATUS_AUTH_VERIFIED		   0x00010000
define DOT11_STATUS_AUTH_FAILED			   0x00020000
define DOT11_STATUS_PS_LIFETIME_EXPIRED		   0x00040000

_DOT11_STATUS_INDICATION struct
uStatusType		ULONG ?
ndisStatus		NDIS_STATUS ?
_DOT11_STATUS_INDICATION ends
DOT11_STATUS_INDICATION typedef _DOT11_STATUS_INDICATION
PDOT11_STATUS_INDICATION typedef ptr _DOT11_STATUS_INDICATION

define DOT11_STATUS_RESET_CONFIRM		       4

define DOT11_STATUS_SCAN_CONFIRM		   1
define DOT11_STATUS_JOIN_CONFIRM		   2
define DOT11_STATUS_START_CONFIRM		   3
define DOT11_STATUS_AP_JOIN_CONFIRM		   5
define DOT11_STATUS_MPDU_MAX_LENGTH_CHANGED	   6

DOT11_MPDU_MAX_LENGTH_INDICATION struct
define DOT11_MPDU_MAX_LENGTH_INDICATION_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uPhyId			ULONG ?
uMPDUMaxLength		ULONG ?
DOT11_MPDU_MAX_LENGTH_INDICATION ends
PDOT11_MPDU_MAX_LENGTH_INDICATION typedef ptr DOT11_MPDU_MAX_LENGTH_INDICATION

DOT11_ASSOCIATION_START_PARAMETERS struct
define DOT11_ASSOCIATION_START_PARAMETERS_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
MacAddr			DOT11_MAC_ADDRESS <>
SSID			DOT11_SSID <>
uIHVDataOffset		ULONG ?
uIHVDataSize		ULONG ?
DOT11_ASSOCIATION_START_PARAMETERS ends
PDOT11_ASSOCIATION_START_PARAMETERS typedef ptr DOT11_ASSOCIATION_START_PARAMETERS

define DOT11_ENCAP_RFC_1042	1
define DOT11_ENCAP_802_1H	2
DOT11_ENCAP_ENTRY	struct
usEtherType		USHORT ?
usEncapType		USHORT ?
DOT11_ENCAP_ENTRY	ends
PDOT11_ENCAP_ENTRY	typedef ptr DOT11_ENCAP_ENTRY

.enum DOT11_DS_INFO {
    DOT11_DS_CHANGED,
    DOT11_DS_UNCHANGED,
    DOT11_DS_UNKNOWN
    }

DOT11_ASSOC_STATUS	typedef ULONG

define DOT11_ASSOC_STATUS_SUCCESS			   0
define DOT11_ASSOC_STATUS_FAILURE			   0x00000001
define DOT11_ASSOC_STATUS_UNREACHABLE			   0x00000002
define DOT11_ASSOC_STATUS_RADIO_OFF			   0x00000003
define DOT11_ASSOC_STATUS_PHY_DISABLED			   0x00000004
define DOT11_ASSOC_STATUS_CANCELLED			   0x00000005
define DOT11_ASSOC_STATUS_CANDIDATE_LIST_EXHAUSTED	   0x00000006
define DOT11_ASSOC_STATUS_DISASSOCIATED_BY_OS		   0x00000007
define DOT11_ASSOC_STATUS_DISASSOCIATED_BY_ROAMING	   0x00000008
define DOT11_ASSOC_STATUS_DISASSOCIATED_BY_RESET	   0x00000009
define DOT11_ASSOC_STATUS_SYSTEM_ERROR			   0x0000000a
define DOT11_ASSOC_STATUS_ROAMING_BETTER_AP_FOUND	   0x0000000b
define DOT11_ASSOC_STATUS_ROAMING_ASSOCIATION_LOST	   0x0000000c
define DOT11_ASSOC_STATUS_ROAMING_ADHOC			   0x0000000d

define DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED		   0x00010000
define DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED_START	   DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED
define DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED_END	   0x0001ffff

define DOT11_ASSOC_STATUS_PEER_DISASSOCIATED		   0x00020000
define DOT11_ASSOC_STATUS_PEER_DISASSOCIATED_START	   DOT11_ASSOC_STATUS_PEER_DISASSOCIATED
define DOT11_ASSOC_STATUS_PEER_DISASSOCIATED_END	   0x0002ffff

define DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE		   0x00030000
define DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE_START	   DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE
define DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE_END	   0x0003ffff

define DOT11_ASSOC_STATUS_REASON_CODE_MASK		   0xffff

define DOT11_ASSOC_STATUS_IHV_START			   0x80000000
define DOT11_ASSOC_STATUS_IHV_END			   0xffffffff

DOT11_ASSOCIATION_COMPLETION_PARAMETERS struct
define DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_1  1
define DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_2  2
Header			NDIS_OBJECT_HEADER <>
MacAddr			DOT11_MAC_ADDRESS <>
uStatus			DOT11_ASSOC_STATUS ?
bReAssocReq		BOOLEAN ?
bReAssocResp		BOOLEAN ?
uAssocReqOffset		ULONG ?
uAssocReqSize		ULONG ?
uAssocRespOffset	ULONG ?
uAssocRespSize		ULONG ?
uBeaconOffset		ULONG ?
uBeaconSize		ULONG ?
uIHVDataOffset		ULONG ?
uIHVDataSize		ULONG ?
AuthAlgo		DOT11_AUTH_ALGORITHM ?
UnicastCipher		DOT11_CIPHER_ALGORITHM ?
MulticastCipher		DOT11_CIPHER_ALGORITHM ?
uActivePhyListOffset	ULONG ?
uActivePhyListSize	ULONG ?
bFourAddressSupported	BOOLEAN ?
bPortAuthorized		BOOLEAN ?
ucActiveQoSProtocol	UCHAR ?
DSInfo			DOT11_DS_INFO ?
uEncapTableOffset	ULONG ?
uEncapTableSize		ULONG ?
if (NTDDI_VERSION ge NTDDI_WIN8)
MulticastMgmtCipher	DOT11_CIPHER_ALGORITHM ?
uAssocComebackTime	ULONG ?
endif
DOT11_ASSOCIATION_COMPLETION_PARAMETERS ends
PDOT11_ASSOCIATION_COMPLETION_PARAMETERS typedef ptr DOT11_ASSOCIATION_COMPLETION_PARAMETERS

DOT11_CONNECTION_START_PARAMETERS struct
define DOT11_CONNECTION_START_PARAMETERS_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
BSSType			DOT11_BSS_TYPE ?
AdhocBSSID		DOT11_MAC_ADDRESS <>
AdhocSSID		DOT11_SSID <>
DOT11_CONNECTION_START_PARAMETERS ends
PDOT11_CONNECTION_START_PARAMETERS typedef ptr DOT11_CONNECTION_START_PARAMETERS

define DOT11_CONNECTION_STATUS_SUCCESS			   DOT11_ASSOC_STATUS_SUCCESS
define DOT11_CONNECTION_STATUS_FAILURE			   DOT11_ASSOC_STATUS_FAILURE
define DOT11_CONNECTION_STATUS_CANDIDATE_LIST_EXHAUSTED	   DOT11_ASSOC_STATUS_CANDIDATE_LIST_EXHAUSTED
define DOT11_CONNECTION_STATUS_PHY_POWER_DOWN		   DOT11_ASSOC_STATUS_RADIO_OFF
define DOT11_CONNECTION_STATUS_CANCELLED		   DOT11_ASSOC_STATUS_CANCELLED
define DOT11_CONNECTION_STATUS_IHV_START		   DOT11_ASSOC_STATUS_IHV_START
define DOT11_CONNECTION_STATUS_IHV_END			   DOT11_ASSOC_STATUS_IHV_END
DOT11_CONNECTION_COMPLETION_PARAMETERS struct
define DOT11_CONNECTION_COMPLETION_PARAMETERS_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uStatus			DOT11_ASSOC_STATUS ?
DOT11_CONNECTION_COMPLETION_PARAMETERS ends
PDOT11_CONNECTION_COMPLETION_PARAMETERS typedef ptr DOT11_CONNECTION_COMPLETION_PARAMETERS

define DOT11_ROAMING_REASON_BETTER_AP_FOUND    DOT11_ASSOC_STATUS_ROAMING_BETTER_AP_FOUND
define DOT11_ROAMING_REASON_ASSOCIATION_LOST   DOT11_ASSOC_STATUS_ROAMING_ASSOCIATION_LOST
define DOT11_ROAMING_REASON_ADHOC	       DOT11_ASSOC_STATUS_ROAMING_ADHOC
define DOT11_ROAMING_REASON_IHV_START	       DOT11_ASSOC_STATUS_IHV_START
define DOT11_ROAMING_REASON_IHV_END	       DOT11_ASSOC_STATUS_IHV_END
DOT11_ROAMING_START_PARAMETERS struct
define DOT11_ROAMING_START_PARAMETERS_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
AdhocBSSID		DOT11_MAC_ADDRESS <>
AdhocSSID		DOT11_SSID <>
uRoamingReason		DOT11_ASSOC_STATUS ?
DOT11_ROAMING_START_PARAMETERS ends
PDOT11_ROAMING_START_PARAMETERS typedef ptr DOT11_ROAMING_START_PARAMETERS

DOT11_ROAMING_COMPLETION_PARAMETERS struct
define DOT11_ROAMING_COMPLETION_PARAMETERS_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uStatus			DOT11_ASSOC_STATUS ?
DOT11_ROAMING_COMPLETION_PARAMETERS ends
PDOT11_ROAMING_COMPLETION_PARAMETERS typedef ptr DOT11_ROAMING_COMPLETION_PARAMETERS

define DOT11_DISASSOC_REASON_OS			   DOT11_ASSOC_STATUS_DISASSOCIATED_BY_OS
define DOT11_DISASSOC_REASON_PEER_UNREACHABLE	   DOT11_ASSOC_STATUS_UNREACHABLE
define DOT11_DISASSOC_REASON_PEER_DEAUTHENTICATED  DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED
define DOT11_DISASSOC_REASON_PEER_DISASSOCIATED	   DOT11_ASSOC_STATUS_PEER_DISASSOCIATED
define DOT11_DISASSOC_REASON_RADIO_OFF		   DOT11_ASSOC_STATUS_RADIO_OFF
define DOT11_DISASSOC_REASON_PHY_DISABLED	   DOT11_ASSOC_STATUS_PHY_DISABLED
define DOT11_DISASSOC_REASON_IHV_START		   DOT11_ASSOC_STATUS_IHV_START
define DOT11_DISASSOC_REASON_IHV_END		   DOT11_ASSOC_STATUS_IHV_END
DOT11_DISASSOCIATION_PARAMETERS struct
define DOT11_DISASSOCIATION_PARAMETERS_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
MacAddr			DOT11_MAC_ADDRESS <>
uReason			DOT11_ASSOC_STATUS ?
uIHVDataOffset		ULONG ?
uIHVDataSize		ULONG ?
DOT11_DISASSOCIATION_PARAMETERS ends
PDOT11_DISASSOCIATION_PARAMETERS typedef ptr DOT11_DISASSOCIATION_PARAMETERS

DOT11_TKIPMIC_FAILURE_PARAMETERS struct
define DOT11_TKIPMIC_FAILURE_PARAMETERS_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
bDefaultKeyFailure	BOOLEAN ?
uKeyIndex		ULONG ?
PeerMac			DOT11_MAC_ADDRESS <>
DOT11_TKIPMIC_FAILURE_PARAMETERS ends
PDOT11_TKIPMIC_FAILURE_PARAMETERS typedef ptr DOT11_TKIPMIC_FAILURE_PARAMETERS

DOT11_PMKID_CANDIDATE_LIST_PARAMETERS struct
define DOT11_PMKID_CANDIDATE_LIST_PARAMETERS_REVISION_1	 1
Header			NDIS_OBJECT_HEADER <>
uCandidateListSize	ULONG ?
uCandidateListOffset	ULONG ?
DOT11_PMKID_CANDIDATE_LIST_PARAMETERS ends
PDOT11_PMKID_CANDIDATE_LIST_PARAMETERS typedef ptr DOT11_PMKID_CANDIDATE_LIST_PARAMETERS

DOT11_BSSID_CANDIDATE	struct
BSSID			DOT11_MAC_ADDRESS <>
define DOT11_PMKID_CANDIDATE_PREAUTH_ENABLED   0x00000001
uFlags			ULONG ?
DOT11_BSSID_CANDIDATE	ends
PDOT11_BSSID_CANDIDATE	typedef ptr DOT11_BSSID_CANDIDATE

DOT11_PHY_STATE_PARAMETERS struct
define DOT11_PHY_STATE_PARAMETERS_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uPhyId			ULONG ?
bHardwarePhyState	BOOLEAN ?
bSoftwarePhyState	BOOLEAN ?
DOT11_PHY_STATE_PARAMETERS ends
PDOT11_PHY_STATE_PARAMETERS typedef ptr DOT11_PHY_STATE_PARAMETERS

DOT11_LINK_QUALITY_ENTRY struct
PeerMacAddr		DOT11_MAC_ADDRESS <>
ucLinkQuality		UCHAR ?
DOT11_LINK_QUALITY_ENTRY ends
PDOT11_LINK_QUALITY_ENTRY typedef ptr DOT11_LINK_QUALITY_ENTRY

DOT11_LINK_QUALITY_PARAMETERS struct
define DOT11_LINK_QUALITY_PARAMETERS_REVISION_1	 1
Header			NDIS_OBJECT_HEADER <>
uLinkQualityListSize	ULONG ?
uLinkQualityListOffset	ULONG ?
DOT11_LINK_QUALITY_PARAMETERS ends
PDOT11_LINK_QUALITY_PARAMETERS typedef ptr DOT11_LINK_QUALITY_PARAMETERS

DOT11_EXTSTA_SEND_CONTEXT struct
define DOT11_EXTSTA_SEND_CONTEXT_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
usExemptionActionType	USHORT ?
uPhyId			ULONG ?
uDelayedSleepValue	ULONG ?
ifdef __midl
pvMediaSpecificInfo	ULONG_PTR ?
else
pvMediaSpecificInfo	PVOID ?
endif
uSendFlags		ULONG ?
DOT11_EXTSTA_SEND_CONTEXT ends
PDOT11_EXTSTA_SEND_CONTEXT typedef ptr DOT11_EXTSTA_SEND_CONTEXT

define DOT11_RECV_FLAG_RAW_PACKET		0x00000001
define DOT11_RECV_FLAG_RAW_PACKET_FCS_FAILURE  0x00000002
define DOT11_RECV_FLAG_RAW_PACKET_TIMESTAMP    0x00000004
DOT11_EXTSTA_RECV_CONTEXT struct
define DOT11_EXTSTA_RECV_CONTEXT_REVISION_1  1
Header			NDIS_OBJECT_HEADER <>
uReceiveFlags		ULONG ?
uPhyId			ULONG ?
uChCenterFrequency	ULONG ?
usNumberOfMPDUsReceived USHORT ?
lRSSI			LONG ?
ucDataRate		UCHAR ?
uSizeMediaSpecificInfo	ULONG ?
ifdef __midl
pvMediaSpecificInfo	ULONG_PTR ?
else
pvMediaSpecificInfo	PVOID ?
endif
ullTimestamp		ULONGLONG ?
DOT11_EXTSTA_RECV_CONTEXT ends
PDOT11_EXTSTA_RECV_CONTEXT typedef ptr DOT11_EXTSTA_RECV_CONTEXT

define OID_DOT11_PRIVATE_OIDS_START		   (OID_DOT11_NDIS_START + 1024)
define OID_DOT11_CURRENT_ADDRESS		   (OID_DOT11_PRIVATE_OIDS_START + 2)
define OID_DOT11_PERMANENT_ADDRESS		   (OID_DOT11_PRIVATE_OIDS_START + 3)
define OID_DOT11_MULTICAST_LIST			   (OID_DOT11_PRIVATE_OIDS_START + 4)
define OID_DOT11_MAXIMUM_LIST_SIZE		   (OID_DOT11_PRIVATE_OIDS_START + 5)

DEFINE_NWF_GUID macro name,ord
  exitm<DEFINE_GUID(name, 0x6cb9a43e+(ord), 0xc45f, 0x4039, 0x9f, 0xe6, 0xd0, 0x8c, 0xb0, 0x57, 0x18, 0x4c)>
  endm

DEFINE_NWF_GUID(GUID_NWF_OFFLOAD_CAPABILITY,0);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_OFFLOAD_CAPABILITY,1);
DEFINE_NWF_GUID(GUID_NWF_WEP_OFFLOAD,2);
DEFINE_NWF_GUID(GUID_NWF_WEP_UPLOAD,3);
DEFINE_NWF_GUID(GUID_NWF_DEFAULT_WEP_OFFLOAD,4);
DEFINE_NWF_GUID(GUID_NWF_DEFAULT_WEP_UPLOAD,5);
DEFINE_NWF_GUID(GUID_NWF_MPDU_MAX_LENGTH,6);
DEFINE_NWF_GUID(GUID_NWF_OPERATION_MODE_CAPABILITY,7);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_OPERATION_MODE,8);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_PACKET_FILTER,9);
DEFINE_NWF_GUID(GUID_NWF_ATIM_WINDOW,10);
DEFINE_NWF_GUID(GUID_NWF_SCAN_REQUEST,11);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_PHY_TYPE,12);
DEFINE_NWF_GUID(GUID_NWF_JOIN_REQUEST,13);
DEFINE_NWF_GUID(GUID_NWF_START_REQUEST,14);
DEFINE_NWF_GUID(GUID_NWF_UPDATE_IE,15);
DEFINE_NWF_GUID(GUID_NWF_RESET_REQUEST,16);
DEFINE_NWF_GUID(GUID_NWF_NIC_POWER_STATE,17);
DEFINE_NWF_GUID(GUID_NWF_OPTIONAL_CAPABILITY,18);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_OPTIONAL_CAPABILITY,19);
DEFINE_NWF_GUID(GUID_NWF_STATION_ID,20);
DEFINE_NWF_GUID(GUID_NWF_MEDIUM_OCCUPANCY_LIMIT,21);
DEFINE_NWF_GUID(GUID_NWF_CF_POLLABLE,22);
DEFINE_NWF_GUID(GUID_NWF_CFP_PERIOD,23);
DEFINE_NWF_GUID(GUID_NWF_CFP_MAX_DURATION,24);
DEFINE_NWF_GUID(GUID_NWF_POWER_MGMT_MODE,25);
DEFINE_NWF_GUID(GUID_NWF_OPERATIONAL_RATE_SET,26);
DEFINE_NWF_GUID(GUID_NWF_BEACON_PERIOD,27);
DEFINE_NWF_GUID(GUID_NWF_DTIM_PERIOD,28);
DEFINE_NWF_GUID(GUID_NWF_WEP_ICV_ERROR_COUNT,29);
DEFINE_NWF_GUID(GUID_NWF_MAC_ADDRESS,30);
DEFINE_NWF_GUID(GUID_NWF_RTS_THRESHOLD,31);
DEFINE_NWF_GUID(GUID_NWF_SHORT_RETRY_LIMIT,32);
DEFINE_NWF_GUID(GUID_NWF_LONG_RETRY_LIMIT,33);
DEFINE_NWF_GUID(GUID_NWF_FRAGMENTATION_THRESHOLD,34);
DEFINE_NWF_GUID(GUID_NWF_MAX_TRANSMIT_MSDU_LIFETIME,35);
DEFINE_NWF_GUID(GUID_NWF_MAX_RECEIVE_LIFETIME,36);
DEFINE_NWF_GUID(GUID_NWF_COUNTERS_ENTRY,37);
DEFINE_NWF_GUID(GUID_NWF_SUPPORTED_PHY_TYPES,38);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_REG_DOMAIN,39);
DEFINE_NWF_GUID(GUID_NWF_TEMP_TYPE,40);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_TX_ANTENNA,41);
DEFINE_NWF_GUID(GUID_NWF_DIVERSITY_SUPPORT,42);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_RX_ANTENNA,43);
DEFINE_NWF_GUID(GUID_NWF_SUPPORTED_POWER_LEVELS,44);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_TX_POWER_LEVEL,45);
DEFINE_NWF_GUID(GUID_NWF_HOP_TIME,46);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_CHANNEL_NUMBER,47);
DEFINE_NWF_GUID(GUID_NWF_MAX_DWELL_TIME,48);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_DWELL_TIME,49);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_SET,50);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_PATTERN,51);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_INDEX,52);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_CHANNEL,53);
DEFINE_NWF_GUID(GUID_NWF_CCA_MODE_SUPPORTED,54);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_CCA_MODE,55);
DEFINE_NWF_GUID(GUID_NWF_ED_THRESHOLD,56);
DEFINE_NWF_GUID(GUID_NWF_CCA_WATCHDOG_TIMER_MAX,57);
DEFINE_NWF_GUID(GUID_NWF_CCA_WATCHDOG_COUNT_MAX,58);
DEFINE_NWF_GUID(GUID_NWF_CCA_WATCHDOG_TIMER_MIN,59);
DEFINE_NWF_GUID(GUID_NWF_CCA_WATCHDOG_COUNT_MIN,60);
DEFINE_NWF_GUID(GUID_NWF_REG_DOMAINS_SUPPORT_VALUE,61);
DEFINE_NWF_GUID(GUID_NWF_SUPPORTED_TX_ANTENNA,62);
DEFINE_NWF_GUID(GUID_NWF_SUPPORTED_RX_ANTENNA,63);
DEFINE_NWF_GUID(GUID_NWF_DIVERSITY_SELECTION_RX,64);
DEFINE_NWF_GUID(GUID_NWF_SUPPORTED_DATA_RATES_VALUE,65);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_FREQUENCY,66);
DEFINE_NWF_GUID(GUID_NWF_TI_THRESHOLD,67);
DEFINE_NWF_GUID(GUID_NWF_FREQUENCY_BANDS_SUPPORTED,68);
DEFINE_NWF_GUID(GUID_NWF_SHORT_PREAMBLE_OPTION_IMPLEMENTED,69);
DEFINE_NWF_GUID(GUID_NWF_PBCC_OPTION_IMPLEMENTED,70);
DEFINE_NWF_GUID(GUID_NWF_CHANNEL_AGILITY_PRESENT,71);
DEFINE_NWF_GUID(GUID_NWF_CHANNEL_AGILITY_ENABLED,72);
DEFINE_NWF_GUID(GUID_NWF_HR_CCA_MODE_SUPPORTED,73);
DEFINE_NWF_GUID(GUID_NWF_MULTI_DOMAIN_CAPABILITY_IMPLEMENTED,74);
DEFINE_NWF_GUID(GUID_NWF_MULTI_DOMAIN_CAPABILITY_ENABLED,75);
DEFINE_NWF_GUID(GUID_NWF_COUNTRY_STRING,76);
DEFINE_NWF_GUID(GUID_NWF_MULTI_DOMAIN_CAPABILITY,77);
DEFINE_NWF_GUID(GUID_NWF_EHCC_PRIME_RADIX,78);
DEFINE_NWF_GUID(GUID_NWF_EHCC_NUMBER_OF_CHANNELS_FAMILY_INDEX,79);
DEFINE_NWF_GUID(GUID_NWF_EHCC_CAPABILITY_IMPLEMENTED,80);
DEFINE_NWF_GUID(GUID_NWF_EHCC_CAPABILITY_ENABLED,81);
DEFINE_NWF_GUID(GUID_NWF_HOP_ALGORITHM_ADOPTED,82);
DEFINE_NWF_GUID(GUID_NWF_RANDOM_TABLE_FLAG,83);
DEFINE_NWF_GUID(GUID_NWF_NUMBER_OF_HOPPING_SETS,84);
DEFINE_NWF_GUID(GUID_NWF_HOP_MODULUS,85);
DEFINE_NWF_GUID(GUID_NWF_HOP_OFFSET,86);
DEFINE_NWF_GUID(GUID_NWF_HOPPING_PATTERN,87);
DEFINE_NWF_GUID(GUID_NWF_RANDOM_TABLE_FIELD_NUMBER,88);
DEFINE_NWF_GUID(GUID_NWF_WPA_TSC,89);
DEFINE_NWF_GUID(GUID_NWF_RSSI_RANGE,90);
DEFINE_NWF_GUID(GUID_NWF_RF_USAGE,91);
DEFINE_NWF_GUID(GUID_NWF_NIC_SPECIFIC_EXTENSION,92);
DEFINE_NWF_GUID(GUID_NWF_AP_JOIN_REQUEST,93);
DEFINE_NWF_GUID(GUID_NWF_ERP_PBCC_OPTION_IMPLEMENTED,94);
DEFINE_NWF_GUID(GUID_NWF_ERP_PBCC_OPTION_ENABLED,95);
DEFINE_NWF_GUID(GUID_NWF_DSSS_OFDM_OPTION_IMPLEMENTED,96);
DEFINE_NWF_GUID(GUID_NWF_DSSS_OFDM_OPTION_ENABLED,97);
DEFINE_NWF_GUID(GUID_NWF_SHORT_SLOT_TIME_OPTION_IMPLEMENTED,98);
DEFINE_NWF_GUID(GUID_NWF_SHORT_SLOT_TIME_OPTION_ENABLED,99);
DEFINE_NWF_GUID(GUID_NWF_MAX_MAC_ADDRESS_STATES,100);
DEFINE_NWF_GUID(GUID_NWF_RECV_SENSITIVITY_LIST,101);
DEFINE_NWF_GUID(GUID_NWF_WME_IMPLEMENTED,102);
DEFINE_NWF_GUID(GUID_NWF_WME_ENABLED,103);
DEFINE_NWF_GUID(GUID_NWF_WME_AC_PARAMETERS,104);
DEFINE_NWF_GUID(GUID_NWF_WME_UPDATE_IE,105);
DEFINE_NWF_GUID(GUID_NWF_QOS_TX_QUEUES_SUPPORTED,106);
DEFINE_NWF_GUID(GUID_NWF_QOS_TX_DURATION,107);
DEFINE_NWF_GUID(GUID_NWF_QOS_TX_MEDIUM_TIME,108);
DEFINE_NWF_GUID(GUID_NWF_SUPPORTED_OFDM_FREQUENCY_LIST,109);
DEFINE_NWF_GUID(GUID_NWF_SUPPORTED_DSSS_CHANNEL_LIST,110);
DEFINE_NWF_GUID(GUID_NWF_AUTO_CONFIG_ENABLED,120);
DEFINE_NWF_GUID(GUID_NWF_ENUM_BSS_LIST,121);
DEFINE_NWF_GUID(GUID_NWF_FLUSH_BSS_LIST,122);
DEFINE_NWF_GUID(GUID_NWF_POWER_MGMT_REQUEST,123);
DEFINE_NWF_GUID(GUID_NWF_DESIRED_SSID_LIST,124);
DEFINE_NWF_GUID(GUID_NWF_EXCLUDED_MAC_ADDRESS_LIST,125);
DEFINE_NWF_GUID(GUID_NWF_DESIRED_BSSID_LIST,126);
DEFINE_NWF_GUID(GUID_NWF_DESIRED_BSS_TYPE,127);
DEFINE_NWF_GUID(GUID_NWF_PMKID_LIST,128);
DEFINE_NWF_GUID(GUID_NWF_CONNECT_REQUEST,129);
DEFINE_NWF_GUID(GUID_NWF_EXCLUDE_UNENCRYPTED,130);
DEFINE_NWF_GUID(GUID_NWF_STATISTICS,131);
DEFINE_NWF_GUID(GUID_NWF_PRIVACY_EXEMPTION_LIST,132);
DEFINE_NWF_GUID(GUID_NWF_ENABLED_AUTHENTICATION_ALGORITHM,133);
DEFINE_NWF_GUID(GUID_NWF_SUPPORTED_UNICAST_ALGORITHM_PAIR,134);
DEFINE_NWF_GUID(GUID_NWF_ENABLED_UNICAST_CIPHER_ALGORITHM,135);
DEFINE_NWF_GUID(GUID_NWF_SUPPORTED_MULTICAST_ALGORITHM_PAIR,136);
DEFINE_NWF_GUID(GUID_NWF_ENABLED_MULTICAST_CIPHER_ALGORITHM,137);
DEFINE_NWF_GUID(GUID_NWF_CIPHER_DEFAULT_KEY_ID,138);
DEFINE_NWF_GUID(GUID_NWF_CIPHER_DEFAULT_KEY,139);
DEFINE_NWF_GUID(GUID_NWF_CIPHER_KEY_MAPPING_KEY,140);
DEFINE_NWF_GUID(GUID_NWF_ENUM_ASSOCIATION_INFO,141);
DEFINE_NWF_GUID(GUID_NWF_DISCONNECT_REQUEST,142);
DEFINE_NWF_GUID(GUID_NWF_UNICAST_USE_GROUP_ENABLED,143);
DEFINE_NWF_GUID(GUID_NWF_PHY_STATE,144);
DEFINE_NWF_GUID(GUID_NWF_DESIRED_PHY_LIST,145);
DEFINE_NWF_GUID(GUID_NWF_CURRENT_PHY_ID,146);
DEFINE_NWF_GUID(GUID_NWF_MEDIA_STREAMING_ENABLED,147);
DEFINE_NWF_GUID(GUID_NWF_UNREACHABLE_DETECTION_THRESHOLD,148);
DEFINE_NWF_GUID(GUID_NWF_ACTIVE_PHY_LIST,149);
DEFINE_NWF_GUID(GUID_NWF_EXTSTA_CAPABILITY,150);
DEFINE_NWF_GUID(GUID_NWF_DATA_RATE_MAPPING_TABLE,151);
DEFINE_NWF_GUID(GUID_NWF_SUPPORTED_COUNTRY_OR_REGION_STRING,152);
DEFINE_NWF_GUID(GUID_NWF_DESIRED_COUNTRY_OR_REGION_STRING,153);
DEFINE_NWF_GUID(GUID_NWF_PORT_STATE_NOTIFICATION,154);
DEFINE_NWF_GUID(GUID_NWF_IBSS_PARAMS,155);
DEFINE_NWF_GUID(GUID_NWF_QOS_PARAMS,156);
DEFINE_NWF_GUID(GUID_NWF_SAFE_MODE_ENABLED,157);
DEFINE_NWF_GUID(GUID_NWF_HIDDEN_NETWORK_ENABLED,158);
DEFINE_NWF_GUID(GUID_NWF_ASSOCIATION_PARAMS,159);

DEFINE_NWF_GUID(GUID_NWF_CURRENT_ADDRESS,1024+2);
DEFINE_NWF_GUID(GUID_NWF_PERMANENT_ADDRESS,1024+3);
DEFINE_NWF_GUID(GUID_NWF_MULTICAST_LIST,1024+4);
DEFINE_NWF_GUID(GUID_NWF_MAXIMUM_LIST_SIZE,1024+5);

endif

ifdef NWF_EXTAP_SUPPORTED

define DOT11_EXTAP_ATTRIBUTES_REVISION_1  1
_DOT11_EXTAP_ATTRIBUTES struct
Header			NDIS_OBJECT_HEADER <>
uScanSSIDListSize	ULONG ?
uDesiredSSIDListSize	ULONG ?
uPrivacyExemptionListSize ULONG ?
uAssociationTableSize	ULONG ?
uDefaultKeyTableSize	ULONG ?
uWEPKeyValueMaxLength	ULONG ?
bStrictlyOrderedServiceClassImplemented BOOLEAN ?
uNumSupportedCountryOrRegionStrings ULONG ?
uInfraNumSupportedUcastAlgoPairs ULONG ?
uInfraNumSupportedMcastAlgoPairs ULONG ?
_DOT11_EXTAP_ATTRIBUTES ends
DOT11_EXTAP_ATTRIBUTES	typedef _DOT11_EXTAP_ATTRIBUTES
PDOT11_EXTAP_ATTRIBUTES typedef ptr _DOT11_EXTAP_ATTRIBUTES

define NDIS_SIZEOF_DOT11_EXTAP_ATTRIBUTES_REVISION_1 sizeof(DOT11_EXTAP_ATTRIBUTES)

define DOT11_INCOMING_ASSOC_STARTED_PARAMETERS_REVISION_1  1
_DOT11_INCOMING_ASSOC_STARTED_PARAMETERS struct
Header			NDIS_OBJECT_HEADER <>
PeerMacAddr		DOT11_MAC_ADDRESS <>
_DOT11_INCOMING_ASSOC_STARTED_PARAMETERS ends
DOT11_INCOMING_ASSOC_STARTED_PARAMETERS typedef _DOT11_INCOMING_ASSOC_STARTED_PARAMETERS
PDOT11_INCOMING_ASSOC_STARTED_PARAMETERS typedef ptr _DOT11_INCOMING_ASSOC_STARTED_PARAMETERS

define DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS_REVISION_1  1
_DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS struct
Header			NDIS_OBJECT_HEADER <>
PeerMacAddr		DOT11_MAC_ADDRESS <>
bReAssocReq		BOOLEAN ?
uAssocReqOffset		ULONG ?
uAssocReqSize		ULONG ?
_DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS ends
DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS typedef _DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS
PDOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS typedef ptr _DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS

define DOT11_ASSOC_ERROR_SOURCE_OS		0x0
define DOT11_ASSOC_ERROR_SOURCE_REMOTE	    0x01
define DOT11_ASSOC_ERROR_SOURCE_OTHER	    0xFF

define DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS_REVISION_1  1
_DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS struct
Header			NDIS_OBJECT_HEADER <>
PeerMacAddr		DOT11_MAC_ADDRESS <>
uStatus			ULONG ?
ucErrorSource		UCHAR ?
bReAssocReq		BOOLEAN ?
bReAssocResp		BOOLEAN ?
uAssocReqOffset		ULONG ?
uAssocReqSize		ULONG ?
uAssocRespOffset	ULONG ?
uAssocRespSize		ULONG ?
AuthAlgo		DOT11_AUTH_ALGORITHM ?
UnicastCipher		DOT11_CIPHER_ALGORITHM ?
MulticastCipher		DOT11_CIPHER_ALGORITHM ?
uActivePhyListOffset	ULONG ?
uActivePhyListSize	ULONG ?
uBeaconOffset		ULONG ?
uBeaconSize		ULONG ?
_DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS ends
DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS typedef _DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS
PDOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS typedef ptr _DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS

define DOT11_STOP_AP_PARAMETERS_REVISION_1  1
_DOT11_STOP_AP_PARAMETERS struct
Header			NDIS_OBJECT_HEADER <>
ulReason		ULONG ?
_DOT11_STOP_AP_PARAMETERS ends
DOT11_STOP_AP_PARAMETERS typedef _DOT11_STOP_AP_PARAMETERS
PDOT11_STOP_AP_PARAMETERS typedef ptr _DOT11_STOP_AP_PARAMETERS

define DOT11_STOP_AP_REASON_FREQUENCY_NOT_AVAILABLE    0x1
define DOT11_STOP_AP_REASON_CHANNEL_NOT_AVAILABLE      0x2
define DOT11_STOP_AP_REASON_AP_ACTIVE		       0x3

define DOT11_STOP_AP_REASON_IHV_START  0xFF000000
define DOT11_STOP_AP_REASON_IHV_END    0xFFFFFFFF

define DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_REVISION_1  1
_DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS struct
Header			NDIS_OBJECT_HEADER <>
ulPhyId			ULONG ?
union
 ulChannel		ULONG ?
 ulFrequency		ULONG ?
ends
_DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS ends
DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS typedef _DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS
PDOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS typedef ptr _DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS

define DOT11_CAN_SUSTAIN_AP_PARAMETERS_REVISION_1  1
_DOT11_CAN_SUSTAIN_AP_PARAMETERS struct
Header			NDIS_OBJECT_HEADER <>
ulReason		ULONG ?
_DOT11_CAN_SUSTAIN_AP_PARAMETERS ends
DOT11_CAN_SUSTAIN_AP_PARAMETERS typedef _DOT11_CAN_SUSTAIN_AP_PARAMETERS
PDOT11_CAN_SUSTAIN_AP_PARAMETERS typedef ptr _DOT11_CAN_SUSTAIN_AP_PARAMETERS

define DOT11_CAN_SUSTAIN_AP_REASON_IHV_START   0xFF000000
define DOT11_CAN_SUSTAIN_AP_REASON_IHV_END     0xFFFFFFFF

define NWF_EXTAP_OID	  (0x03)

define OID_DOT11_WPS_ENABLED			   NWF_DEFINE_OID(0x01,NWF_EXTAP_OID,NWF_MANDATORY_OID)
define OID_DOT11_START_AP_REQUEST		   NWF_DEFINE_OID(0x02,NWF_EXTAP_OID,NWF_MANDATORY_OID)
define OID_DOT11_AVAILABLE_CHANNEL_LIST		   NWF_DEFINE_OID(0x03,NWF_EXTAP_OID,NWF_MANDATORY_OID)

define	DOT11_AVAILABLE_CHANNEL_LIST_REVISION_1 1

_DOT11_AVAILABLE_CHANNEL_LIST struct
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
uChannelNumber		ULONG 1 dup(?)
_DOT11_AVAILABLE_CHANNEL_LIST ends
DOT11_AVAILABLE_CHANNEL_LIST typedef _DOT11_AVAILABLE_CHANNEL_LIST
PDOT11_AVAILABLE_CHANNEL_LIST typedef ptr _DOT11_AVAILABLE_CHANNEL_LIST

define OID_DOT11_AVAILABLE_FREQUENCY_LIST	   NWF_DEFINE_OID(0x04,NWF_EXTAP_OID,NWF_MANDATORY_OID)

define DOT11_AVAILABLE_FREQUENCY_LIST_REVISION_1 1

_DOT11_AVAILABLE_FREQUENCY_LIST struct
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
uFrequencyValue		ULONG 1 dup(?)
_DOT11_AVAILABLE_FREQUENCY_LIST ends
DOT11_AVAILABLE_FREQUENCY_LIST typedef _DOT11_AVAILABLE_FREQUENCY_LIST
PDOT11_AVAILABLE_FREQUENCY_LIST typedef ptr _DOT11_AVAILABLE_FREQUENCY_LIST

define OID_DOT11_DISASSOCIATE_PEER_REQUEST	   NWF_DEFINE_OID(0x05,NWF_EXTAP_OID,NWF_MANDATORY_OID)

define DOT11_DISASSOCIATE_PEER_REQUEST_REVISION_1 1

_DOT11_DISASSOCIATE_PEER_REQUEST struct
Header			NDIS_OBJECT_HEADER <>
PeerMacAddr		DOT11_MAC_ADDRESS <>
usReason		USHORT ?
_DOT11_DISASSOCIATE_PEER_REQUEST ends
DOT11_DISASSOCIATE_PEER_REQUEST typedef _DOT11_DISASSOCIATE_PEER_REQUEST
PDOT11_DISASSOCIATE_PEER_REQUEST typedef ptr _DOT11_DISASSOCIATE_PEER_REQUEST

define OID_DOT11_INCOMING_ASSOCIATION_DECISION	   NWF_DEFINE_OID(0x06,NWF_EXTAP_OID,NWF_MANDATORY_OID)

define DOT11_INCOMING_ASSOC_DECISION_REVISION_1 1

_DOT11_INCOMING_ASSOC_DECISION struct
Header			NDIS_OBJECT_HEADER <>
PeerMacAddr		DOT11_MAC_ADDRESS <>
bAccept			BOOLEAN ?
usReasonCode		USHORT ?
uAssocResponseIEsOffset ULONG ?
uAssocResponseIEsLength ULONG ?
_DOT11_INCOMING_ASSOC_DECISION ends
DOT11_INCOMING_ASSOC_DECISION typedef _DOT11_INCOMING_ASSOC_DECISION
PDOT11_INCOMING_ASSOC_DECISION typedef ptr _DOT11_INCOMING_ASSOC_DECISION

define DOT11_SIZEOF_INCOMING_ASSOC_DECISION_REVISION_1 sizeof(DOT11_INCOMING_ASSOC_DECISION)

ifdef NWF_WFD_SUPPORTED

define DOT11_INCOMING_ASSOC_DECISION_REVISION_2 2

_DOT11_INCOMING_ASSOC_DECISION_V2 struct
Header			NDIS_OBJECT_HEADER ?
PeerMacAddr		DOT11_MAC_ADDRESS ?
bAccept			BOOLEAN ?
usReasonCode		USHORT ?
uAssocResponseIEsOffset ULONG ?
uAssocResponseIEsLength ULONG ?
WFDStatus		DOT11_WFD_STATUS_CODE ?
_DOT11_INCOMING_ASSOC_DECISION_V2 ends
DOT11_INCOMING_ASSOC_DECISION_V2 typedef _DOT11_INCOMING_ASSOC_DECISION_V2
PDOT11_INCOMING_ASSOC_DECISION_V2 typedef ptr _DOT11_INCOMING_ASSOC_DECISION_V2

define DOT11_SIZEOF_INCOMING_ASSOC_DECISION_REVISION_2 sizeof(DOT11_INCOMING_ASSOC_DECISION_V2)

endif

define OID_DOT11_ADDITIONAL_IE			   NWF_DEFINE_OID(0x07,NWF_EXTAP_OID,NWF_MANDATORY_OID)

define DOT11_ADDITIONAL_IE_REVISION_1 1

_DOT11_ADDITIONAL_IE	struct
Header			NDIS_OBJECT_HEADER <>
uBeaconIEsOffset	ULONG ?
uBeaconIEsLength	ULONG ?
uResponseIEsOffset	ULONG ?
uResponseIEsLength	ULONG ?
_DOT11_ADDITIONAL_IE	ends
DOT11_ADDITIONAL_IE	typedef _DOT11_ADDITIONAL_IE
PDOT11_ADDITIONAL_IE	typedef ptr _DOT11_ADDITIONAL_IE

define DOT11_EXTAP_SEND_CONTEXT_REVISION_1  1

PDOT11_EXTAP_SEND_CONTEXT typedef ptr DOT11_EXTAP_SEND_CONTEXT

define DOT11_EXTAP_RECV_CONTEXT_REVISION_1  1

PDOT11_EXTAP_RECV_CONTEXT typedef ptr DOT11_EXTAP_RECV_CONTEXT

define OID_DOT11_ENUM_PEER_INFO			   NWF_DEFINE_OID(0x08,NWF_EXTAP_OID,NWF_MANDATORY_OID)

_DOT11_PEER_STATISTICS	struct
ullDecryptSuccessCount	ULONGLONG ?
ullDecryptFailureCount	ULONGLONG ?
ullTxPacketSuccessCount ULONGLONG ?
ullTxPacketFailureCount ULONGLONG ?
ullRxPacketSuccessCount ULONGLONG ?
ullRxPacketFailureCount ULONGLONG ?
_DOT11_PEER_STATISTICS	ends
DOT11_PEER_STATISTICS	typedef _DOT11_PEER_STATISTICS
PDOT11_PEER_STATISTICS	typedef ptr _DOT11_PEER_STATISTICS

_DOT11_PEER_INFO	struct
MacAddress		DOT11_MAC_ADDRESS <>
usCapabilityInformation USHORT ?
AuthAlgo		DOT11_AUTH_ALGORITHM ?
UnicastCipherAlgo	DOT11_CIPHER_ALGORITHM ?
MulticastCipherAlgo	DOT11_CIPHER_ALGORITHM ?
bWpsEnabled		BOOLEAN ?
usListenInterval	USHORT ?
ucSupportedRates	UCHAR MAX_NUM_SUPPORTED_RATES_V2 dup(?)
usAssociationID		USHORT ?
AssociationState	DOT11_ASSOCIATION_STATE ?
PowerMode		DOT11_POWER_MODE ?
liAssociationUpTime	LARGE_INTEGER <>
Statistics		DOT11_PEER_STATISTICS <>
_DOT11_PEER_INFO	ends
DOT11_PEER_INFO		typedef _DOT11_PEER_INFO
PDOT11_PEER_INFO	typedef ptr _DOT11_PEER_INFO

define DOT11_PEER_INFO_LIST_REVISION_1	1
_DOT11_PEER_INFO_LIST	struct
Header			NDIS_OBJECT_HEADER <>
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
PeerInfo		DOT11_PEER_INFO 1 dup(<>)
_DOT11_PEER_INFO_LIST	ends
DOT11_PEER_INFO_LIST	typedef _DOT11_PEER_INFO_LIST
PDOT11_PEER_INFO_LIST	typedef ptr _DOT11_PEER_INFO_LIST

endif

ifdef NWF_VWIFI_SUPPORTED

define DOT11_VWIFI_COMBINATION_REVISION_1     1
_DOT11_VWIFI_COMBINATION struct
Header			NDIS_OBJECT_HEADER <>
uNumInfrastructure	ULONG ?
uNumAdhoc		ULONG ?
uNumSoftAP		ULONG ?
_DOT11_VWIFI_COMBINATION ends
DOT11_VWIFI_COMBINATION typedef _DOT11_VWIFI_COMBINATION
PDOT11_VWIFI_COMBINATION typedef ptr _DOT11_VWIFI_COMBINATION

define DOT11_SIZEOF_VWIFI_COMBINATION_REVISION_1   sizeof(DOT11_VWIFI_COMBINATION)

define DOT11_VWIFI_COMBINATION_REVISION_2     2
_DOT11_VWIFI_COMBINATION_V2 struct
Header			NDIS_OBJECT_HEADER <>
uNumInfrastructure	ULONG ?
uNumAdhoc		ULONG ?
uNumSoftAP		ULONG ?
uNumVirtualStation	ULONG ?
_DOT11_VWIFI_COMBINATION_V2 ends
DOT11_VWIFI_COMBINATION_V2 typedef _DOT11_VWIFI_COMBINATION_V2
PDOT11_VWIFI_COMBINATION_V2 typedef ptr _DOT11_VWIFI_COMBINATION_V2

define DOT11_SIZEOF_VWIFI_COMBINATION_REVISION_2   sizeof(DOT11_VWIFI_COMBINATION_V2)

ifdef NWF_WFD_SUPPORTED

define DOT11_VWIFI_COMBINATION_REVISION_3     3
_DOT11_VWIFI_COMBINATION_V3 struct
Header			NDIS_OBJECT_HEADER ?
uNumInfrastructure	ULONG ?
uNumAdhoc		ULONG ?
uNumSoftAP		ULONG ?
uNumVirtualStation	ULONG ?
uNumWFDGroup		ULONG ?
_DOT11_VWIFI_COMBINATION_V3 ends
DOT11_VWIFI_COMBINATION_V3 typedef _DOT11_VWIFI_COMBINATION_V3
PDOT11_VWIFI_COMBINATION_V3 typedef ptr _DOT11_VWIFI_COMBINATION_V3

define DOT11_SIZEOF_VWIFI_COMBINATION_REVISION_3   sizeof(DOT11_VWIFI_COMBINATION_V3)

endif

define DOT11_VWIFI_ATTRIBUTES_REVISION_1 1
DOT11_VWIFI_ATTRIBUTES	struct
Header			NDIS_OBJECT_HEADER <>
uTotalNumOfEntries	ULONG ?
Combinations		DOT11_VWIFI_COMBINATION 1 dup(<>)
DOT11_VWIFI_ATTRIBUTES	ends
PDOT11_VWIFI_ATTRIBUTES typedef ptr DOT11_VWIFI_ATTRIBUTES

define NWF_VWIFI_OID	  (0x04)

define OID_DOT11_CREATE_MAC NWF_DEFINE_OID(0x01,NWF_VWIFI_OID,NWF_MANDATORY_OID)

define DOT11_MAC_PARAMETERS_REVISION_1 1

_DOT11_MAC_PARAMETERS	struct
Header			NDIS_OBJECT_HEADER <>
uOpmodeMask		ULONG ?
_DOT11_MAC_PARAMETERS	ends
DOT11_MAC_PARAMETERS	typedef _DOT11_MAC_PARAMETERS
PDOT11_MAC_PARAMETERS	typedef ptr _DOT11_MAC_PARAMETERS

define DOT11_SIZEOF_MAC_PARAMETERS_REVISION_1	   sizeof(DOT11_MAC_PARAMETERS)

DOT11_MAC_INFO		struct
uReserved		ULONG ?
uNdisPortNumber		ULONG ?
MacAddr			DOT11_MAC_ADDRESS <>
DOT11_MAC_INFO		ends
PDOT11_MAC_INFO		typedef ptr DOT11_MAC_INFO

define OID_DOT11_DELETE_MAC			   NWF_DEFINE_OID(0x02,NWF_VWIFI_OID,NWF_MANDATORY_OID)
define OID_DOT11_PREFERRED_MAC			   NWF_DEFINE_OID(0x03,NWF_VWIFI_OID,NWF_MANDATORY_OID)
define OID_DOT11_VIRTUAL_STATION_CAPABILITY	   NWF_DEFINE_OID(0x04,NWF_VWIFI_OID,NWF_OPTIONAL_OID)

endif

ifdef NWF_WFD_SUPPORTED

define DOT11_WFD_ATTRIBUTES_REVISION_1	       1

_DOT11_WFD_ATTRIBUTES	struct
Header			NDIS_OBJECT_HEADER ?
uNumConcurrentGORole	ULONG ?
uNumConcurrentClientRole ULONG ?
WPSVersionsSupported	ULONG ?
bServiceDiscoverySupported BOOLEAN ?
bClientDiscoverabilitySupported BOOLEAN ?
bInfrastructureManagementSupported BOOLEAN ?
uMaxSecondaryDeviceTypeListSize ULONG ?
DeviceAddress		DOT11_MAC_ADDRESS ?
uInterfaceAddressListCount ULONG ?
pInterfaceAddressList	PDOT11_MAC_ADDRESS ?
uNumSupportedCountryOrRegionStrings ULONG ?
pSupportedCountryOrRegionStrings PDOT11_COUNTRY_OR_REGION_STRING ?
uDiscoveryFilterListSize ULONG ?
uGORoleClientTableSize	ULONG ?
_DOT11_WFD_ATTRIBUTES	ends
DOT11_WFD_ATTRIBUTES	typedef _DOT11_WFD_ATTRIBUTES
PDOT11_WFD_ATTRIBUTES	typedef ptr _DOT11_WFD_ATTRIBUTES

define DOT11_SIZEOF_WFD_ATTRIBUTES_REVISION_1	sizeof(DOT11_WFD_ATTRIBUTES)

DOT11_WFD_GROUP_CAPABILITY typedef UCHAR

define DOT11_WFD_STATUS_SUCCESS						       0
define DOT11_WFD_STATUS_FAILED_INFORMATION_IS_UNAVAILABLE		       1
define DOT11_WFD_STATUS_FAILED_INCOMPATIBLE_PARAMETERS			       2
define DOT11_WFD_STATUS_FAILED_LIMIT_REACHED				       3
define DOT11_WFD_STATUS_FAILED_INVALID_PARAMETERS			       4
define DOT11_WFD_STATUS_FAILED_UNABLE_TO_ACCOMODATE_REQUEST		       5
define DOT11_WFD_STATUS_FAILED_PREVIOUS_PROTOCOL_ERROR			       6
define DOT11_WFD_STATUS_FAILED_NO_COMMON_CHANNELS			       7
define DOT11_WFD_STATUS_FAILED_UNKNOWN_WFD_GROUP			       8
define DOT11_WFD_STATUS_FAILED_MATCHING_MAX_INTENT			       9
define DOT11_WFD_STATUS_FAILED_INCOMPATIBLE_PROVISIONING_METHOD		       10
define DOT11_WFD_STATUS_FAILED_REJECTED_BY_USER				       11
define DOT11_WFD_STATUS_SUCCESS_ACCEPTED_BY_USER			       12

WFD_STATUS_SUCCEEDED macro status
  exitm<(status eq DOT11_WFD_STATUS_SUCCESS or status eq DOT11_WFD_STATUS_SUCCESS_ACCEPTED_BY_USER)>
  endm
WFD_STATUS_FAILED macro status
  exitm<(status ne DOT11_WFD_STATUS_SUCCESS and status ne DOT11_WFD_STATUS_SUCCESS_ACCEPTED_BY_USER)>
  endm

define DOT11_WFD_MINOR_REASON_SUCCESS					       0
define DOT11_WFD_MINOR_REASON_DISASSOCIATED_FROM_WLAN_CROSS_CONNECTION_POLICY  1
define DOT11_WFD_MINOR_REASON_DISASSOCIATED_NOT_MANAGED_INFRASTRUCTURE_CAPABLE 2
define DOT11_WFD_MINOR_REASON_DISASSOCIATED_WFD_COEXISTENCE_POLICY	       3
define DOT11_WFD_MINOR_REASON_DISASSOCIATED_INFRASTRUCTURE_MANAGED_POLICY      4

define DOT11_WPS_VERSION_1_0 0x01
define DOT11_WPS_VERSION_2_0 0x02

define DOT11_WFD_DEVICE_CAPABILITY_SERVICE_DISCOVERY			       0x01
define DOT11_WFD_DEVICE_CAPABILITY_P2P_CLIENT_DISCOVERABILITY		       0x02
define DOT11_WFD_DEVICE_CAPABILITY_CONCURRENT_OPERATION			       0x04
define DOT11_WFD_DEVICE_CAPABILITY_P2P_INFRASTRUCTURE_MANAGED		       0x08
define DOT11_WFD_DEVICE_CAPABILITY_P2P_DEVICE_LIMIT			       0x10
define DOT11_WFD_DEVICE_CAPABILITY_P2P_INVITATION_PROCEDURE		       0x20
define DOT11_WFD_DEVICE_CAPABILITY_RESERVED_6				       0x40
define DOT11_WFD_DEVICE_CAPABILITY_RESERVED_7				       0x80

define DOT11_WFD_GROUP_CAPABILITY_NONE					       0x00
define DOT11_WFD_GROUP_CAPABILITY_GROUP_OWNER				       0x01
define DOT11_WFD_GROUP_CAPABILITY_PERSISTENT_GROUP			       0x02
define DOT11_WFD_GROUP_CAPABILITY_GROUP_LIMIT_REACHED			       0x04
define DOT11_WFD_GROUP_CAPABILITY_INTRABSS_DISTRIBUTION_SUPPORTED	       0x08
define DOT11_WFD_GROUP_CAPABILITY_CROSS_CONNECTION_SUPPORTED		       0x10
define DOT11_WFD_GROUP_CAPABILITY_PERSISTENT_RECONNECT_SUPPORTED	       0x20
define DOT11_WFD_GROUP_CAPABILITY_IN_GROUP_FORMATION			       0x40
define DOT11_WFD_GROUP_CAPABILITY_RESERVED_7				       0x80
define DOT11_WFD_GROUP_CAPABILITY_EAPOL_KEY_IP_ADDRESS_ALLOCATION_SUPPORTED    0x80

define DOT11_WPS_DEVICE_NAME_MAX_LENGTH	  32
define DOT11_WPS_MAX_PASSKEY_LENGTH	  8
define DOT11_WPS_MAX_MODEL_NAME_LENGTH	  32
define DOT11_WPS_MAX_MODEL_NUMBER_LENGTH  32

_DOT11_WFD_DEVICE_TYPE	struct
CategoryID		USHORT ?
SubCategoryID		USHORT ?
OUI			UCHAR 4 dup(?)
_DOT11_WFD_DEVICE_TYPE	ends
DOT11_WFD_DEVICE_TYPE	typedef _DOT11_WFD_DEVICE_TYPE
PDOT11_WFD_DEVICE_TYPE	typedef ptr _DOT11_WFD_DEVICE_TYPE

_DOT11_WPS_DEVICE_NAME	struct
uDeviceNameLength	ULONG ?
ucDeviceName		UCHAR DOT11_WPS_DEVICE_NAME_MAX_LENGTH dup(?)
_DOT11_WPS_DEVICE_NAME	ends
DOT11_WPS_DEVICE_NAME	typedef _DOT11_WPS_DEVICE_NAME
PDOT11_WPS_DEVICE_NAME	typedef ptr _DOT11_WPS_DEVICE_NAME

_DOT11_WFD_CONFIGURATION_TIMEOUT struct
GOTimeout		UCHAR ?
ClientTimeout		UCHAR ?
_DOT11_WFD_CONFIGURATION_TIMEOUT ends
DOT11_WFD_CONFIGURATION_TIMEOUT typedef _DOT11_WFD_CONFIGURATION_TIMEOUT
PDOT11_WFD_CONFIGURATION_TIMEOUT typedef ptr _DOT11_WFD_CONFIGURATION_TIMEOUT

_DOT11_WFD_GROUP_ID	struct
DeviceAddress		DOT11_MAC_ADDRESS ?
SSID			DOT11_SSID ?
_DOT11_WFD_GROUP_ID	ends
DOT11_WFD_GROUP_ID	typedef _DOT11_WFD_GROUP_ID
PDOT11_WFD_GROUP_ID	typedef ptr _DOT11_WFD_GROUP_ID

_DOT11_WFD_GO_INTENT	struct
record
 TieBreaker		UCHAR : 1 ?
 Intent			UCHAR : 7 ?
ends
_DOT11_WFD_GO_INTENT	ends
DOT11_WFD_GO_INTENT	typedef _DOT11_WFD_GO_INTENT
PDOT11_WFD_GO_INTENT	typedef ptr _DOT11_WFD_GO_INTENT

_DOT11_WFD_CHANNEL	struct
CountryRegionString	DOT11_COUNTRY_OR_REGION_STRING ?
OperatingClass		UCHAR ?
ChannelNumber		UCHAR ?
_DOT11_WFD_CHANNEL	ends
DOT11_WFD_CHANNEL	typedef _DOT11_WFD_CHANNEL
PDOT11_WFD_CHANNEL	typedef ptr _DOT11_WFD_CHANNEL

.enum DOT11_WPS_CONFIG_METHOD {
    DOT11_WPS_CONFIG_METHOD_NULL = 0,
    DOT11_WPS_CONFIG_METHOD_DISPLAY = 0x0008,
    DOT11_WPS_CONFIG_METHOD_NFC_TAG = 0x0020,
    DOT11_WPS_CONFIG_METHOD_NFC_INTERFACE = 0x0040,
    DOT11_WPS_CONFIG_METHOD_PUSHBUTTON = 0x0080,
    DOT11_WPS_CONFIG_METHOD_KEYPAD = 0x0100,
    DOT11_WPS_CONFIG_METHOD_WFDS_DEFAULT = 0x1000
    }

.enum DOT11_WPS_DEVICE_PASSWORD_ID {
    DOT11_WPS_PASSWORD_ID_DEFAULT = 0x0000,
    DOT11_WPS_PASSWORD_ID_USER_SPECIFIED = 0x0001,
    DOT11_WPS_PASSWORD_ID_MACHINE_SPECIFIED = 0x0002,
    DOT11_WPS_PASSWORD_ID_REKEY = 0x0003,
    DOT11_WPS_PASSWORD_ID_PUSHBUTTON = 0x0004,
    DOT11_WPS_PASSWORD_ID_REGISTRAR_SPECIFIED = 0x0005,
    DOT11_WPS_PASSWORD_ID_NFC_CONNECTION_HANDOVER = 0x0007,
    DOT11_WPS_PASSWORD_ID_WFD_SERVICES = 0x0008,
    DOT11_WPS_PASSWORD_ID_OOB_RANGE_MIN = 0x0010,
    DOT11_WPS_PASSWORD_ID_OOB_RANGE_MAX = 0xFFFF,
    }

_WFDSVC_CONNECTION_CAPABILITY struct
bNew			BOOLEAN ?
bClient			BOOLEAN ?
bGO			BOOLEAN ?
_WFDSVC_CONNECTION_CAPABILITY ends
WFDSVC_CONNECTION_CAPABILITY typedef _WFDSVC_CONNECTION_CAPABILITY
PWFDSVC_CONNECTION_CAPABILITY typedef ptr _WFDSVC_CONNECTION_CAPABILITY

define WFDSVC_CONNECTION_CAPABILITY_NEW 0x01
define WFDSVC_CONNECTION_CAPABILITY_CLIENT 0x02
define WFDSVC_CONNECTION_CAPABILITY_GO 0x04

_DOT11_WFD_SERVICE_HASH_LIST struct
ServiceHashCount	USHORT ?
ServiceHash		DOT11_WFD_SERVICE_HASH 1 dup(?)
_DOT11_WFD_SERVICE_HASH_LIST ends
DOT11_WFD_SERVICE_HASH_LIST typedef _DOT11_WFD_SERVICE_HASH_LIST
PDOT11_WFD_SERVICE_HASH_LIST typedef ptr _DOT11_WFD_SERVICE_HASH_LIST

_DOT11_WFD_ADVERTISEMENT_ID struct
AdvertisementID		ULONG ?
ServiceAddress		DOT11_MAC_ADDRESS ?
_DOT11_WFD_ADVERTISEMENT_ID ends
DOT11_WFD_ADVERTISEMENT_ID typedef _DOT11_WFD_ADVERTISEMENT_ID
PDOT11_WFD_ADVERTISEMENT_ID typedef ptr _DOT11_WFD_ADVERTISEMENT_ID

_DOT11_WFD_SESSION_ID	struct
SessionID		ULONG ?
SessionAddress		DOT11_MAC_ADDRESS ?
_DOT11_WFD_SESSION_ID	ends
DOT11_WFD_SESSION_ID	typedef _DOT11_WFD_SESSION_ID
PDOT11_WFD_SESSION_ID	typedef ptr _DOT11_WFD_SESSION_ID

_DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR struct
AdvertisementID		ULONG ?
ConfigMethods		USHORT ?
ServiceNameLength	UCHAR ?
ServiceName		UCHAR DOT11_WFD_SERVICE_NAME_MAX_LENGTH dup(?)
_DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR ends
DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR typedef _DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR
PDOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR typedef ptr _DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR

_DOT11_WFD_ADVERTISED_SERVICE_LIST struct
ServiceCount		USHORT ?
AdvertisedService	DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR 1 dup(?)
_DOT11_WFD_ADVERTISED_SERVICE_LIST ends
DOT11_WFD_ADVERTISED_SERVICE_LIST typedef _DOT11_WFD_ADVERTISED_SERVICE_LIST
PDOT11_WFD_ADVERTISED_SERVICE_LIST typedef ptr _DOT11_WFD_ADVERTISED_SERVICE_LIST

define DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS_REVISION_1    1

define DOT11_WFD_DISCOVER_COMPLETE_MAX_LIST_SIZE   128

_DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
Status			NDIS_STATUS ?
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
uListOffset		ULONG ?
uListLength		ULONG ?
_DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS ends
DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS typedef _DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS
PDOT11_WFD_DISCOVER_COMPLETE_PARAMETERS typedef ptr _DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS

define DOT11_SIZEOF_WFD_DISCOVER_COMPLETE_PARAMETERS_REVISION_1 sizeof(DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS)

define DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1	   1
_DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
Status			NDIS_STATUS ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS ends
DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS typedef _DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS
PDOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS typedef ptr _DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS

define DOT11_SIZEOF_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1 sizeof(DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS)

define DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1    1
_DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
RequestContext		PVOID ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS ends
DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS typedef _DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS
PDOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS typedef ptr _DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS

define DOT11_SIZEOF_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1 sizeof(DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS)

define DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1    1
_DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
Status			NDIS_STATUS ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS ends
DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS typedef _DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS
PDOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS typedef ptr _DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS

define DOT11_SIZEOF_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1 sizeof(DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS)

define DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1    1
_DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
ResponseContext		PVOID ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS ends
DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS typedef _DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS
PDOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS typedef ptr _DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS

define DOT11_SIZEOF_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1 sizeof(DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS)

define DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS_REVISION_1	1
_DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
Status			NDIS_STATUS ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS ends
DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS typedef _DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS
PDOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS typedef ptr _DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS

define DOT11_SIZEOF_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS_REVISION_1 sizeof(DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS)

define DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1	   1
_DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS ends
DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS typedef _DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS
PDOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS typedef ptr _DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS

define DOT11_SIZEOF_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1 sizeof(DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS)

define DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1    1
_DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
ReceiverAddress		DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
Status			NDIS_STATUS ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS ends
DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS typedef _DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS
PDOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS typedef ptr _DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS

define DOT11_SIZEOF_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1 sizeof(DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS)

define DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS_REVISION_1	  1
_DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
TransmitterDeviceAddress DOT11_MAC_ADDRESS ?
BSSID			DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
RequestContext		PVOID ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS ends
DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS typedef _DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS
PDOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS typedef ptr _DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS

define DOT11_SIZEOF_RECEIVED_INVITATION_REQUEST_PARAMETERS_REVISION_1 sizeof(DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS)

define DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1	1
_DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
ReceiverDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
Status			NDIS_STATUS ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS ends
DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS typedef _DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS
PDOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS typedef ptr _DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS

define DOT11_SIZEOF_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1 sizeof(DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS)

define DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS_REVISION_1	   1
_DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
TransmitterDeviceAddress DOT11_MAC_ADDRESS ?
BSSID			DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS ends
DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS typedef _DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS
PDOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS typedef ptr _DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS

define DOT11_SIZEOF_RECEIVED_INVITATION_RESPONSE_PARAMETERS_REVISION_1 sizeof(DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS)

define DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1	1
_DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
ReceiverAddress		DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
Status			NDIS_STATUS ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS ends
DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS typedef _DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS
PDOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS typedef ptr _DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS

define DOT11_SIZEOF_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1 sizeof(DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS)

define DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1	   1
_DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
TransmitterDeviceAddress DOT11_MAC_ADDRESS ?
BSSID			DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
RequestContext		PVOID ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS ends
DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS typedef _DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS
PDOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS typedef ptr _DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS

define DOT11_SIZEOF_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1 sizeof(DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS)

define DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1	 1
_DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
ReceiverDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
Status			NDIS_STATUS ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS ends
DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS typedef _DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS
PDOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS typedef ptr _DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS

define DOT11_SIZEOF_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1 sizeof(DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS)

define DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1    1
_DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
TransmitterDeviceAddress DOT11_MAC_ADDRESS ?
BSSID			DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS ends
DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS typedef _DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS
PDOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS typedef ptr _DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS

define DOT11_SIZEOF_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1 sizeof(DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS)

define DOT11_ANQP_QUERY_COMPLETE_PARAMETERS_REVISION_1	  1
define DOT11_SIZEOF_ANQP_QUERY_COMPLETE_PARAMETERS_REVISION_1 sizeof(DOT11_ANQP_QUERY_COMPLETE_PARAMETERS)

.enum DOT11_ANQP_QUERY_RESULT {
	dot11_ANQP_query_result_success = 0,
	dot11_ANQP_query_result_failure = 1,
	dot11_ANQP_query_result_timed_out = 2,
	dot11_ANQP_query_result_resources = 3,
	dot11_ANQP_query_result_advertisement_protocol_not_supported_on_remote = 4,
	dot11_ANQP_query_result_gas_protocol_failure = 5,
	dot11_ANQP_query_result_advertisement_server_not_responding = 6,
	dot11_ANQP_query_result_access_issues = 7
    }

_DOT11_ANQP_QUERY_COMPLETE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
Status			DOT11_ANQP_QUERY_RESULT ?
hContext		HANDLE ?
uResponseLength		ULONG ?
_DOT11_ANQP_QUERY_COMPLETE_PARAMETERS ends
DOT11_ANQP_QUERY_COMPLETE_PARAMETERS typedef _DOT11_ANQP_QUERY_COMPLETE_PARAMETERS
PDOT11_ANQP_QUERY_COMPLETE_PARAMETERS typedef ptr _DOT11_ANQP_QUERY_COMPLETE_PARAMETERS

define NWF_WFD_DEVICE_OID  (0x05)
define NWF_WFD_ROLE_OID	   (0x06)

define OID_DOT11_WFD_DEVICE_CAPABILITY		   NWF_DEFINE_OID(0x01,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define DOT11_WFD_DEVICE_CAPABILITY_CONFIG_REVISION_1   1
_DOT11_WFD_DEVICE_CAPABILITY_CONFIG struct
Header			NDIS_OBJECT_HEADER ?
bServiceDiscoveryEnabled BOOLEAN ?
bClientDiscoverabilityEnabled BOOLEAN ?
bConcurrentOperationSupported BOOLEAN ?
bInfrastructureManagementEnabled BOOLEAN ?
bDeviceLimitReached	BOOLEAN ?
bInvitationProcedureEnabled BOOLEAN ?
WPSVersionsEnabled	ULONG ?
_DOT11_WFD_DEVICE_CAPABILITY_CONFIG ends
DOT11_WFD_DEVICE_CAPABILITY_CONFIG typedef _DOT11_WFD_DEVICE_CAPABILITY_CONFIG
PDOT11_WFD_DEVICE_CAPABILITY_CONFIG typedef ptr _DOT11_WFD_DEVICE_CAPABILITY_CONFIG

define DOT11_SIZEOF_WFD_DEVICE_CAPABILITY_CONFIG_1 sizeof(DOT11_WFD_DEVICE_CAPABILITY_CONFIG)

define OID_DOT11_WFD_GROUP_OWNER_CAPABILITY		 NWF_DEFINE_OID(0x02,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_REVISION_1    1
_DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG struct
Header			NDIS_OBJECT_HEADER ?
bPersistentGroupEnabled BOOLEAN ?
bIntraBSSDistributionSupported BOOLEAN ?
bCrossConnectionSupported BOOLEAN ?
bPersistentReconnectSupported BOOLEAN ?
bGroupFormationEnabled	BOOLEAN ?
uMaximumGroupLimit	ULONG ?
_DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG ends
DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG typedef _DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG
PDOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG typedef ptr _DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG

define DOT11_SIZEOF_WFD_GROUP_CAPABILITY_CONFIG_1  sizeof(DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG)

define DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_REVISION_2    2

_DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 struct
Header			NDIS_OBJECT_HEADER ?
bPersistentGroupEnabled BOOLEAN ?
bIntraBSSDistributionSupported BOOLEAN ?
bCrossConnectionSupported BOOLEAN ?
bPersistentReconnectSupported BOOLEAN ?
bGroupFormationEnabled	BOOLEAN ?
uMaximumGroupLimit	ULONG ?
bEapolKeyIpAddressAllocationSupported BOOLEAN ?
_DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 ends
DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 typedef _DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2
PDOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 typedef ptr _DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2

define DOT11_SIZEOF_WFD_GROUP_CAPABILITY_CONFIG_2  sizeof(DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2)

define OID_DOT11_WFD_DEVICE_INFO		   NWF_DEFINE_OID(0x03,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define DOT11_WFD_DEVICE_INFO_REVISION_1		   1
_DOT11_WFD_DEVICE_INFO	struct
Header			NDIS_OBJECT_HEADER ?
DeviceAddress		DOT11_MAC_ADDRESS ?
ConfigMethods		USHORT ?
PrimaryDeviceType	DOT11_WFD_DEVICE_TYPE ?
DeviceName		DOT11_WPS_DEVICE_NAME ?
_DOT11_WFD_DEVICE_INFO	ends
DOT11_WFD_DEVICE_INFO	typedef _DOT11_WFD_DEVICE_INFO
PDOT11_WFD_DEVICE_INFO	typedef ptr _DOT11_WFD_DEVICE_INFO

define DOT11_SIZEOF_WFD_DEVICE_INFO_REVISION_1	   sizeof(DOT11_WFD_DEVICE_INFO)

define OID_DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST	   NWF_DEFINE_OID(0x04,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST_REVISION_1	   1
_DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST struct
Header			NDIS_OBJECT_HEADER ?
uNumOfEntries		ULONG ?
uTotalNumOfEntries	ULONG ?
SecondaryDeviceTypes	DOT11_WFD_DEVICE_TYPE 1 dup(?)
_DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST ends
DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST typedef _DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST
PDOT11_WFD_SECONDARY_DEVICE_TYPE_LIST typedef ptr _DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST

define DOT11_SIZEOF_WFD_SECONDARY_DEVICE_TYPE_LIST_REVISION_1  FIELD_OFFSET(DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST, SecondaryDeviceTypes)

define OID_DOT11_WFD_DISCOVER_REQUEST	       NWF_DEFINE_OID(0x05,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

.enum DOT11_WFD_DISCOVER_TYPE {
	dot11_wfd_discover_type_scan_only = 1,
	dot11_wfd_discover_type_find_only = 2,
	dot11_wfd_discover_type_auto = 3,
	dot11_wfd_discover_type_scan_social_channels = 4,
	dot11_wfd_discover_type_forced = 0x80000000

    }

.enum DOT11_WFD_SCAN_TYPE {
	dot11_wfd_scan_type_active = 1,
	dot11_wfd_scan_type_passive = 2,
	dot11_wfd_scan_type_auto = 3

    }

define DOT11_WFD_DISCOVER_DEVICE_FILTER_REVISION_1
define DOT11_SIZEOF_WFD_DISCOVER_DEVICE_FILTER_REVISION_1

define DISCOVERY_FILTER_BITMASK_DEVICE 0x1
define DISCOVERY_FILTER_BITMASK_GO     0x2
define DISCOVERY_FILTER_BITMASK_ANY    0xF

_DOT11_WFD_DISCOVER_DEVICE_FILTER struct
DeviceID		DOT11_MAC_ADDRESS ?
ucBitmask		UCHAR ?
GroupSSID		DOT11_SSID ?
_DOT11_WFD_DISCOVER_DEVICE_FILTER ends
DOT11_WFD_DISCOVER_DEVICE_FILTER typedef _DOT11_WFD_DISCOVER_DEVICE_FILTER
PDOT11_WFD_DISCOVER_DEVICE_FILTER typedef ptr _DOT11_WFD_DISCOVER_DEVICE_FILTER

define DOT11_WFD_DISCOVER_REQUEST_REVISION_1   1

_DOT11_WFD_DISCOVER_REQUEST struct
Header			NDIS_OBJECT_HEADER ?
DiscoverType		DOT11_WFD_DISCOVER_TYPE ?
ScanType		DOT11_WFD_SCAN_TYPE ?
uDiscoverTimeout	ULONG ?
uDeviceFilterListOffset ULONG ?
uNumDeviceFilters	ULONG ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
bForceScanLegacyNetworks BOOLEAN ?
_DOT11_WFD_DISCOVER_REQUEST ends
DOT11_WFD_DISCOVER_REQUEST typedef _DOT11_WFD_DISCOVER_REQUEST
PDOT11_WFD_DISCOVER_REQUEST typedef ptr _DOT11_WFD_DISCOVER_REQUEST

define DOT11_SIZEOF_WFD_DISCOVER_REQUEST_REVISION_1    sizeof(DOT11_WFD_DISCOVER_REQUEST)

define OID_DOT11_WFD_ENUM_DEVICE_LIST		  NWF_DEFINE_OID(0x06,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

ifndef __midl

define DOT11_DEVICE_ENTRY_BYTE_ARRAY_REVISION_1	   1
_DOT11_WFD_DEVICE_ENTRY struct
uPhyId			ULONG ?
PhySpecificInfo		DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO <>
dot11BSSID		DOT11_MAC_ADDRESS ?
dot11BSSType		DOT11_BSS_TYPE ?
TransmitterAddress	DOT11_MAC_ADDRESS ?
lRSSI			LONG ?
uLinkQuality		ULONG ?
usBeaconPeriod		USHORT ?
ullTimestamp		ULONGLONG ?
ullBeaconHostTimestamp	ULONGLONG ?
ullProbeResponseHostTimestamp ULONGLONG ?
usCapabilityInformation USHORT ?
uBeaconIEsOffset	ULONG ?
uBeaconIEsLength	ULONG ?
uProbeResponseIEsOffset ULONG ?
uProbeResponseIEsLength ULONG ?
_DOT11_WFD_DEVICE_ENTRY ends
DOT11_WFD_DEVICE_ENTRY	typedef _DOT11_WFD_DEVICE_ENTRY
PDOT11_WFD_DEVICE_ENTRY typedef ptr _DOT11_WFD_DEVICE_ENTRY

endif

DOT11_WFD_DEVICE_ENTRY_GET_DEVICE_SIZE macro _device_
  exitm<(sizeof(DOT11_WFD_DEVICE_ENTRY) + (_device_).uBeaconIEsLength + (_device_).uProbeResponseIEsLength)>
  endm

define OID_DOT11_WFD_LISTEN_STATE_DISCOVERABILITY  NWF_DEFINE_OID(0x07,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)
define DOT11_WFD_DEVICE_NOT_DISCOVERABLE   0
define DOT11_WFD_DEVICE_AUTO_AVAILABILITY  16
define DOT11_WFD_DEVICE_HIGH_AVAILABILITY  24

define OID_DOT11_WFD_ADDITIONAL_IE		   NWF_DEFINE_OID(0x08,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define DOT11_WFD_ADDITIONAL_IE_REVISION_1	   1
_DOT11_WFD_ADDITIONAL_IE struct
Header			NDIS_OBJECT_HEADER ?
uBeaconIEsOffset	ULONG ?
uBeaconIEsLength	ULONG ?
uProbeResponseIEsOffset ULONG ?
uProbeResponseIEsLength ULONG ?
uDefaultRequestIEsOffset ULONG ?
uDefaultRequestIEsLength ULONG ?
_DOT11_WFD_ADDITIONAL_IE ends
DOT11_WFD_ADDITIONAL_IE typedef _DOT11_WFD_ADDITIONAL_IE
PDOT11_WFD_ADDITIONAL_IE typedef ptr _DOT11_WFD_ADDITIONAL_IE

define DOT11_SIZEOF_WFD_ADDITIONAL_IE_REVISION_1   sizeof(DOT11_WFD_ADDITIONAL_IE)

DOT11_WFD_ADDITIONAL_IE_GET_HEADER_SIZE macro _addie_
  exitm<sizeof(DOT11_WFD_ADDITIONAL_IE)>
  endm

DOT11_WFD_ADDITIONAL_IE_GET_HEADER_END macro _addie_
  exitm<(((_addie_))+sizeof(DOT11_WFD_ADDITIONAL_IE))>
  endm

DOT11_WFD_ADDITIONAL_IE_GET_BEACON_IE macro _addie_
  exitm<(((_addie_))+(_addie_).uBeaconIEsOffset)>
  endm

DOT11_WFD_ADDITIONAL_IE_SET_BEACON_IE macro _addie_, _beacon_
  exitm<(_addie_).uBeaconIEsOffset = (DWORD)(((_beacon_))-((_addie_)))>
  endm

DOT11_WFD_ADDITIONAL_IE_GET_BEACON_IE_SIZE macro _addie_
  exitm<((_addie_).uBeaconIEsLength)>
  endm

DOT11_WFD_ADDITIONAL_IE_SET_BEACON_IE_SIZE macro _addie_, _size_
  exitm<(_addie_).uBeaconIEsLength = (DWORD)(_size_)>
  endm

DOT11_WFD_ADDITIONAL_IE_GET_BEACON_IE_END macro _addie_
  exitm<(((_addie_))+(_addie_).uBeaconIEsOffset+DOT11_WFD_ADDITIONAL_IE_GET_BEACON_IE_SIZE(_addie_))>
  endm

DOT11_WFD_ADDITIONAL_IE_GET_PROBE_RESPONSE_IE macro _addie_
  exitm<(((_addie_))+(_addie_).uProbeResponseIEsOffset)>
  endm

DOT11_WFD_ADDITIONAL_IE_SET_PROBE_RESPONSE_IE macro _addie_, _response_
  exitm<(_addie_).uProbeResponseIEsOffset = (DWORD)(((_response_))-((_addie_)))>
  endm

DOT11_WFD_ADDITIONAL_IE_GET_PROBE_RESPONSE_IE_SIZE macro _addie_
  exitm<((_addie_).uProbeResponseIEsLength)>
  endm

DOT11_WFD_ADDITIONAL_IE_SET_PROBE_RESPONSE_IE_SIZE macro _addie_, _size_
  exitm<(_addie_).uProbeResponseIEsLength = (DWORD)(_size_)>
  endm

DOT11_WFD_ADDITIONAL_IE_GET_PROBE_RESPONSE_IE_END macro _addie_
  exitm<(((_addie_))+(_addie_).uProbeResponseIEsOffset+DOT11_WFD_ADDITIONAL_IE_GET_PROBE_RESPONSE_IE_SIZE(_addie_))>
  endm

DOT11_WFD_ADDITIONAL_IE_GET_PROBE_REQUEST_IE macro _addie_
  exitm<(((_addie_))+(_addie_).uDefaultRequestIEsOffset)>
  endm

DOT11_WFD_ADDITIONAL_IE_SET_PROBE_REQUEST_IE macro _addie_, _request_
  exitm<(_addie_).uDefaultRequestIEsOffset = (DWORD)(((_request_))-((_addie_)))>
  endm

DOT11_WFD_ADDITIONAL_IE_GET_PROBE_REQUEST_IE_SIZE macro _addie_
  exitm<((_addie_).uDefaultRequestIEsLength)>
  endm

DOT11_WFD_ADDITIONAL_IE_SET_PROBE_REQUEST_IE_SIZE macro _addie_, _size_
  exitm<(_addie_).uDefaultRequestIEsLength = (DWORD)(_size_)>
  endm

DOT11_WFD_ADDITIONAL_IE_GET_ALL_IE_SIZE macro _addie_
  exitm<((_addie_).uBeaconIEsLength + (_addie_).uProbeResponseIEsLength + (_addie_).uDefaultRequestIEsLength)>
  endm

DOT11_WFD_ADDITIONAL_IE_GET_TOTAL_SIZE macro _addie_
  exitm<(DOT11_WFD_ADDITIONAL_IE_GET_HEADER_SIZE(_addie_) + DOT11_WFD_ADDITIONAL_IE_GET_ALL_IE_SIZE(_addie_))>
  endm

define OID_DOT11_WFD_FLUSH_DEVICE_LIST		   NWF_DEFINE_OID(0x09,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define OID_DOT11_WFD_SEND_GO_NEGOTIATION_REQUEST       NWF_DEFINE_OID(0x0A,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1	   1
_DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
uSendTimeout		ULONG ?
GroupOwnerIntent	DOT11_WFD_GO_INTENT ?
MinimumConfigTimeout	DOT11_WFD_CONFIGURATION_TIMEOUT ?
IntendedInterfaceAddress DOT11_MAC_ADDRESS ?
GroupCapability		DOT11_WFD_GROUP_CAPABILITY ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS ends
DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS typedef _DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS
PDOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS typedef ptr _DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS

define DOT11_SIZEOF_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1  sizeof(DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS)

define OID_DOT11_WFD_SEND_GO_NEGOTIATION_RESPONSE  NWF_DEFINE_OID(0x0B,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1	   1
_DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
RequestContext		PVOID ?
uSendTimeout		ULONG ?
Status			DOT11_WFD_STATUS_CODE ?
GroupOwnerIntent	DOT11_WFD_GO_INTENT ?
MinimumConfigTimeout	DOT11_WFD_CONFIGURATION_TIMEOUT ?
IntendedInterfaceAddress DOT11_MAC_ADDRESS ?
GroupCapability		DOT11_WFD_GROUP_CAPABILITY ?
GroupID			DOT11_WFD_GROUP_ID ?
bUseGroupID		BOOLEAN ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS ends
DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS typedef _DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS
PDOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS typedef ptr _DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS

define DOT11_SIZEOF_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1 sizeof(DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS)

define OID_DOT11_WFD_SEND_GO_NEGOTIATION_CONFIRMATION NWF_DEFINE_OID(0x0C,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1    1
_DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
ResponseContext		PVOID ?
uSendTimeout		ULONG ?
Status			DOT11_WFD_STATUS_CODE ?
GroupCapability		DOT11_WFD_GROUP_CAPABILITY ?
GroupID			DOT11_WFD_GROUP_ID ?
bUseGroupID		BOOLEAN ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS ends
DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS typedef _DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS
PDOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS typedef ptr _DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS
define DOT11_SIZEOF_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1 sizeof(DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS)

define OID_DOT11_WFD_SEND_INVITATION_REQUEST	       NWF_DEFINE_OID(0x0D,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

_DOT11_WFD_INVITATION_FLAGS struct
record
 InvitationType		UCHAR : 1 ?
 Reserved		UCHAR : 7 ?
ends
_DOT11_WFD_INVITATION_FLAGS ends
DOT11_WFD_INVITATION_FLAGS typedef _DOT11_WFD_INVITATION_FLAGS
PDOT11_WFD_INVITATION_FLAGS typedef ptr _DOT11_WFD_INVITATION_FLAGS

define DOT11_SEND_INVITATION_REQUEST_PARAMETERS_REVISION_1     1
_DOT11_SEND_INVITATION_REQUEST_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
DialogToken		DOT11_DIALOG_TOKEN ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
uSendTimeout		ULONG ?
MinimumConfigTimeout	DOT11_WFD_CONFIGURATION_TIMEOUT ?
InvitationFlags		DOT11_WFD_INVITATION_FLAGS ?
GroupBSSID		DOT11_MAC_ADDRESS ?
bUseGroupBSSID		BOOLEAN ?
OperatingChannel	DOT11_WFD_CHANNEL ?
bUseSpecifiedOperatingChannel BOOLEAN ?
GroupID			DOT11_WFD_GROUP_ID ?
bLocalGO		BOOLEAN ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_SEND_INVITATION_REQUEST_PARAMETERS ends
DOT11_SEND_INVITATION_REQUEST_PARAMETERS typedef _DOT11_SEND_INVITATION_REQUEST_PARAMETERS
PDOT11_SEND_INVITATION_REQUEST_PARAMETERS typedef ptr _DOT11_SEND_INVITATION_REQUEST_PARAMETERS

define DOT11_SIZEOF_SEND_INVITATION_REQUEST_PARAMETERS_REVISION_1  sizeof(DOT11_SEND_INVITATION_REQUEST_PARAMETERS)

define OID_DOT11_WFD_SEND_INVITATION_RESPONSE  NWF_DEFINE_OID(0x0E,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define DOT11_SEND_INVITATION_RESPONSE_PARAMETERS_REVISION_1    1
_DOT11_SEND_INVITATION_RESPONSE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
ReceiverDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
RequestContext		PVOID ?
uSendTimeout		ULONG ?
Status			DOT11_WFD_STATUS_CODE ?
MinimumConfigTimeout	DOT11_WFD_CONFIGURATION_TIMEOUT ?
GroupBSSID		DOT11_MAC_ADDRESS ?
bUseGroupBSSID		BOOLEAN ?
OperatingChannel	DOT11_WFD_CHANNEL ?
bUseSpecifiedOperatingChannel BOOLEAN ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_SEND_INVITATION_RESPONSE_PARAMETERS ends
DOT11_SEND_INVITATION_RESPONSE_PARAMETERS typedef _DOT11_SEND_INVITATION_RESPONSE_PARAMETERS
PDOT11_SEND_INVITATION_RESPONSE_PARAMETERS typedef ptr _DOT11_SEND_INVITATION_RESPONSE_PARAMETERS

define DOT11_SIZEOF_SEND_INVITATION_RESPONSE_PARAMETERS_REVISION_1 sizeof(DOT11_SEND_INVITATION_RESPONSE_PARAMETERS)

define OID_DOT11_WFD_SEND_PROVISION_DISCOVERY_REQUEST  NWF_DEFINE_OID(0x0F,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1	1
_DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
DialogToken		DOT11_DIALOG_TOKEN ?
PeerDeviceAddress	DOT11_MAC_ADDRESS ?
uSendTimeout		ULONG ?
GroupCapability		DOT11_WFD_GROUP_CAPABILITY ?
GroupID			DOT11_WFD_GROUP_ID ?
bUseGroupID		BOOLEAN ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS ends
DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS typedef _DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS
PDOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS typedef ptr _DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS

define DOT11_SIZEOF_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1  sizeof(DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS)
define OID_DOT11_WFD_SEND_PROVISION_DISCOVERY_RESPONSE NWF_DEFINE_OID(0x10,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)

define DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1	 1
_DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
ReceiverDeviceAddress	DOT11_MAC_ADDRESS ?
DialogToken		DOT11_DIALOG_TOKEN ?
RequestContext		PVOID ?
uSendTimeout		ULONG ?
uIEsOffset		ULONG ?
uIEsLength		ULONG ?
_DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS ends
DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS typedef _DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS
PDOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS typedef ptr _DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS

define DOT11_SIZEOF_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1  sizeof(DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS)
define OID_DOT11_WFD_GET_DIALOG_TOKEN	    NWF_DEFINE_OID(0x11,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)
define OID_DOT11_WFD_STOP_DISCOVERY NWF_DEFINE_OID(0x12,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)
define OID_DOT11_WFD_ENABLE_HRDSSS_DEVICES NWF_DEFINE_OID(0x13,NWF_WFD_DEVICE_OID,NWF_OPTIONAL_OID)
define OID_DOT11_WFD_DEVICE_LISTEN_CHANNEL NWF_DEFINE_OID(0x14,NWF_WFD_DEVICE_OID,NWF_MANDATORY_OID)
define DOT11_WFD_DEVICE_LISTEN_CHANNEL_REVISION_1  1
define DOT11_SIZEOF_WFD_DEVICE_LISTEN_CHANNEL_REVISION_1 sizeof(DOT11_WFD_DEVICE_LISTEN_CHANNEL)
_DOT11_WFD_DEVICE_LISTEN_CHANNEL struct
Header			NDIS_OBJECT_HEADER ?
ChannelNumber		UCHAR ?
_DOT11_WFD_DEVICE_LISTEN_CHANNEL ends
DOT11_WFD_DEVICE_LISTEN_CHANNEL typedef _DOT11_WFD_DEVICE_LISTEN_CHANNEL
PDOT11_WFD_DEVICE_LISTEN_CHANNEL typedef ptr _DOT11_WFD_DEVICE_LISTEN_CHANNEL

define OID_DOT11_WFD_DESIRED_GROUP_ID		   NWF_DEFINE_OID(0x01,NWF_WFD_ROLE_OID,NWF_MANDATORY_OID)
define OID_DOT11_WFD_START_GO_REQUEST		       NWF_DEFINE_OID(0x02,NWF_WFD_ROLE_OID,NWF_MANDATORY_OID)
define OID_DOT11_WFD_GROUP_START_PARAMETERS	       NWF_DEFINE_OID(0x03,NWF_WFD_ROLE_OID,NWF_MANDATORY_OID)

define DOT11_WFD_GROUP_START_PARAMETERS_REVISION_1     1
_DOT11_WFD_GROUP_START_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
AdvertisedOperatingChannel DOT11_WFD_CHANNEL ?
_DOT11_WFD_GROUP_START_PARAMETERS ends
DOT11_WFD_GROUP_START_PARAMETERS typedef _DOT11_WFD_GROUP_START_PARAMETERS
PDOT11_WFD_GROUP_START_PARAMETERS typedef ptr _DOT11_WFD_GROUP_START_PARAMETERS

define DOT11_SIZEOF_WFD_GROUP_START_PARAMETERS_REVISION_1  sizeof(DOT11_WFD_GROUP_START_PARAMETERS)

define OID_DOT11_WFD_CONNECT_TO_GROUP_REQUEST	       NWF_DEFINE_OID(0x04,NWF_WFD_ROLE_OID,NWF_MANDATORY_OID)
define OID_DOT11_WFD_DISCONNECT_FROM_GROUP_REQUEST     NWF_DEFINE_OID(0x05,NWF_WFD_ROLE_OID,NWF_MANDATORY_OID)
define OID_DOT11_WFD_GROUP_JOIN_PARAMETERS	       NWF_DEFINE_OID(0x06,NWF_WFD_ROLE_OID,NWF_MANDATORY_OID)

define DOT11_WFD_GROUP_JOIN_PARAMETERS_REVISION_1      1
_DOT11_WFD_GROUP_JOIN_PARAMETERS struct
Header			NDIS_OBJECT_HEADER ?
GOOperatingChannel	DOT11_WFD_CHANNEL ?
GOConfigTime		ULONG ?
bInGroupFormation	BOOLEAN ?
bWaitForWPSReady	BOOLEAN ?
_DOT11_WFD_GROUP_JOIN_PARAMETERS ends
DOT11_WFD_GROUP_JOIN_PARAMETERS typedef _DOT11_WFD_GROUP_JOIN_PARAMETERS
PDOT11_WFD_GROUP_JOIN_PARAMETERS typedef ptr _DOT11_WFD_GROUP_JOIN_PARAMETERS

define DOT11_SIZEOF_WFD_GROUP_JOIN_PARAMETERS_REVISION_1  sizeof(DOT11_WFD_GROUP_JOIN_PARAMETERS)

endif

ifdef NWF_POWER_SAVE_SUPPORTED
define NWF_POWER_SAVE_OID    (0x07)

define OID_DOT11_POWER_MGMT_MODE_AUTO_ENABLED NWF_DEFINE_OID( 0x01, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID )

define DOT11_POWER_MGMT_AUTO_MODE_ENABLED_REVISION_1 1
define DOT11_SIZEOF_POWER_MGMT_AUTO_MODE_ENABLE_INFO_REVISION_1 sizeof(DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO)
_DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO struct
Header			NDIS_OBJECT_HEADER ?
bEnabled		BOOLEAN ?
_DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO ends
DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO typedef _DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO
PDOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO typedef ptr _DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO

define OID_DOT11_POWER_MGMT_MODE_STATUS NWF_DEFINE_OID( 0x02, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID )
.enum DOT11_POWER_MODE_REASON {
	dot11_power_mode_reason_no_change	    =0,
	dot11_power_mode_reason_noncompliant_AP	    =1,
	dot11_power_mode_reason_legacy_WFD_device   =2,
	dot11_power_mode_reason_compliant_AP	    =3,
	dot11_power_mode_reason_compliant_WFD_device=4,
	dot11_power_mode_reason_others		    =5
    }

define DOT11_POWER_MGMT_MODE_STATUS_INFO_REVISION_1 1
define DOT11_SIZEOF_POWER_MGMT_MODE_STATUS_INFO_REVISION_1 sizeof(DOT11_POWER_MGMT_MODE_STATUS_INFO)
_DOT11_POWER_MGMT_MODE_STATUS_INFO struct
Header			NDIS_OBJECT_HEADER ?
PowerSaveMode		DOT11_POWER_MODE ?
uPowerSaveLevel		ULONG ?
Reason			DOT11_POWER_MODE_REASON ?
_DOT11_POWER_MGMT_MODE_STATUS_INFO ends
DOT11_POWER_MGMT_MODE_STATUS_INFO typedef _DOT11_POWER_MGMT_MODE_STATUS_INFO
PDOT11_POWER_MGMT_MODE_STATUSINFO typedef ptr _DOT11_POWER_MGMT_MODE_STATUS_INFO

define OID_DOT11_OFFLOAD_NETWORK_LIST NWF_DEFINE_OID( 0x03, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID )

define DOT11_MAX_CHANNEL_HINTS 4
define DOT11_INVALID_CHANNEL_NUMBER 0
DOT11_CHANNEL_HINT	struct
Dot11PhyType		DOT11_PHY_TYPE ?
uChannelNumber		ULONG ?
DOT11_CHANNEL_HINT	ends
PDOT11_CHANNEL_HINT	typedef ptr DOT11_CHANNEL_HINT

DOT11_OFFLOAD_NETWORK	struct
Ssid			DOT11_SSID ?
UnicastCipher		DOT11_CIPHER_ALGORITHM ?
AuthAlgo		DOT11_AUTH_ALGORITHM ?
Dot11ChannelHints	DOT11_CHANNEL_HINT DOT11_MAX_CHANNEL_HINTS dup(<>)
DOT11_OFFLOAD_NETWORK	ends
PDOT11_OFFLOAD_NETWORK	typedef ptr DOT11_OFFLOAD_NETWORK

define DOT11_NLO_FLAG_STOP_NLO_INDICATION	 0x00000001
define DOT11_NLO_FLAG_SCAN_ON_AOAC_PLATFORM 0x00000002
define DOT11_NLO_FLAG_SCAN_AT_SYSTEM_RESUME 0x00000004

define DOT11_OFFLOAD_NETWORK_LIST_REVISION_1 1
DOT11_SIZEOF_OFFLOAD_NETWORK_LIST_INFO_REVISION_1 macro _uNumOfEntry
    (FIELD_OFFSET(DOT11_OFFLOAD_NETWORK_LIST_INFO, offloadNetworkList)+
    sizeof(DOT11_OFFLOAD_NETWORK)*(_uNumOfEntry))
  exitm<>
  endm

define DOT11_MIN_SIZEOF_OFFLOAD_NETWORK_LIST_INFO_REVISION_1 (FIELD_OFFSET(DOT11_OFFLOAD_NETWORK_LIST_INFO, offloadNetworkList))

_DOT11_OFFLOAD_NETWORK_LIST_INFO struct
Header			NDIS_OBJECT_HEADER ?
ulFlags			ULONG ?
FastScanPeriod		ULONG ?
FastScanIterations	ULONG ?
SlowScanPeriod		ULONG ?
uNumOfEntries		ULONG ?
offloadNetworkList	DOT11_OFFLOAD_NETWORK 1 dup(<>)
_DOT11_OFFLOAD_NETWORK_LIST_INFO ends
DOT11_OFFLOAD_NETWORK_LIST_INFO typedef _DOT11_OFFLOAD_NETWORK_LIST_INFO
PDOT11_OFFLOAD_NETWORK_LIST_INFO typedef ptr _DOT11_OFFLOAD_NETWORK_LIST_INFO

endif

define DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS_REVISION_1    1

_DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS struct
Header			NDIS_OBJECT_HEADER <>
Status			NDIS_STATUS ?
_DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS ends
DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS typedef _DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS
PDOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS typedef ptr _DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS

define DOT11_SIZEOF_OFFLOAD_NETWORK_STATUS_PARAMETERS_REVISION_1 sizeof(DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS)

define NWF_MANUFACTURING_OID	 (0x08)

define OID_DOT11_MANUFACTURING_TEST NWF_DEFINE_OID( 0x01, NWF_MANUFACTURING_OID, NWF_OPTIONAL_OID )
define DOT11_MANUFACTURING_TEST_REVISION_1 1

.enum DOT11_MANUFACTURING_TEST_TYPE {
	dot11_manufacturing_test_unknown = 0,
	dot11_manufacturing_test_self_start = 1,
	dot11_manufacturing_test_self_query_result = 2,
	dot11_manufacturing_test_rx = 3,
	dot11_manufacturing_test_tx = 4,
	dot11_manufacturing_test_query_adc = 5,
	dot11_manufacturing_test_set_data = 6,
	dot11_manufacturing_test_query_data = 7,
	dot11_manufacturing_test_sleep = 8,
	dot11_manufacturing_test_awake = 9,
	dot11_manufacturing_test_IHV_start = 0x80000000,
	dot11_manufacturing_test_IHV_end = 0xffffffff
    }

_DOT11_MANUFACTURING_TEST struct
dot11ManufacturingTestType DOT11_MANUFACTURING_TEST_TYPE ?
uBufferLength		ULONG ?
ucBuffer		UCHAR 1 dup(?)
_DOT11_MANUFACTURING_TEST ends
DOT11_MANUFACTURING_TEST typedef _DOT11_MANUFACTURING_TEST
PDOT11_MANUFACTURING_TEST typedef ptr _DOT11_MANUFACTURING_TEST

.enum DOT11_MANUFACTURING_SELF_TEST_TYPE {
	DOT11_MANUFACTURING_SELF_TEST_TYPE_INTERFACE = 1,
	DOT11_MANUFACTURING_SELF_TEST_TYPE_RF_INTERFACE,
	DOT11_MANUFACTURING_SELF_TEST_TYPE_BT_COEXISTENCE
    }

_DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS struct
SelfTestType		DOT11_MANUFACTURING_SELF_TEST_TYPE ?
uTestID			ULONG ?
uPinBitMask		ULONG ?
pvContext		PVOID ?
uBufferLength		ULONG ?
ucBufferIn		UCHAR 1 dup(?)
_DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS ends
DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS typedef _DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS
PDOT11_MANUFACTURING_SELF_TEST_SET_PARAMS typedef ptr _DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS

_DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS struct
SelfTestType		DOT11_MANUFACTURING_SELF_TEST_TYPE ?
uTestID			ULONG ?
bResult			BOOLEAN ?
uPinFailedBitMask	ULONG ?
pvContext		PVOID ?
uBytesWrittenOut	ULONG ?
ucBufferOut		UCHAR 1 dup(?)
_DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS ends
DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS typedef _DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS
PDOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS typedef ptr _DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS

.enum DOT11_BAND {
	dot11_band_2p4g = 1,
	dot11_band_4p9g,
	dot11_band_5g
    }

_DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX struct
bEnabled		BOOLEAN ?
Dot11Band		DOT11_BAND ?
uChannel		ULONG ?
PowerLevel		LONG ?
_DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX ends
DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX typedef _DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX
PDOT11_MANUFACTURING_FUNCTIONAL_TEST_RX typedef ptr _DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX

_DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX struct
bEnable			BOOLEAN ?
bOpenLoop		BOOLEAN ?
Dot11Band		DOT11_BAND ?
uChannel		ULONG ?
uSetPowerLevel		ULONG ?
ADCPowerLevel		LONG ?
_DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX ends
DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX typedef _DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX
PDOT11_MANUFACTURING_FUNCTIONAL_TEST_TX typedef ptr _DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX

_DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC struct
Dot11Band		DOT11_BAND ?
uChannel		ULONG ?
ADCPowerLevel		LONG ?
_DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC ends
DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC typedef _DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC
PDOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC typedef ptr _DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC

_DOT11_MANUFACTURING_TEST_SET_DATA struct
uKey			ULONG ?
uOffset			ULONG ?
uBufferLength		ULONG ?
ucBufferIn		UCHAR 1 dup(?)
_DOT11_MANUFACTURING_TEST_SET_DATA ends
DOT11_MANUFACTURING_TEST_SET_DATA typedef _DOT11_MANUFACTURING_TEST_SET_DATA
PDOT11_MANUFACTURING_TEST_SET_DATA typedef ptr _DOT11_MANUFACTURING_TEST_SET_DATA

_DOT11_MANUFACTURING_TEST_QUERY_DATA struct
uKey			ULONG ?
uOffset			ULONG ?
uBufferLength		ULONG ?
uBytesRead		ULONG ?
ucBufferOut		UCHAR 1 dup(?)
_DOT11_MANUFACTURING_TEST_QUERY_DATA ends
DOT11_MANUFACTURING_TEST_QUERY_DATA typedef _DOT11_MANUFACTURING_TEST_QUERY_DATA
PDOT11_MANUFACTURING_TEST_QUERY_DATA typedef ptr _DOT11_MANUFACTURING_TEST_QUERY_DATA

_DOT11_MANUFACTURING_TEST_SLEEP struct
uSleepTime		ULONG ?
pvContext		PVOID ?
_DOT11_MANUFACTURING_TEST_SLEEP ends
DOT11_MANUFACTURING_TEST_SLEEP typedef _DOT11_MANUFACTURING_TEST_SLEEP
PDOT11_MANUFACTURING_TEST_SLEEP typedef ptr _DOT11_MANUFACTURING_TEST_SLEEP

.enum DOT11_MANUFACTURING_CALLBACK_TYPE {
	dot11_manufacturing_callback_unknown = 0,
	dot11_manufacturing_callback_self_test_complete = 1,
	dot11_manufacturing_callback_sleep_complete = 2,
	dot11_manufacturing_callback_IHV_start = 0x80000000,
	dot11_manufacturing_callback_IHV_end = 0xffffffff
    }

DOT11_MANUFACTURING_CALLBACK_PARAMETERS struct
define DOT11_MANUFACTURING_CALLBACK_REVISION_1	1
Header			NDIS_OBJECT_HEADER <>
dot11ManufacturingCallbackType DOT11_MANUFACTURING_CALLBACK_TYPE ?
uStatus			ULONG ?
pvContext		PVOID ?
DOT11_MANUFACTURING_CALLBACK_PARAMETERS ends
PDOT11_MANUFACTURING_CALLBACK_PARAMETERS typedef ptr DOT11_MANUFACTURING_CALLBACK_PARAMETERS

define OID_DOT11_SET_FT_REASSOCIATION_PARAMETERS NWF_DEFINE_OID( 0x168, NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_SET_SAE_AUTH_PARAMS NWF_DEFINE_OID( 0x172, NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)
define OID_DOT11_SET_NWF_PMKID_LIST NWF_DEFINE_OID( 0x175, NWF_OPERATIONAL_OID,NWF_MANDATORY_OID)

endif

endif
