/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the w64 mingw-runtime package.
 * No warranty is given; refer to the file DISCLAIMER within this package.
 */
#ifndef _NTDDNDIS_
#define _NTDDNDIS_

#ifdef __cplusplus
extern "C" {
#endif

#define DD_NDIS_DEVICE_NAME "\\Device\\UNKNOWN"

#define _NDIS_CONTROL_CODE(request,method) CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD,request,method,FILE_ANY_ACCESS)

#define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE(0,METHOD_OUT_DIRECT)
#define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE(1,METHOD_OUT_DIRECT)
#define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE(2,METHOD_BUFFERED)
#define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE(3,METHOD_OUT_DIRECT)
#define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE(4,METHOD_BUFFERED)
#define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE(5,METHOD_BUFFERED)
#define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE(7,METHOD_OUT_DIRECT)
#define IOCTL_NDIS_GET_VERSION _NDIS_CONTROL_CODE(8,METHOD_BUFFERED)
#define IOCTL_NDIS_RESERVED7 _NDIS_CONTROL_CODE(0xF,METHOD_OUT_DIRECT)

  typedef ULONG NDIS_OID,*PNDIS_OID;

  typedef UNALIGNED struct _NDIS_STATISTICS_VALUE {
    NDIS_OID Oid;
    ULONG DataLength;
    UCHAR Data[1];
  } NDIS_STATISTICS_VALUE,*PNDIS_STATISTICS_VALUE;

  typedef struct _NDIS_VAR_DATA_DESC {
    USHORT Length;
    USHORT MaximumLength;
    ULONG_PTR Offset;
  } NDIS_VAR_DATA_DESC,*PNDIS_VAR_DATA_DESC;

#ifndef GUID_DEFINED
#include <guiddef.h>
#endif

#define OID_GEN_SUPPORTED_LIST 0x00010101
#define OID_GEN_HARDWARE_STATUS 0x00010102
#define OID_GEN_MEDIA_SUPPORTED 0x00010103
#define OID_GEN_MEDIA_IN_USE 0x00010104
#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105
#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106
#define OID_GEN_LINK_SPEED 0x00010107
#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108
#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109
#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A
#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B
#define OID_GEN_VENDOR_ID 0x0001010C
#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D
#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E
#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F
#define OID_GEN_DRIVER_VERSION 0x00010110
#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111
#define OID_GEN_PROTOCOL_OPTIONS 0x00010112
#define OID_GEN_MAC_OPTIONS 0x00010113
#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114
#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115

#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116
#define OID_GEN_SUPPORTED_GUIDS 0x00010117
#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118
#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119
#define OID_GEN_MACHINE_NAME 0x0001021A
#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B
#define OID_GEN_VLAN_ID 0x0001021C
#define OID_GEN_MEDIA_CAPABILITIES 0x00010201
#define OID_GEN_PHYSICAL_MEDIUM 0x00010202

#define OID_GEN_XMIT_OK 0x00020101
#define OID_GEN_RCV_OK 0x00020102
#define OID_GEN_XMIT_ERROR 0x00020103
#define OID_GEN_RCV_ERROR 0x00020104
#define OID_GEN_RCV_NO_BUFFER 0x00020105

#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201
#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202
#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203
#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204
#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205
#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206
#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207
#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208
#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209
#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A
#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B
#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C

#define OID_GEN_RCV_CRC_ERROR 0x0002020D
#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E

#define OID_GEN_GET_TIME_CAPS 0x0002020F
#define OID_GEN_GET_NETCARD_TIME 0x00020210
#define OID_GEN_NETCARD_LOAD 0x00020211
#define OID_GEN_DEVICE_PROFILE 0x00020212

#define OID_GEN_INIT_TIME_MS 0x00020213
#define OID_GEN_RESET_COUNTS 0x00020214
#define OID_GEN_MEDIA_SENSE_COUNTS 0x00020215
#define OID_GEN_FRIENDLY_NAME 0x00020216
#define OID_GEN_MINIPORT_INFO 0x00020217
#define OID_GEN_RESET_VERIFY_PARAMETERS 0x00020218

#define OID_GEN_CO_SUPPORTED_LIST OID_GEN_SUPPORTED_LIST
#define OID_GEN_CO_HARDWARE_STATUS OID_GEN_HARDWARE_STATUS
#define OID_GEN_CO_MEDIA_SUPPORTED OID_GEN_MEDIA_SUPPORTED
#define OID_GEN_CO_MEDIA_IN_USE OID_GEN_MEDIA_IN_USE
#define OID_GEN_CO_LINK_SPEED OID_GEN_LINK_SPEED
#define OID_GEN_CO_VENDOR_ID OID_GEN_VENDOR_ID
#define OID_GEN_CO_VENDOR_DESCRIPTION OID_GEN_VENDOR_DESCRIPTION
#define OID_GEN_CO_DRIVER_VERSION OID_GEN_DRIVER_VERSION
#define OID_GEN_CO_PROTOCOL_OPTIONS OID_GEN_PROTOCOL_OPTIONS
#define OID_GEN_CO_MAC_OPTIONS OID_GEN_MAC_OPTIONS
#define OID_GEN_CO_MEDIA_CONNECT_STATUS OID_GEN_MEDIA_CONNECT_STATUS
#define OID_GEN_CO_VENDOR_DRIVER_VERSION OID_GEN_VENDOR_DRIVER_VERSION
#define OID_GEN_CO_SUPPORTED_GUIDS OID_GEN_SUPPORTED_GUIDS
#define OID_GEN_CO_GET_TIME_CAPS OID_GEN_GET_TIME_CAPS
#define OID_GEN_CO_GET_NETCARD_TIME OID_GEN_GET_NETCARD_TIME
#define OID_GEN_CO_MINIMUM_LINK_SPEED 0x00020120

#define OID_GEN_CO_XMIT_PDUS_OK OID_GEN_XMIT_OK
#define OID_GEN_CO_RCV_PDUS_OK OID_GEN_RCV_OK
#define OID_GEN_CO_XMIT_PDUS_ERROR OID_GEN_XMIT_ERROR
#define OID_GEN_CO_RCV_PDUS_ERROR OID_GEN_RCV_ERROR
#define OID_GEN_CO_RCV_PDUS_NO_BUFFER OID_GEN_RCV_NO_BUFFER

#define OID_GEN_CO_RCV_CRC_ERROR OID_GEN_RCV_CRC_ERROR
#define OID_GEN_CO_TRANSMIT_QUEUE_LENGTH OID_GEN_TRANSMIT_QUEUE_LENGTH
#define OID_GEN_CO_BYTES_XMIT OID_GEN_DIRECTED_BYTES_XMIT
#define OID_GEN_CO_BYTES_RCV OID_GEN_DIRECTED_BYTES_RCV
#define OID_GEN_CO_NETCARD_LOAD OID_GEN_NETCARD_LOAD
#define OID_GEN_CO_DEVICE_PROFILE OID_GEN_DEVICE_PROFILE
#define OID_GEN_CO_BYTES_XMIT_OUTSTANDING 0x00020221

#define OID_802_3_PERMANENT_ADDRESS 0x01010101
#define OID_802_3_CURRENT_ADDRESS 0x01010102
#define OID_802_3_MULTICAST_LIST 0x01010103
#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104
#define OID_802_3_MAC_OPTIONS 0x01010105

#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001

#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101
#define OID_802_3_XMIT_ONE_COLLISION 0x01020102
#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103

#define OID_802_3_XMIT_DEFERRED 0x01020201
#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202
#define OID_802_3_RCV_OVERRUN 0x01020203
#define OID_802_3_XMIT_UNDERRUN 0x01020204
#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205
#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206
#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207

#define OID_802_5_PERMANENT_ADDRESS 0x02010101
#define OID_802_5_CURRENT_ADDRESS 0x02010102
#define OID_802_5_CURRENT_FUNCTIONAL 0x02010103
#define OID_802_5_CURRENT_GROUP 0x02010104
#define OID_802_5_LAST_OPEN_STATUS 0x02010105
#define OID_802_5_CURRENT_RING_STATUS 0x02010106
#define OID_802_5_CURRENT_RING_STATE 0x02010107

#define OID_802_5_LINE_ERRORS 0x02020101
#define OID_802_5_LOST_FRAMES 0x02020102

#define OID_802_5_BURST_ERRORS 0x02020201
#define OID_802_5_AC_ERRORS 0x02020202
#define OID_802_5_ABORT_DELIMETERS 0x02020203
#define OID_802_5_FRAME_COPIED_ERRORS 0x02020204
#define OID_802_5_FREQUENCY_ERRORS 0x02020205
#define OID_802_5_TOKEN_ERRORS 0x02020206
#define OID_802_5_INTERNAL_ERRORS 0x02020207

#define OID_FDDI_LONG_PERMANENT_ADDR 0x03010101
#define OID_FDDI_LONG_CURRENT_ADDR 0x03010102
#define OID_FDDI_LONG_MULTICAST_LIST 0x03010103
#define OID_FDDI_LONG_MAX_LIST_SIZE 0x03010104
#define OID_FDDI_SHORT_PERMANENT_ADDR 0x03010105
#define OID_FDDI_SHORT_CURRENT_ADDR 0x03010106
#define OID_FDDI_SHORT_MULTICAST_LIST 0x03010107
#define OID_FDDI_SHORT_MAX_LIST_SIZE 0x03010108

#define OID_FDDI_ATTACHMENT_TYPE 0x03020101
#define OID_FDDI_UPSTREAM_NODE_LONG 0x03020102
#define OID_FDDI_DOWNSTREAM_NODE_LONG 0x03020103
#define OID_FDDI_FRAME_ERRORS 0x03020104
#define OID_FDDI_FRAMES_LOST 0x03020105
#define OID_FDDI_RING_MGT_STATE 0x03020106
#define OID_FDDI_LCT_FAILURES 0x03020107
#define OID_FDDI_LEM_REJECTS 0x03020108
#define OID_FDDI_LCONNECTION_STATE 0x03020109

#define OID_FDDI_SMT_STATION_ID 0x03030201
#define OID_FDDI_SMT_OP_VERSION_ID 0x03030202
#define OID_FDDI_SMT_HI_VERSION_ID 0x03030203
#define OID_FDDI_SMT_LO_VERSION_ID 0x03030204
#define OID_FDDI_SMT_MANUFACTURER_DATA 0x03030205
#define OID_FDDI_SMT_USER_DATA 0x03030206
#define OID_FDDI_SMT_MIB_VERSION_ID 0x03030207
#define OID_FDDI_SMT_MAC_CT 0x03030208
#define OID_FDDI_SMT_NON_MASTER_CT 0x03030209
#define OID_FDDI_SMT_MASTER_CT 0x0303020A
#define OID_FDDI_SMT_AVAILABLE_PATHS 0x0303020B
#define OID_FDDI_SMT_CONFIG_CAPABILITIES 0x0303020C
#define OID_FDDI_SMT_CONFIG_POLICY 0x0303020D
#define OID_FDDI_SMT_CONNECTION_POLICY 0x0303020E
#define OID_FDDI_SMT_T_NOTIFY 0x0303020F
#define OID_FDDI_SMT_STAT_RPT_POLICY 0x03030210
#define OID_FDDI_SMT_TRACE_MAX_EXPIRATION 0x03030211
#define OID_FDDI_SMT_PORT_INDEXES 0x03030212
#define OID_FDDI_SMT_MAC_INDEXES 0x03030213
#define OID_FDDI_SMT_BYPASS_PRESENT 0x03030214
#define OID_FDDI_SMT_ECM_STATE 0x03030215
#define OID_FDDI_SMT_CF_STATE 0x03030216
#define OID_FDDI_SMT_HOLD_STATE 0x03030217
#define OID_FDDI_SMT_REMOTE_DISCONNECT_FLAG 0x03030218
#define OID_FDDI_SMT_STATION_STATUS 0x03030219
#define OID_FDDI_SMT_PEER_WRAP_FLAG 0x0303021A
#define OID_FDDI_SMT_MSG_TIME_STAMP 0x0303021B
#define OID_FDDI_SMT_TRANSITION_TIME_STAMP 0x0303021C
#define OID_FDDI_SMT_SET_COUNT 0x0303021D
#define OID_FDDI_SMT_LAST_SET_STATION_ID 0x0303021E
#define OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS 0x0303021F
#define OID_FDDI_MAC_BRIDGE_FUNCTIONS 0x03030220
#define OID_FDDI_MAC_T_MAX_CAPABILITY 0x03030221
#define OID_FDDI_MAC_TVX_CAPABILITY 0x03030222
#define OID_FDDI_MAC_AVAILABLE_PATHS 0x03030223
#define OID_FDDI_MAC_CURRENT_PATH 0x03030224
#define OID_FDDI_MAC_UPSTREAM_NBR 0x03030225
#define OID_FDDI_MAC_DOWNSTREAM_NBR 0x03030226
#define OID_FDDI_MAC_OLD_UPSTREAM_NBR 0x03030227
#define OID_FDDI_MAC_OLD_DOWNSTREAM_NBR 0x03030228
#define OID_FDDI_MAC_DUP_ADDRESS_TEST 0x03030229
#define OID_FDDI_MAC_REQUESTED_PATHS 0x0303022A
#define OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE 0x0303022B
#define OID_FDDI_MAC_INDEX 0x0303022C
#define OID_FDDI_MAC_SMT_ADDRESS 0x0303022D
#define OID_FDDI_MAC_LONG_GRP_ADDRESS 0x0303022E
#define OID_FDDI_MAC_SHORT_GRP_ADDRESS 0x0303022F
#define OID_FDDI_MAC_T_REQ 0x03030230
#define OID_FDDI_MAC_T_NEG 0x03030231
#define OID_FDDI_MAC_T_MAX 0x03030232
#define OID_FDDI_MAC_TVX_VALUE 0x03030233
#define OID_FDDI_MAC_T_PRI0 0x03030234
#define OID_FDDI_MAC_T_PRI1 0x03030235
#define OID_FDDI_MAC_T_PRI2 0x03030236
#define OID_FDDI_MAC_T_PRI3 0x03030237
#define OID_FDDI_MAC_T_PRI4 0x03030238
#define OID_FDDI_MAC_T_PRI5 0x03030239
#define OID_FDDI_MAC_T_PRI6 0x0303023A
#define OID_FDDI_MAC_FRAME_CT 0x0303023B
#define OID_FDDI_MAC_COPIED_CT 0x0303023C
#define OID_FDDI_MAC_TRANSMIT_CT 0x0303023D
#define OID_FDDI_MAC_TOKEN_CT 0x0303023E
#define OID_FDDI_MAC_ERROR_CT 0x0303023F
#define OID_FDDI_MAC_LOST_CT 0x03030240
#define OID_FDDI_MAC_TVX_EXPIRED_CT 0x03030241
#define OID_FDDI_MAC_NOT_COPIED_CT 0x03030242
#define OID_FDDI_MAC_LATE_CT 0x03030243
#define OID_FDDI_MAC_RING_OP_CT 0x03030244
#define OID_FDDI_MAC_FRAME_ERROR_THRESHOLD 0x03030245
#define OID_FDDI_MAC_FRAME_ERROR_RATIO 0x03030246
#define OID_FDDI_MAC_NOT_COPIED_THRESHOLD 0x03030247
#define OID_FDDI_MAC_NOT_COPIED_RATIO 0x03030248
#define OID_FDDI_MAC_RMT_STATE 0x03030249
#define OID_FDDI_MAC_DA_FLAG 0x0303024A
#define OID_FDDI_MAC_UNDA_FLAG 0x0303024B
#define OID_FDDI_MAC_FRAME_ERROR_FLAG 0x0303024C
#define OID_FDDI_MAC_NOT_COPIED_FLAG 0x0303024D
#define OID_FDDI_MAC_MA_UNITDATA_AVAILABLE 0x0303024E
#define OID_FDDI_MAC_HARDWARE_PRESENT 0x0303024F
#define OID_FDDI_MAC_MA_UNITDATA_ENABLE 0x03030250
#define OID_FDDI_PATH_INDEX 0x03030251
#define OID_FDDI_PATH_RING_LATENCY 0x03030252
#define OID_FDDI_PATH_TRACE_STATUS 0x03030253
#define OID_FDDI_PATH_SBA_PAYLOAD 0x03030254
#define OID_FDDI_PATH_SBA_OVERHEAD 0x03030255
#define OID_FDDI_PATH_CONFIGURATION 0x03030256
#define OID_FDDI_PATH_T_R_MODE 0x03030257
#define OID_FDDI_PATH_SBA_AVAILABLE 0x03030258
#define OID_FDDI_PATH_TVX_LOWER_BOUND 0x03030259
#define OID_FDDI_PATH_T_MAX_LOWER_BOUND 0x0303025A
#define OID_FDDI_PATH_MAX_T_REQ 0x0303025B
#define OID_FDDI_PORT_MY_TYPE 0x0303025C
#define OID_FDDI_PORT_NEIGHBOR_TYPE 0x0303025D
#define OID_FDDI_PORT_CONNECTION_POLICIES 0x0303025E
#define OID_FDDI_PORT_MAC_INDICATED 0x0303025F
#define OID_FDDI_PORT_CURRENT_PATH 0x03030260
#define OID_FDDI_PORT_REQUESTED_PATHS 0x03030261
#define OID_FDDI_PORT_MAC_PLACEMENT 0x03030262
#define OID_FDDI_PORT_AVAILABLE_PATHS 0x03030263
#define OID_FDDI_PORT_MAC_LOOP_TIME 0x03030264
#define OID_FDDI_PORT_PMD_CLASS 0x03030265
#define OID_FDDI_PORT_CONNECTION_CAPABILITIES 0x03030266
#define OID_FDDI_PORT_INDEX 0x03030267
#define OID_FDDI_PORT_MAINT_LS 0x03030268
#define OID_FDDI_PORT_BS_FLAG 0x03030269
#define OID_FDDI_PORT_PC_LS 0x0303026A
#define OID_FDDI_PORT_EB_ERROR_CT 0x0303026B
#define OID_FDDI_PORT_LCT_FAIL_CT 0x0303026C
#define OID_FDDI_PORT_LER_ESTIMATE 0x0303026D
#define OID_FDDI_PORT_LEM_REJECT_CT 0x0303026E
#define OID_FDDI_PORT_LEM_CT 0x0303026F
#define OID_FDDI_PORT_LER_CUTOFF 0x03030270
#define OID_FDDI_PORT_LER_ALARM 0x03030271
#define OID_FDDI_PORT_CONNNECT_STATE 0x03030272
#define OID_FDDI_PORT_PCM_STATE 0x03030273
#define OID_FDDI_PORT_PC_WITHHOLD 0x03030274
#define OID_FDDI_PORT_LER_FLAG 0x03030275
#define OID_FDDI_PORT_HARDWARE_PRESENT 0x03030276
#define OID_FDDI_SMT_STATION_ACTION 0x03030277
#define OID_FDDI_PORT_ACTION 0x03030278
#define OID_FDDI_IF_DESCR 0x03030279
#define OID_FDDI_IF_TYPE 0x0303027A
#define OID_FDDI_IF_MTU 0x0303027B
#define OID_FDDI_IF_SPEED 0x0303027C
#define OID_FDDI_IF_PHYS_ADDRESS 0x0303027D
#define OID_FDDI_IF_ADMIN_STATUS 0x0303027E
#define OID_FDDI_IF_OPER_STATUS 0x0303027F
#define OID_FDDI_IF_LAST_CHANGE 0x03030280
#define OID_FDDI_IF_IN_OCTETS 0x03030281
#define OID_FDDI_IF_IN_UCAST_PKTS 0x03030282
#define OID_FDDI_IF_IN_NUCAST_PKTS 0x03030283
#define OID_FDDI_IF_IN_DISCARDS 0x03030284
#define OID_FDDI_IF_IN_ERRORS 0x03030285
#define OID_FDDI_IF_IN_UNKNOWN_PROTOS 0x03030286
#define OID_FDDI_IF_OUT_OCTETS 0x03030287
#define OID_FDDI_IF_OUT_UCAST_PKTS 0x03030288
#define OID_FDDI_IF_OUT_NUCAST_PKTS 0x03030289
#define OID_FDDI_IF_OUT_DISCARDS 0x0303028A
#define OID_FDDI_IF_OUT_ERRORS 0x0303028B
#define OID_FDDI_IF_OUT_QLEN 0x0303028C
#define OID_FDDI_IF_SPECIFIC 0x0303028D

#define OID_WAN_PERMANENT_ADDRESS 0x04010101
#define OID_WAN_CURRENT_ADDRESS 0x04010102
#define OID_WAN_QUALITY_OF_SERVICE 0x04010103
#define OID_WAN_PROTOCOL_TYPE 0x04010104
#define OID_WAN_MEDIUM_SUBTYPE 0x04010105
#define OID_WAN_HEADER_FORMAT 0x04010106

#define OID_WAN_GET_INFO 0x04010107
#define OID_WAN_SET_LINK_INFO 0x04010108
#define OID_WAN_GET_LINK_INFO 0x04010109

#define OID_WAN_LINE_COUNT 0x0401010A
#define OID_WAN_PROTOCOL_CAPS 0x0401010B

#define OID_WAN_GET_BRIDGE_INFO 0x0401020A
#define OID_WAN_SET_BRIDGE_INFO 0x0401020B
#define OID_WAN_GET_COMP_INFO 0x0401020C
#define OID_WAN_SET_COMP_INFO 0x0401020D
#define OID_WAN_GET_STATS_INFO 0x0401020E

#define OID_WAN_CO_GET_INFO 0x04010180
#define OID_WAN_CO_SET_LINK_INFO 0x04010181
#define OID_WAN_CO_GET_LINK_INFO 0x04010182
#define OID_WAN_CO_GET_COMP_INFO 0x04010280
#define OID_WAN_CO_SET_COMP_INFO 0x04010281
#define OID_WAN_CO_GET_STATS_INFO 0x04010282

#define OID_LTALK_CURRENT_NODE_ID 0x05010102

#define OID_LTALK_IN_BROADCASTS 0x05020101
#define OID_LTALK_IN_LENGTH_ERRORS 0x05020102

#define OID_LTALK_OUT_NO_HANDLERS 0x05020201
#define OID_LTALK_COLLISIONS 0x05020202
#define OID_LTALK_DEFERS 0x05020203
#define OID_LTALK_NO_DATA_ERRORS 0x05020204
#define OID_LTALK_RANDOM_CTS_ERRORS 0x05020205
#define OID_LTALK_FCS_ERRORS 0x05020206

#define OID_ARCNET_PERMANENT_ADDRESS 0x06010101
#define OID_ARCNET_CURRENT_ADDRESS 0x06010102

#define OID_ARCNET_RECONFIGURATIONS 0x06020201

#define OID_TAPI_ACCEPT 0x07030101
#define OID_TAPI_ANSWER 0x07030102
#define OID_TAPI_CLOSE 0x07030103
#define OID_TAPI_CLOSE_CALL 0x07030104
#define OID_TAPI_CONDITIONAL_MEDIA_DETECTION 0x07030105
#define OID_TAPI_CONFIG_DIALOG 0x07030106
#define OID_TAPI_DEV_SPECIFIC 0x07030107
#define OID_TAPI_DIAL 0x07030108
#define OID_TAPI_DROP 0x07030109
#define OID_TAPI_GET_ADDRESS_CAPS 0x0703010A
#define OID_TAPI_GET_ADDRESS_ID 0x0703010B
#define OID_TAPI_GET_ADDRESS_STATUS 0x0703010C
#define OID_TAPI_GET_CALL_ADDRESS_ID 0x0703010D
#define OID_TAPI_GET_CALL_INFO 0x0703010E
#define OID_TAPI_GET_CALL_STATUS 0x0703010F
#define OID_TAPI_GET_DEV_CAPS 0x07030110
#define OID_TAPI_GET_DEV_CONFIG 0x07030111
#define OID_TAPI_GET_EXTENSION_ID 0x07030112
#define OID_TAPI_GET_ID 0x07030113
#define OID_TAPI_GET_LINE_DEV_STATUS 0x07030114
#define OID_TAPI_MAKE_CALL 0x07030115
#define OID_TAPI_NEGOTIATE_EXT_VERSION 0x07030116
#define OID_TAPI_OPEN 0x07030117
#define OID_TAPI_PROVIDER_INITIALIZE 0x07030118
#define OID_TAPI_PROVIDER_SHUTDOWN 0x07030119
#define OID_TAPI_SECURE_CALL 0x0703011A
#define OID_TAPI_SELECT_EXT_VERSION 0x0703011B
#define OID_TAPI_SEND_USER_USER_INFO 0x0703011C
#define OID_TAPI_SET_APP_SPECIFIC 0x0703011D
#define OID_TAPI_SET_CALL_PARAMS 0x0703011E
#define OID_TAPI_SET_DEFAULT_MEDIA_DETECTION 0x0703011F
#define OID_TAPI_SET_DEV_CONFIG 0x07030120
#define OID_TAPI_SET_MEDIA_MODE 0x07030121
#define OID_TAPI_SET_STATUS_MESSAGES 0x07030122
#define OID_TAPI_GATHER_DIGITS 0x07030123
#define OID_TAPI_MONITOR_DIGITS 0x07030124

#define OID_ATM_SUPPORTED_VC_RATES 0x08010101
#define OID_ATM_SUPPORTED_SERVICE_CATEGORY 0x08010102
#define OID_ATM_SUPPORTED_AAL_TYPES 0x08010103
#define OID_ATM_HW_CURRENT_ADDRESS 0x08010104
#define OID_ATM_MAX_ACTIVE_VCS 0x08010105
#define OID_ATM_MAX_ACTIVE_VCI_BITS 0x08010106
#define OID_ATM_MAX_ACTIVE_VPI_BITS 0x08010107
#define OID_ATM_MAX_AAL0_PACKET_SIZE 0x08010108
#define OID_ATM_MAX_AAL1_PACKET_SIZE 0x08010109
#define OID_ATM_MAX_AAL34_PACKET_SIZE 0x0801010A
#define OID_ATM_MAX_AAL5_PACKET_SIZE 0x0801010B

#define OID_ATM_SIGNALING_VPIVCI 0x08010201
#define OID_ATM_ASSIGNED_VPI 0x08010202
#define OID_ATM_ACQUIRE_ACCESS_NET_RESOURCES 0x08010203
#define OID_ATM_RELEASE_ACCESS_NET_RESOURCES 0x08010204
#define OID_ATM_ILMI_VPIVCI 0x08010205
#define OID_ATM_DIGITAL_BROADCAST_VPIVCI 0x08010206
#define OID_ATM_GET_NEAREST_FLOW 0x08010207
#define OID_ATM_ALIGNMENT_REQUIRED 0x08010208
#define OID_ATM_LECS_ADDRESS 0x08010209
#define OID_ATM_SERVICE_ADDRESS 0x0801020A

#define OID_ATM_CALL_PROCEEDING 0x0801020B
#define OID_ATM_CALL_ALERTING 0x0801020C
#define OID_ATM_PARTY_ALERTING 0x0801020D
#define OID_ATM_CALL_NOTIFY 0x0801020E

#define OID_ATM_MY_IP_NM_ADDRESS 0x0801020F

#define OID_ATM_RCV_CELLS_OK 0x08020101
#define OID_ATM_XMIT_CELLS_OK 0x08020102
#define OID_ATM_RCV_CELLS_DROPPED 0x08020103

#define OID_ATM_RCV_INVALID_VPI_VCI 0x08020201
#define OID_ATM_CELLS_HEC_ERROR 0x08020202
#define OID_ATM_RCV_REASSEMBLY_ERROR 0x08020203

#define OID_WW_GEN_NETWORK_TYPES_SUPPORTED 0x09010101
#define OID_WW_GEN_NETWORK_TYPE_IN_USE 0x09010102
#define OID_WW_GEN_HEADER_FORMATS_SUPPORTED 0x09010103
#define OID_WW_GEN_HEADER_FORMAT_IN_USE 0x09010104
#define OID_WW_GEN_INDICATION_REQUEST 0x09010105
#define OID_WW_GEN_DEVICE_INFO 0x09010106
#define OID_WW_GEN_OPERATION_MODE 0x09010107
#define OID_WW_GEN_LOCK_STATUS 0x09010108
#define OID_WW_GEN_DISABLE_TRANSMITTER 0x09010109
#define OID_WW_GEN_NETWORK_ID 0x0901010A
#define OID_WW_GEN_PERMANENT_ADDRESS 0x0901010B
#define OID_WW_GEN_CURRENT_ADDRESS 0x0901010C
#define OID_WW_GEN_SUSPEND_DRIVER 0x0901010D
#define OID_WW_GEN_BASESTATION_ID 0x0901010E
#define OID_WW_GEN_CHANNEL_ID 0x0901010F
#define OID_WW_GEN_ENCRYPTION_SUPPORTED 0x09010110
#define OID_WW_GEN_ENCRYPTION_IN_USE 0x09010111
#define OID_WW_GEN_ENCRYPTION_STATE 0x09010112
#define OID_WW_GEN_CHANNEL_QUALITY 0x09010113
#define OID_WW_GEN_REGISTRATION_STATUS 0x09010114
#define OID_WW_GEN_RADIO_LINK_SPEED 0x09010115
#define OID_WW_GEN_LATENCY 0x09010116
#define OID_WW_GEN_BATTERY_LEVEL 0x09010117
#define OID_WW_GEN_EXTERNAL_POWER 0x09010118

#define OID_WW_GEN_PING_ADDRESS 0x09010201
#define OID_WW_GEN_RSSI 0x09010202
#define OID_WW_GEN_SIM_STATUS 0x09010203
#define OID_WW_GEN_ENABLE_SIM_PIN 0x09010204
#define OID_WW_GEN_CHANGE_SIM_PIN 0x09010205
#define OID_WW_GEN_SIM_PUK 0x09010206
#define OID_WW_GEN_SIM_EXCEPTION 0x09010207

#define OID_WW_MBX_SUBADDR 0x09050101

#define OID_WW_MBX_FLEXLIST 0x09050103
#define OID_WW_MBX_GROUPLIST 0x09050104
#define OID_WW_MBX_TRAFFIC_AREA 0x09050105
#define OID_WW_MBX_LIVE_DIE 0x09050106
#define OID_WW_MBX_TEMP_DEFAULTLIST 0x09050107

#define OID_WW_PIN_LOC_AUTHORIZE 0x09090101
#define OID_WW_PIN_LAST_LOCATION 0x09090102
#define OID_WW_PIN_LOC_FIX 0x09090103

#define OID_WW_CDPD_SPNI 0x090D0101
#define OID_WW_CDPD_WASI 0x090D0102
#define OID_WW_CDPD_AREA_COLOR 0x090D0103
#define OID_WW_CDPD_TX_POWER_LEVEL 0x090D0104
#define OID_WW_CDPD_EID 0x090D0105
#define OID_WW_CDPD_HEADER_COMPRESSION 0x090D0106
#define OID_WW_CDPD_DATA_COMPRESSION 0x090D0107
#define OID_WW_CDPD_CHANNEL_SELECT 0x090D0108
#define OID_WW_CDPD_CHANNEL_STATE 0x090D0109
#define OID_WW_CDPD_NEI 0x090D010A
#define OID_WW_CDPD_NEI_STATE 0x090D010B
#define OID_WW_CDPD_SERVICE_PROVIDER_IDENTIFIER 0x090D010C
#define OID_WW_CDPD_SLEEP_MODE 0x090D010D

#define OID_WW_CDPD_CIRCUIT_SWITCHED 0x090D010E

#define OID_WW_CDPD_TEI 0x090D010F
#define OID_WW_CDPD_RSSI 0x090D0110

#define OID_WW_CDPD_CS_SERVICE_PREFERENCE 0x090D0111
#define OID_WW_CDPD_CS_SERVICE_STATUS 0x090D0112
#define OID_WW_CDPD_CS_INFO 0x090D0113
#define OID_WW_CDPD_CS_SUSPEND 0x090D0114
#define OID_WW_CDPD_CS_DEFAULT_DIAL_CODE 0x090D0115
#define OID_WW_CDPD_CS_CALLBACK 0x090D0116
#define OID_WW_CDPD_CS_SID_LIST 0x090D0117
#define OID_WW_CDPD_CS_CONFIGURATION 0x090D0118

#define OID_WW_ARD_SNDCP 0x09110101
#define OID_WW_ARD_TMLY_MSG 0x09110102
#define OID_WW_ARD_DATAGRAM 0x09110103

#define OID_WW_TAC_COMPRESSION 0x09150101

#define OID_WW_TAC_SET_CONFIG 0x09150102
#define OID_WW_TAC_GET_STATUS 0x09150103
#define OID_WW_TAC_USER_HEADER 0x09150104

#define OID_WW_TAC_UNIQUE_SDU_TAG 0x09150105
#define OID_WW_TAC_SEND_COMMAND 0x09150106
#define OID_WW_TAC_GET_RESPONSE 0x09150107
#define OID_WW_TAC_DISABLE_RECEIVER 0x09150108
#define OID_WW_TAC_ANTENNA_MODE 0x09150109
#define OID_WW_TAC_FLUSH_DATA 0x0915010A
#define OID_WW_TAC_SHUTDOWN_DEVICE 0x0915010B
#define OID_WW_TAC_DEVICE_EXCEPTION 0x0915010C
#define OID_WW_TAC_RECEIVE_EXCEPTION 0x0915010D
#define OID_WW_TAC_BUFFER_EXCEPTION 0x0915010E
#define OID_WW_TAC_BATTERY_EXCEPTION 0x0915010F
#define OID_WW_TAC_TRANSMITTER_KEYED 0x09150110
#define OID_WW_TAC_SYSTEM_TABLE 0x09150111
#define OID_WW_TAC_CHANNEL_TABLE 0x09150112
#define OID_WW_TAC_DCHANNEL_TABLE 0x09150113
#define OID_WW_TAC_RECEIVE_QUEUE_COUNT 0x09150114

#define OID_WW_TAC_STATISTICS 0x09160101

#define OID_WW_MET_FUNCTION 0x09190101

#define OID_802_11_BSSID 0x0D010101
#define OID_802_11_SSID 0x0D010102
#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203
#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204
#define OID_802_11_TX_POWER_LEVEL 0x0D010205
#define OID_802_11_RSSI 0x0D010206
#define OID_802_11_RSSI_TRIGGER 0x0D010207
#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108
#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209
#define OID_802_11_RTS_THRESHOLD 0x0D01020A
#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B
#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C
#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D
#define OID_802_11_SUPPORTED_RATES 0x0D01020E
#define OID_802_11_DESIRED_RATES 0x0D010210
#define OID_802_11_CONFIGURATION 0x0D010211
#define OID_802_11_STATISTICS 0x0D020212
#define OID_802_11_ADD_WEP 0x0D010113
#define OID_802_11_REMOVE_WEP 0x0D010114
#define OID_802_11_DISASSOCIATE 0x0D010115
#define OID_802_11_POWER_MODE 0x0D010216
#define OID_802_11_BSSID_LIST 0x0D010217
#define OID_802_11_AUTHENTICATION_MODE 0x0D010118
#define OID_802_11_PRIVACY_FILTER 0x0D010119
#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A
#define OID_802_11_WEP_STATUS 0x0D01011B

#define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS
#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C

#define OID_802_11_ADD_KEY 0x0D01011D
#define OID_802_11_REMOVE_KEY 0x0D01011E
#define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F
#define OID_802_11_TEST 0x0D010120
#define OID_802_11_MEDIA_STREAM_MODE 0x0D010121

#define NDIS_802_11_LENGTH_SSID 32
#define NDIS_802_11_LENGTH_RATES 8
#define NDIS_802_11_LENGTH_RATES_EX 16

  typedef enum _NDIS_802_11_STATUS_TYPE {
    Ndis802_11StatusType_Authentication,Ndis802_11StatusType_MediaStreamMode,Ndis802_11StatusTypeMax
  } NDIS_802_11_STATUS_TYPE,*PNDIS_802_11_STATUS_TYPE;

  typedef UCHAR NDIS_802_11_MAC_ADDRESS[6];

  typedef struct _NDIS_802_11_STATUS_INDICATION {
    NDIS_802_11_STATUS_TYPE StatusType;
  } NDIS_802_11_STATUS_INDICATION,*PNDIS_802_11_STATUS_INDICATION;

#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS 0x0f
#define NDIS_802_11_AUTH_REQUEST_REAUTH 0x01
#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE 0x02
#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR 0x06
#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR 0x0E

  typedef struct _NDIS_802_11_AUTHENTICATION_REQUEST {
    ULONG Length;
    NDIS_802_11_MAC_ADDRESS Bssid;
    ULONG Flags;
  } NDIS_802_11_AUTHENTICATION_REQUEST,*PNDIS_802_11_AUTHENTICATION_REQUEST;

  typedef enum _NDIS_802_11_NETWORK_TYPE {
    Ndis802_11FH,Ndis802_11DS,Ndis802_11OFDM5,Ndis802_11OFDM24,Ndis802_11NetworkTypeMax
  } NDIS_802_11_NETWORK_TYPE,*PNDIS_802_11_NETWORK_TYPE;

  typedef struct _NDIS_802_11_NETWORK_TYPE_LIST {
    ULONG NumberOfItems;
    NDIS_802_11_NETWORK_TYPE NetworkType [1];
  } NDIS_802_11_NETWORK_TYPE_LIST,*PNDIS_802_11_NETWORK_TYPE_LIST;

  typedef enum _NDIS_802_11_POWER_MODE {
    Ndis802_11PowerModeCAM,Ndis802_11PowerModeMAX_PSP,Ndis802_11PowerModeFast_PSP,Ndis802_11PowerModeMax
  } NDIS_802_11_POWER_MODE,*PNDIS_802_11_POWER_MODE;

  typedef ULONG NDIS_802_11_TX_POWER_LEVEL;
  typedef LONG NDIS_802_11_RSSI;

  typedef struct _NDIS_802_11_CONFIGURATION_FH {
    ULONG Length;
    ULONG HopPattern;
    ULONG HopSet;
    ULONG DwellTime;
  } NDIS_802_11_CONFIGURATION_FH,*PNDIS_802_11_CONFIGURATION_FH;

  typedef struct _NDIS_802_11_CONFIGURATION {
    ULONG Length;
    ULONG BeaconPeriod;
    ULONG ATIMWindow;
    ULONG DSConfig;
    NDIS_802_11_CONFIGURATION_FH FHConfig;
  } NDIS_802_11_CONFIGURATION,*PNDIS_802_11_CONFIGURATION;

  typedef struct _NDIS_802_11_STATISTICS {
    ULONG Length;
    LARGE_INTEGER TransmittedFragmentCount;
    LARGE_INTEGER MulticastTransmittedFrameCount;
    LARGE_INTEGER FailedCount;
    LARGE_INTEGER RetryCount;
    LARGE_INTEGER MultipleRetryCount;
    LARGE_INTEGER RTSSuccessCount;
    LARGE_INTEGER RTSFailureCount;
    LARGE_INTEGER ACKFailureCount;
    LARGE_INTEGER FrameDuplicateCount;
    LARGE_INTEGER ReceivedFragmentCount;
    LARGE_INTEGER MulticastReceivedFrameCount;
    LARGE_INTEGER FCSErrorCount;
  } NDIS_802_11_STATISTICS,*PNDIS_802_11_STATISTICS;

  typedef ULONG NDIS_802_11_KEY_INDEX;
  typedef ULONGLONG NDIS_802_11_KEY_RSC;

  typedef struct _NDIS_802_11_KEY {
    ULONG Length;
    ULONG KeyIndex;
    ULONG KeyLength;
    NDIS_802_11_MAC_ADDRESS BSSID;
    NDIS_802_11_KEY_RSC KeyRSC;
    UCHAR KeyMaterial[1];
  } NDIS_802_11_KEY,*PNDIS_802_11_KEY;

  typedef struct _NDIS_802_11_REMOVE_KEY {
    ULONG Length;
    ULONG KeyIndex;
    NDIS_802_11_MAC_ADDRESS BSSID;
  } NDIS_802_11_REMOVE_KEY,*PNDIS_802_11_REMOVE_KEY;

  typedef struct _NDIS_802_11_WEP {
    ULONG Length;
    ULONG KeyIndex;
    ULONG KeyLength;
    UCHAR KeyMaterial[1];
  } NDIS_802_11_WEP,*PNDIS_802_11_WEP;

  typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE {
    Ndis802_11IBSS,Ndis802_11Infrastructure,Ndis802_11AutoUnknown,Ndis802_11InfrastructureMax
  } NDIS_802_11_NETWORK_INFRASTRUCTURE,*PNDIS_802_11_NETWORK_INFRASTRUCTURE;

  typedef enum _NDIS_802_11_AUTHENTICATION_MODE {
    Ndis802_11AuthModeOpen,Ndis802_11AuthModeShared,Ndis802_11AuthModeAutoSwitch,Ndis802_11AuthModeWPA,Ndis802_11AuthModeWPAPSK,
    Ndis802_11AuthModeWPANone,Ndis802_11AuthModeMax
  } NDIS_802_11_AUTHENTICATION_MODE,*PNDIS_802_11_AUTHENTICATION_MODE;

  typedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES];
  typedef UCHAR NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX];

  typedef struct _NDIS_802_11_SSID {
    ULONG SsidLength;
    UCHAR Ssid[NDIS_802_11_LENGTH_SSID];
  } NDIS_802_11_SSID,*PNDIS_802_11_SSID;

  typedef struct _NDIS_WLAN_BSSID {
    ULONG Length;
    NDIS_802_11_MAC_ADDRESS MacAddress;
    UCHAR Reserved[2];
    NDIS_802_11_SSID Ssid;
    ULONG Privacy;
    NDIS_802_11_RSSI Rssi;
    NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
    NDIS_802_11_CONFIGURATION Configuration;
    NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
    NDIS_802_11_RATES SupportedRates;
  } NDIS_WLAN_BSSID,*PNDIS_WLAN_BSSID;

  typedef struct _NDIS_802_11_BSSID_LIST {
    ULONG NumberOfItems;
    NDIS_WLAN_BSSID Bssid[1];
  } NDIS_802_11_BSSID_LIST,*PNDIS_802_11_BSSID_LIST;

  typedef struct _NDIS_WLAN_BSSID_EX {
    ULONG Length;
    NDIS_802_11_MAC_ADDRESS MacAddress;
    UCHAR Reserved[2];
    NDIS_802_11_SSID Ssid;
    ULONG Privacy;
    NDIS_802_11_RSSI Rssi;
    NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
    NDIS_802_11_CONFIGURATION Configuration;
    NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
    NDIS_802_11_RATES_EX SupportedRates;
    ULONG IELength;
    UCHAR IEs[1];
  } NDIS_WLAN_BSSID_EX,*PNDIS_WLAN_BSSID_EX;

  typedef struct _NDIS_802_11_BSSID_LIST_EX {
    ULONG NumberOfItems;
    NDIS_WLAN_BSSID_EX Bssid[1];
  } NDIS_802_11_BSSID_LIST_EX,*PNDIS_802_11_BSSID_LIST_EX;

  typedef struct _NDIS_802_11_FIXED_IEs {
    UCHAR Timestamp[8];
    USHORT BeaconInterval;
    USHORT Capabilities;
  } NDIS_802_11_FIXED_IEs,*PNDIS_802_11_FIXED_IEs;

  typedef struct _NDIS_802_11_VARIABLE_IEs {
    UCHAR ElementID;
    UCHAR Length;
    UCHAR data[1];
  } NDIS_802_11_VARIABLE_IEs,*PNDIS_802_11_VARIABLE_IEs;

  typedef ULONG NDIS_802_11_FRAGMENTATION_THRESHOLD;
  typedef ULONG NDIS_802_11_RTS_THRESHOLD;
  typedef ULONG NDIS_802_11_ANTENNA;

  typedef enum _NDIS_802_11_PRIVACY_FILTER {
    Ndis802_11PrivFilterAcceptAll,Ndis802_11PrivFilter8021xWEP
  } NDIS_802_11_PRIVACY_FILTER,*PNDIS_802_11_PRIVACY_FILTER;

  typedef enum _NDIS_802_11_WEP_STATUS {
    Ndis802_11WEPEnabled,Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,Ndis802_11WEPDisabled,Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,
    Ndis802_11WEPKeyAbsent,Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,Ndis802_11WEPNotSupported,
    Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,Ndis802_11Encryption2Enabled,Ndis802_11Encryption2KeyAbsent,
    Ndis802_11Encryption3Enabled,Ndis802_11Encryption3KeyAbsent
  } NDIS_802_11_WEP_STATUS,*PNDIS_802_11_WEP_STATUS,NDIS_802_11_ENCRYPTION_STATUS,*PNDIS_802_11_ENCRYPTION_STATUS;

  typedef enum _NDIS_802_11_RELOAD_DEFAULTS {
    Ndis802_11ReloadWEPKeys
  } NDIS_802_11_RELOAD_DEFAULTS,*PNDIS_802_11_RELOAD_DEFAULTS;

#define NDIS_802_11_AI_REQFI_CAPABILITIES 1
#define NDIS_802_11_AI_REQFI_LISTENINTERVAL 2
#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS 4

#define NDIS_802_11_AI_RESFI_CAPABILITIES 1
#define NDIS_802_11_AI_RESFI_STATUSCODE 2
#define NDIS_802_11_AI_RESFI_ASSOCIATIONID 4

  typedef struct _NDIS_802_11_AI_REQFI {
    USHORT Capabilities;
    USHORT ListenInterval;
    NDIS_802_11_MAC_ADDRESS CurrentAPAddress;
  } NDIS_802_11_AI_REQFI,*PNDIS_802_11_AI_REQFI;

  typedef struct _NDIS_802_11_AI_RESFI {
    USHORT Capabilities;
    USHORT StatusCode;
    USHORT AssociationId;
  } NDIS_802_11_AI_RESFI,*PNDIS_802_11_AI_RESFI;

  typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION {
    ULONG Length;
    USHORT AvailableRequestFixedIEs;
    NDIS_802_11_AI_REQFI RequestFixedIEs;
    ULONG RequestIELength;
    ULONG OffsetRequestIEs;
    USHORT AvailableResponseFixedIEs;
    NDIS_802_11_AI_RESFI ResponseFixedIEs;
    ULONG ResponseIELength;
    ULONG OffsetResponseIEs;
  } NDIS_802_11_ASSOCIATION_INFORMATION,*PNDIS_802_11_ASSOCIATION_INFORMATION;

  typedef struct _NDIS_802_11_AUTHENTICATION_EVENT {
    NDIS_802_11_STATUS_INDICATION Status;
    NDIS_802_11_AUTHENTICATION_REQUEST Request[1];
  } NDIS_802_11_AUTHENTICATION_EVENT,*PNDIS_802_11_AUTHENTICATION_EVENT;

  typedef struct _NDIS_802_11_TEST {
    ULONG Length;
    ULONG Type;
    union {
      NDIS_802_11_AUTHENTICATION_EVENT AuthenticationEvent;
      NDIS_802_11_RSSI RssiTrigger;
    };
  } NDIS_802_11_TEST,*PNDIS_802_11_TEST;

  typedef enum _NDIS_802_11_MEDIA_STREAM_MODE {
    Ndis802_11MediaStreamOff,Ndis802_11MediaStreamOn
  } NDIS_802_11_MEDIA_STREAM_MODE,*PNDIS_802_11_MEDIA_STREAM_MODE;

#define OID_IRDA_RECEIVING 0x0A010100
#define OID_IRDA_TURNAROUND_TIME 0x0A010101
#define OID_IRDA_SUPPORTED_SPEEDS 0x0A010102
#define OID_IRDA_LINK_SPEED 0x0A010103
#define OID_IRDA_MEDIA_BUSY 0x0A010104

#define OID_IRDA_EXTRA_RCV_BOFS 0x0A010200
#define OID_IRDA_RATE_SNIFF 0x0A010201
#define OID_IRDA_UNICAST_LIST 0x0A010202
#define OID_IRDA_MAX_UNICAST_LIST_SIZE 0x0A010203
#define OID_IRDA_MAX_RECEIVE_WINDOW_SIZE 0x0A010204
#define OID_IRDA_MAX_SEND_WINDOW_SIZE 0x0A010205
#define OID_IRDA_RESERVED1 0x0A01020A
#define OID_IRDA_RESERVED2 0x0A01020F

#define OID_BPC_ADAPTER_CAPS 0x0B010100
#define OID_BPC_DEVICES 0x0B010101
#define OID_BPC_DEVICE_CAPS 0x0B010102
#define OID_BPC_DEVICE_SETTINGS 0x0B010103
#define OID_BPC_CONNECTION_STATUS 0x0B010104
#define OID_BPC_ADDRESS_COMPARE 0x0B010105
#define OID_BPC_PROGRAM_GUIDE 0x0B010106
#define OID_BPC_LAST_ERROR 0x0B020107
#define OID_BPC_POOL 0x0B010108

#define OID_BPC_PROVIDER_SPECIFIC 0x0B020109
#define OID_BPC_ADAPTER_SPECIFIC 0x0B02010A

#define OID_BPC_CONNECT 0x0B01010B
#define OID_BPC_COMMIT 0x0B01010C
#define OID_BPC_DISCONNECT 0x0B01010D
#define OID_BPC_CONNECTION_ENABLE 0x0B01010E
#define OID_BPC_POOL_RESERVE 0x0B01010F
#define OID_BPC_POOL_RETURN 0x0B010110
#define OID_BPC_FORCE_RECEIVE 0x0B010111

#define OID_BPC_LAST 0x0B020112

#define OID_1394_LOCAL_NODE_INFO 0x0C010101
#define OID_1394_VC_INFO 0x0C010102

#define OID_CO_ADD_PVC 0xFE000001
#define OID_CO_DELETE_PVC 0xFE000002
#define OID_CO_GET_CALL_INFORMATION 0xFE000003
#define OID_CO_ADD_ADDRESS 0xFE000004
#define OID_CO_DELETE_ADDRESS 0xFE000005
#define OID_CO_GET_ADDRESSES 0xFE000006
#define OID_CO_ADDRESS_CHANGE 0xFE000007
#define OID_CO_SIGNALING_ENABLED 0xFE000008
#define OID_CO_SIGNALING_DISABLED 0xFE000009
#define OID_CO_AF_CLOSE 0xFE00000A

#define OID_CO_TAPI_CM_CAPS 0xFE001001
#define OID_CO_TAPI_LINE_CAPS 0xFE001002
#define OID_CO_TAPI_ADDRESS_CAPS 0xFE001003
#define OID_CO_TAPI_TRANSLATE_TAPI_CALLPARAMS 0xFE001004
#define OID_CO_TAPI_TRANSLATE_NDIS_CALLPARAMS 0xFE001005
#define OID_CO_TAPI_TRANSLATE_TAPI_SAP 0xFE001006
#define OID_CO_TAPI_GET_CALL_DIAGNOSTICS 0xFE001007
#define OID_CO_TAPI_REPORT_DIGITS 0xFE001008
#define OID_CO_TAPI_DONT_REPORT_DIGITS 0xFE001009

#define OID_PNP_CAPABILITIES 0xFD010100
#define OID_PNP_SET_POWER 0xFD010101
#define OID_PNP_QUERY_POWER 0xFD010102
#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103
#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104
#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105
#define OID_PNP_ENABLE_WAKE_UP 0xFD010106

#define OID_PNP_WAKE_UP_OK 0xFD020200
#define OID_PNP_WAKE_UP_ERROR 0xFD020201

#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001
#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002
#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004

#define OID_TCP_TASK_OFFLOAD 0xFC010201
#define OID_TCP_TASK_IPSEC_ADD_SA 0xFC010202
#define OID_TCP_TASK_IPSEC_DELETE_SA 0xFC010203
#define OID_TCP_SAN_SUPPORT 0xFC010204
#define OID_TCP_TASK_IPSEC_ADD_UDPESP_SA 0xFC010205
#define OID_TCP_TASK_IPSEC_DELETE_UDPESP_SA 0xFC010206

#define OID_FFP_SUPPORT 0xFC010210
#define OID_FFP_FLUSH 0xFC010211
#define OID_FFP_CONTROL 0xFC010212
#define OID_FFP_PARAMS 0xFC010213
#define OID_FFP_DATA 0xFC010214

#define OID_FFP_DRIVER_STATS 0xFC020210
#define OID_FFP_ADAPTER_STATS 0xFC020211

#define OID_QOS_TC_SUPPORTED 0xFB010100
#define OID_QOS_REMAINING_BANDWIDTH 0xFB010101
#define OID_QOS_ISSLOW_FLOW 0xFB010102
#define OID_QOS_BESTEFFORT_BANDWIDTH 0xFB010103
#define OID_QOS_LATENCY 0xFB010104
#define OID_QOS_FLOW_IP_CONFORMING 0xFB010105
#define OID_QOS_FLOW_COUNT 0xFB010106
#define OID_QOS_NON_BESTEFFORT_LIMIT 0xFB010107
#define OID_QOS_SCHEDULING_PROFILES_SUPPORTED 0xFB010108
#define OID_QOS_CURRENT_SCHEDULING_PROFILE 0xFB010109
#define OID_QOS_TIMER_RESOLUTION 0xFB01010A
#define OID_QOS_STATISTICS_BUFFER 0xFB01010B
#define OID_QOS_HIERARCHY_CLASS 0xFB01010C
#define OID_QOS_FLOW_MODE 0xFB01010D
#define OID_QOS_ISSLOW_FRAGMENT_SIZE 0xFB01010E
#define OID_QOS_FLOW_IP_NONCONFORMING 0xFB01010F
#define OID_QOS_FLOW_8021P_CONFORMING 0xFB010110
#define OID_QOS_FLOW_8021P_NONCONFORMING 0xFB010111
#define OID_QOS_ENABLE_AVG_STATS 0xFB010112
#define OID_QOS_ENABLE_WINDOW_ADJUSTMENT 0xFB010113

  typedef struct NDIS_CO_DEVICE_PROFILE {
    NDIS_VAR_DATA_DESC DeviceDescription;
    NDIS_VAR_DATA_DESC DevSpecificInfo;
    ULONG ulTAPISupplementaryPassThru;
    ULONG ulAddressModes;
    ULONG ulNumAddresses;
    ULONG ulBearerModes;
    ULONG ulMaxTxRate;
    ULONG ulMinTxRate;
    ULONG ulMaxRxRate;
    ULONG ulMinRxRate;
    ULONG ulMediaModes;
    ULONG ulGenerateToneModes;
    ULONG ulGenerateToneMaxNumFreq;
    ULONG ulGenerateDigitModes;
    ULONG ulMonitorToneMaxNumFreq;
    ULONG ulMonitorToneMaxNumEntries;
    ULONG ulMonitorDigitModes;
    ULONG ulGatherDigitsMinTimeout;
    ULONG ulGatherDigitsMaxTimeout;
    ULONG ulDevCapFlags;
    ULONG ulMaxNumActiveCalls;
    ULONG ulAnswerMode;
    ULONG ulUUIAcceptSize;
    ULONG ulUUIAnswerSize;
    ULONG ulUUIMakeCallSize;
    ULONG ulUUIDropSize;
    ULONG ulUUISendUserUserInfoSize;
    ULONG ulUUICallInfoSize;
  } NDIS_CO_DEVICE_PROFILE,*PNDIS_CO_DEVICE_PROFILE;

  typedef ULONG IPAddr,IPMask;
  typedef ULONG SPI_TYPE;

  typedef enum _OFFLOAD_OPERATION_E {
    AUTHENTICATE = 1,ENCRYPT
  } OFFLOAD_OPERATION_E;

  typedef struct _OFFLOAD_ALGO_INFO {
    ULONG algoIdentifier;
    ULONG algoKeylen;
    ULONG algoRounds;
  } OFFLOAD_ALGO_INFO,*POFFLOAD_ALGO_INFO;

  typedef enum _OFFLOAD_CONF_ALGO {
    OFFLOAD_IPSEC_CONF_NONE,OFFLOAD_IPSEC_CONF_DES,OFFLOAD_IPSEC_CONF_RESERVED,OFFLOAD_IPSEC_CONF_3_DES,OFFLOAD_IPSEC_CONF_MAX
  } OFFLOAD_CONF_ALGO;

  typedef enum _OFFLOAD_INTEGRITY_ALGO {
    OFFLOAD_IPSEC_INTEGRITY_NONE,OFFLOAD_IPSEC_INTEGRITY_MD5,OFFLOAD_IPSEC_INTEGRITY_SHA,OFFLOAD_IPSEC_INTEGRITY_MAX
  } OFFLOAD_INTEGRITY_ALGO;

  typedef struct _OFFLOAD_SECURITY_ASSOCIATION {
    OFFLOAD_OPERATION_E Operation;
    SPI_TYPE SPI;
    OFFLOAD_ALGO_INFO IntegrityAlgo;
    OFFLOAD_ALGO_INFO ConfAlgo;
    OFFLOAD_ALGO_INFO Reserved;
  } OFFLOAD_SECURITY_ASSOCIATION,*POFFLOAD_SECURITY_ASSOCIATION;

#define OFFLOAD_MAX_SAS 3

#define OFFLOAD_INBOUND_SA 0x0001
#define OFFLOAD_OUTBOUND_SA 0x0002

  typedef struct _OFFLOAD_IPSEC_ADD_SA {
    IPAddr SrcAddr;
    IPMask SrcMask;
    IPAddr DestAddr;
    IPMask DestMask;
    ULONG Protocol;
    USHORT SrcPort;
    USHORT DestPort;
    IPAddr SrcTunnelAddr;
    IPAddr DestTunnelAddr;
    USHORT Flags;
    SHORT NumSAs;
    OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
    HANDLE OffloadHandle;
    ULONG KeyLen;
    UCHAR KeyMat[1];
  } OFFLOAD_IPSEC_ADD_SA,*POFFLOAD_IPSEC_ADD_SA;

  typedef struct _OFFLOAD_IPSEC_DELETE_SA {
    HANDLE OffloadHandle;
  } OFFLOAD_IPSEC_DELETE_SA,*POFFLOAD_IPSEC_DELETE_SA;

  typedef enum _UDP_ENCAP_TYPE {
    OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_IKE,OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_OTHER
  } UDP_ENCAP_TYPE,*PUDP_ENCAP_TYPE;

  typedef struct _OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY {
    UDP_ENCAP_TYPE UdpEncapType;
    USHORT DstEncapPort;
  } OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY,*POFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY;

  typedef struct _OFFLOAD_IPSEC_ADD_UDPESP_SA {
    IPAddr SrcAddr;
    IPMask SrcMask;
    IPAddr DstAddr;
    IPMask DstMask;
    ULONG Protocol;
    USHORT SrcPort;
    USHORT DstPort;
    IPAddr SrcTunnelAddr;
    IPAddr DstTunnelAddr;
    USHORT Flags;
    SHORT NumSAs;
    OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
    HANDLE OffloadHandle;
    OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY EncapTypeEntry;
    HANDLE EncapTypeEntryOffldHandle;
    ULONG KeyLen;
    UCHAR KeyMat[1];
  } OFFLOAD_IPSEC_ADD_UDPESP_SA,*POFFLOAD_IPSEC_ADD_UDPESP_SA;

  typedef struct _OFFLOAD_IPSEC_DELETE_UDPESP_SA {
    HANDLE OffloadHandle;
    HANDLE EncapTypeEntryOffldHandle;
  } OFFLOAD_IPSEC_DELETE_UDPESP_SA,*POFFLOAD_IPSEC_DELETE_UDPESP_SA;

  typedef ULONG NDIS_VLAN_ID;

  typedef enum _NDIS_MEDIUM {
    NdisMedium802_3,NdisMedium802_5,NdisMediumFddi,NdisMediumWan,NdisMediumLocalTalk,NdisMediumDix,NdisMediumArcnetRaw,NdisMediumArcnet878_2,
    NdisMediumAtm,NdisMediumWirelessWan,NdisMediumIrda,NdisMediumBpc,NdisMediumCoWan,NdisMedium1394,NdisMediumInfiniBand,NdisMediumMax
  } NDIS_MEDIUM,*PNDIS_MEDIUM;

  typedef enum _NDIS_PHYSICAL_MEDIUM {
    NdisPhysicalMediumUnspecified,NdisPhysicalMediumWirelessLan,NdisPhysicalMediumCableModem,NdisPhysicalMediumPhoneLine,
    NdisPhysicalMediumPowerLine,NdisPhysicalMediumDSL,NdisPhysicalMediumFibreChannel,NdisPhysicalMedium1394,NdisPhysicalMediumWirelessWan,
    NdisPhysicalMediumNative802_11,NdisPhysicalMediumBluetooth,NdisPhysicalMediumMax
  } NDIS_PHYSICAL_MEDIUM,*PNDIS_PHYSICAL_MEDIUM;

#define NDIS_PROTOCOL_ID_DEFAULT 0x00
#define NDIS_PROTOCOL_ID_TCP_IP 0x02
#define NDIS_PROTOCOL_ID_IPX 0x06
#define NDIS_PROTOCOL_ID_NBF 0x07
#define NDIS_PROTOCOL_ID_MAX 0x0F
#define NDIS_PROTOCOL_ID_MASK 0x0F

  typedef struct _TRANSPORT_HEADER_OFFSET {
    USHORT ProtocolType;
    USHORT HeaderOffset;
  } TRANSPORT_HEADER_OFFSET,*PTRANSPORT_HEADER_OFFSET;

  typedef struct _NETWORK_ADDRESS {
    USHORT AddressLength;
    USHORT AddressType;
    UCHAR Address[1];
  } NETWORK_ADDRESS,*PNETWORK_ADDRESS;

  typedef struct _NETWORK_ADDRESS_LIST {
    LONG AddressCount;
    USHORT AddressType;
    NETWORK_ADDRESS Address[1];
  } NETWORK_ADDRESS_LIST,*PNETWORK_ADDRESS_LIST;

  typedef struct _NETWORK_ADDRESS_IP {
    USHORT sin_port;
    ULONG in_addr;
    UCHAR sin_zero[8];
  } NETWORK_ADDRESS_IP,*PNETWORK_ADDRESS_IP;

#define NETWORK_ADDRESS_LENGTH_IP sizeof (NETWORK_ADDRESS_IP)

  typedef struct _NETWORK_ADDRESS_IPX {
    ULONG NetworkAddress;
    UCHAR NodeAddress[6];
    USHORT Socket;
  } NETWORK_ADDRESS_IPX,*PNETWORK_ADDRESS_IPX;

#define NETWORK_ADDRESS_LENGTH_IPX sizeof (NETWORK_ADDRESS_IPX)

  typedef enum _NDIS_HARDWARE_STATUS {
    NdisHardwareStatusReady,NdisHardwareStatusInitializing,NdisHardwareStatusReset,NdisHardwareStatusClosing,NdisHardwareStatusNotReady
  } NDIS_HARDWARE_STATUS,*PNDIS_HARDWARE_STATUS;

  typedef struct _GEN_GET_TIME_CAPS {
    ULONG Flags;
    ULONG ClockPrecision;
  } GEN_GET_TIME_CAPS,*PGEN_GET_TIME_CAPS;

#define READABLE_LOCAL_CLOCK 0x00000001
#define CLOCK_NETWORK_DERIVED 0x00000002
#define CLOCK_PRECISION 0x00000004
#define RECEIVE_TIME_INDICATION_CAPABLE 0x00000008
#define TIMED_SEND_CAPABLE 0x00000010
#define TIME_STAMP_CAPABLE 0x00000020

  typedef struct _GEN_GET_NETCARD_TIME {
    ULONGLONG ReadTime;
  } GEN_GET_NETCARD_TIME,*PGEN_GET_NETCARD_TIME;

  typedef struct _NDIS_PM_PACKET_PATTERN {
    ULONG Priority;
    ULONG Reserved;
    ULONG MaskSize;
    ULONG PatternOffset;
    ULONG PatternSize;
    ULONG PatternFlags;
  } NDIS_PM_PACKET_PATTERN,*PNDIS_PM_PACKET_PATTERN;

  typedef enum _NDIS_DEVICE_POWER_STATE {
    NdisDeviceStateUnspecified = 0,NdisDeviceStateD0,NdisDeviceStateD1,NdisDeviceStateD2,NdisDeviceStateD3,NdisDeviceStateMaximum
  } NDIS_DEVICE_POWER_STATE,*PNDIS_DEVICE_POWER_STATE;

  typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES {
    NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
    NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
    NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
  } NDIS_PM_WAKE_UP_CAPABILITIES,*PNDIS_PM_WAKE_UP_CAPABILITIES;

#define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001
#define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002
#define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004

  typedef struct _NDIS_PNP_CAPABILITIES {
    ULONG Flags;
    NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities;
  } NDIS_PNP_CAPABILITIES,*PNDIS_PNP_CAPABILITIES;

  typedef enum _NDIS_FDDI_ATTACHMENT_TYPE {
    NdisFddiTypeIsolated = 1,NdisFddiTypeLocalA,NdisFddiTypeLocalB,NdisFddiTypeLocalAB,NdisFddiTypeLocalS,NdisFddiTypeWrapA,
    NdisFddiTypeWrapB,NdisFddiTypeWrapAB,NdisFddiTypeWrapS,NdisFddiTypeCWrapA,NdisFddiTypeCWrapB,NdisFddiTypeCWrapS,NdisFddiTypeThrough
  } NDIS_FDDI_ATTACHMENT_TYPE,*PNDIS_FDDI_ATTACHMENT_TYPE;

  typedef enum _NDIS_FDDI_RING_MGT_STATE {
    NdisFddiRingIsolated = 1,NdisFddiRingNonOperational,NdisFddiRingOperational,NdisFddiRingDetect,NdisFddiRingNonOperationalDup,
    NdisFddiRingOperationalDup,NdisFddiRingDirected,NdisFddiRingTrace
  } NDIS_FDDI_RING_MGT_STATE,*PNDIS_FDDI_RING_MGT_STATE;

  typedef enum _NDIS_FDDI_LCONNECTION_STATE {
    NdisFddiStateOff = 1,NdisFddiStateBreak,NdisFddiStateTrace,NdisFddiStateConnect,NdisFddiStateNext,NdisFddiStateSignal,
    NdisFddiStateJoin,NdisFddiStateVerify,NdisFddiStateActive,NdisFddiStateMaintenance
  } NDIS_FDDI_LCONNECTION_STATE,*PNDIS_FDDI_LCONNECTION_STATE;

  typedef enum _NDIS_WAN_MEDIUM_SUBTYPE {
    NdisWanMediumHub,NdisWanMediumX_25,NdisWanMediumIsdn,NdisWanMediumSerial,NdisWanMediumFrameRelay,NdisWanMediumAtm,
    NdisWanMediumSonet,NdisWanMediumSW56K,NdisWanMediumPPTP,NdisWanMediumL2TP,NdisWanMediumIrda,NdisWanMediumParallel,NdisWanMediumPppoe
  } NDIS_WAN_MEDIUM_SUBTYPE,*PNDIS_WAN_MEDIUM_SUBTYPE;

  typedef enum _NDIS_WAN_HEADER_FORMAT {
    NdisWanHeaderNative,NdisWanHeaderEthernet
  } NDIS_WAN_HEADER_FORMAT,*PNDIS_WAN_HEADER_FORMAT;

  typedef enum _NDIS_WAN_QUALITY {
    NdisWanRaw,NdisWanErrorControl,NdisWanReliable
  } NDIS_WAN_QUALITY,*PNDIS_WAN_QUALITY;

  typedef struct _NDIS_WAN_PROTOCOL_CAPS {
    ULONG Flags;
    ULONG Reserved;
  } NDIS_WAN_PROTOCOL_CAPS,*PNDIS_WAN_PROTOCOL_CAPS;

#define WAN_PROTOCOL_KEEPS_STATS 0x00000001

  typedef enum _NDIS_802_5_RING_STATE {
    NdisRingStateOpened = 1,NdisRingStateClosed,NdisRingStateOpening,NdisRingStateClosing,NdisRingStateOpenFailure,NdisRingStateRingFailure
  } NDIS_802_5_RING_STATE,*PNDIS_802_5_RING_STATE;

  typedef enum _NDIS_MEDIA_STATE {
    NdisMediaStateConnected,NdisMediaStateDisconnected
  } NDIS_MEDIA_STATE,*PNDIS_MEDIA_STATE;

  typedef ULONG Priority_802_3;

  typedef struct _NDIS_CO_LINK_SPEED {
    ULONG Outbound;
    ULONG Inbound;
  } NDIS_CO_LINK_SPEED,*PNDIS_CO_LINK_SPEED;

#ifndef _NDIS_
  typedef int NDIS_STATUS,*PNDIS_STATUS;
#endif

  typedef struct _NDIS_GUID {
    GUID Guid;
    union {
      NDIS_OID Oid;
      NDIS_STATUS Status;
    };
    ULONG Size;
    ULONG Flags;
  } NDIS_GUID,*PNDIS_GUID;

#define fNDIS_GUID_TO_OID 0x00000001
#define fNDIS_GUID_TO_STATUS 0x00000002
#define fNDIS_GUID_ANSI_STRING 0x00000004
#define fNDIS_GUID_UNICODE_STRING 0x00000008
#define fNDIS_GUID_ARRAY 0x00000010
#define fNDIS_GUID_ALLOW_READ 0x00000020
#define fNDIS_GUID_ALLOW_WRITE 0x00000040

#define NDIS_PACKET_TYPE_DIRECTED 0x00000001
#define NDIS_PACKET_TYPE_MULTICAST 0x00000002
#define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004
#define NDIS_PACKET_TYPE_BROADCAST 0x00000008
#define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010
#define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020
#define NDIS_PACKET_TYPE_SMT 0x00000040
#define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080
#define NDIS_PACKET_TYPE_GROUP 0x00001000
#define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000
#define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000
#define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000

#define NDIS_RING_SIGNAL_LOSS 0x00008000
#define NDIS_RING_HARD_ERROR 0x00004000
#define NDIS_RING_SOFT_ERROR 0x00002000
#define NDIS_RING_TRANSMIT_BEACON 0x00001000
#define NDIS_RING_LOBE_WIRE_FAULT 0x00000800
#define NDIS_RING_AUTO_REMOVAL_ERROR 0x00000400
#define NDIS_RING_REMOVE_RECEIVED 0x00000200
#define NDIS_RING_COUNTER_OVERFLOW 0x00000100
#define NDIS_RING_SINGLE_STATION 0x00000080
#define NDIS_RING_RING_RECOVERY 0x00000040

#define NDIS_PROT_OPTION_ESTIMATED_LENGTH 0x00000001
#define NDIS_PROT_OPTION_NO_LOOPBACK 0x00000002
#define NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT 0x00000004
#define NDIS_PROT_OPTION_SEND_RESTRICTED 0x00000008

#define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001
#define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002
#define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004
#define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008
#define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010
#define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020
#define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040
#define NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00000080
#define NDIS_MAC_OPTION_RECEIVE_AT_DPC 0x00000100
#define NDIS_MAC_OPTION_8021Q_VLAN 0x00000200
#define NDIS_MAC_OPTION_RESERVED 0x80000000

#define NDIS_MEDIA_CAP_TRANSMIT 0x00000001
#define NDIS_MEDIA_CAP_RECEIVE 0x00000002

#define NDIS_CO_MAC_OPTION_DYNAMIC_LINK_SPEED 0x00000001

  typedef struct _NDIS_IRDA_PACKET_INFO {
    ULONG ExtraBOFs;
    ULONG MinTurnAroundTime;
  } NDIS_IRDA_PACKET_INFO,*PNDIS_IRDA_PACKET_INFO;

#ifdef WIRELESS_WAN

  typedef enum _NDIS_WW_NETWORK_TYPE {
    NdisWWGeneric,NdisWWMobitex,NdisWWPinpoint,NdisWWCDPD,NdisWWArdis,NdisWWDataTAC,NdisWWMetricom,NdisWWGSM,NdisWWCDMA,NdisWWTDMA,
    NdisWWAMPS,NdisWWInmarsat,NdisWWpACT,NdisWWFlex,NdisWWIDEN
  } NDIS_WW_NETWORK_TYPE;

  typedef enum _NDIS_WW_HEADER_FORMAT {
    NdisWWDIXEthernetFrames,NdisWWMPAKFrames,NdisWWRDLAPFrames,NdisWWMDC4800Frames,NdisWWNCLFrames
  } NDIS_WW_HEADER_FORMAT;

  typedef enum _NDIS_WW_ENCRYPTION_TYPE {
    NdisWWUnknownEncryption = -1,NdisWWNoEncryption,NdisWWDefaultEncryption,NdisWWDESEncryption,NdisWWRC2Encryption,NdisWWRC4Encryption,NdisWWRC5Encryption
  } NDIS_WW_ENCRYPTION_TYPE,*PNDIS_WW_ENCRYPTION_TYPE;

  typedef enum _WW_ADDRESS_FORMAT {
    WW_IEEE_ADDRESS = 0,WW_MOBITEX_MAN_ADDRESS,WW_DATATAC_RDLAP_ADDRESS,WW_DATATAC_MDC4800_ADDRESS,WW_DATATAC_RESERVED,WW_IPv4_ADDRESS,
    WW_IPv6_ADDRESS,WW_PROPRIETARY_ADDRESS
  } WW_ADDRESS_FORMAT;

  typedef enum _WW_GEN_SUM_EXCEPTION {
    SIM_STATUS_OK = 0,SIM_STATUS_ERROR,SIM_STATUS_MISSING,SIM_STATUS_NO_RESPONSE,SIM_STATUS_REMOVED,SIM_STATUS_CRYPT_ERROR,
    SIM_STATUS_AUTH_ERROR,SIM_STATUS_NEED_PIN,SIM_STATUS_NEED_PUK,SIM_STATUS_WRONG
  } WW_GEN_SIM_EXCEPTION;

  typedef struct _NDIS_WW_INDICATION_REQUEST {
    NDIS_OID Oid;
    ULONG uIndicationFlag;
    ULONG uApplicationToken;
    HANDLE hIndicationHandle;
    INT iPollingInterval;
    NDIS_VAR_DATA_DESC InitialValue;
    NDIS_VAR_DATA_DESC OIDIndicationValue;
    NDIS_VAR_DATA_DESC TriggerValue;
  } NDIS_WW_INDICATION_REQUEST,*PNDIS_WW_INDICATION_REQUEST;

#define OID_INDICATION_REQUEST_ENABLE 0x0000
#define OID_INDICATION_REQUEST_CANCEL 0x0001

  typedef struct _WW_DEVICE_INFO {
    NDIS_VAR_DATA_DESC Manufacturer;
    NDIS_VAR_DATA_DESC ModelNum;
    NDIS_VAR_DATA_DESC SWVersionNum;
    NDIS_VAR_DATA_DESC SerialNum;
  } WW_DEVICE_INFO,*PWW_DEVICE_INFO;

  typedef INT WW_OPERATION_MODE;
  typedef INT WW_LOCK_STATUS;
  typedef INT WW_DISABLE_TRANSMITTER;
  typedef NDIS_VAR_DATA_DESC WW_NETWORK_ID;
  typedef NDIS_VAR_DATA_DESC WW_PERMANENT_ADDRESS;

  typedef struct _WW_CURRENT_ADDRESS {
    NDIS_WW_HEADER_FORMAT Format;
    NDIS_VAR_DATA_DESC Address;
  } WW_CURRENT_ADDRESS,*PWW_CURRENT_ADDRESS;

  typedef BOOLEAN WW_SUSPEND_DRIVER;
  typedef NDIS_VAR_DATA_DESC WW_BASESTATION_ID;
  typedef NDIS_VAR_DATA_DESC WW_CHANNEL_ID;
  typedef BOOLEAN WW_ENCRYPTION_STATE;
  typedef INT WW_CHANNEL_QUALITY;
  typedef INT WW_REGISTRATION_STATUS;
  typedef ULONG WW_RADIO_LINK_SPEED;
  typedef ULONG WW_LATENCY;
  typedef INT WW_BATTERY_LEVEL;
  typedef INT WW_EXTERNAL_POWER;

  typedef struct _WW_PING_ADDRESS {
    WW_ADDRESS_FORMAT Format;
    NDIS_VAR_DATA_DESC TargetAddress;
    UINT uTime;
  } WW_PING_ADDRESS;

  typedef struct _WW_RECEIVE_SIGNAL_STRENGTH_INDICATOR {
    INT iDecibels;
    INT iFactor;
  } WW_RECEIVE_SIGNAL_STRENGTH_INDICATOR;

  typedef struct _WW_SIM_STATUS {
    BOOLEAN bHasSIM;
    BOOLEAN bBlocked;
    BOOLEAN bLocked;
    BOOLEAN bInitialized;
    UINT uCountdown;
  } WW_SIM_STATUS;

  typedef struct _WW_ENABLE_SIM_PIN {
    BOOLEAN bEnabled;
    NDIS_VAR_DATA_DESC CurrentPIN;
  } WW_ENABLE_SIM_PIN;

  typedef struct _WW_CHANGE_SIM_PIN {
    NDIS_VAR_DATA_DESC OldPIN;
    NDIS_VAR_DATA_DESC NewPIN;
  } WW_CHANGE_SIM_PIN;

  typedef NDIS_VAR_DATA_DESC WW_ENABLE_SIM_PUK;
  typedef NDIS_VAR_DATA_DESC WW_MET_FUNCTION;
  typedef BOOLEAN WW_TAC_COMPRESSION;

  typedef struct _WW_TAC_SETCONFIG {
    NDIS_VAR_DATA_DESC RCV_MODE;
    NDIS_VAR_DATA_DESC TX_CONTROL;
    NDIS_VAR_DATA_DESC RX_CONTROL;
    NDIS_VAR_DATA_DESC FLOW_CONTROL;
    NDIS_VAR_DATA_DESC RESET_CNF;
    NDIS_VAR_DATA_DESC READ_CNF;
  } WW_TAC_SETCONFIG,*PWW_TAC_SETCONFIG;

  typedef struct _WW_TAC_GETSTATUS {
    BOOLEAN Action;
    NDIS_VAR_DATA_DESC Command;
    NDIS_VAR_DATA_DESC Option;
    NDIS_VAR_DATA_DESC Response;
  } WW_TAC_GETSTATUS,*PWW_TAC_GETSTATUS;

  typedef NDIS_VAR_DATA_DESC WW_TAC_USERHEADER;

  typedef struct _WW_TAC_GET_RESPONSE {
    UINT SDUTag;
    NDIS_VAR_DATA_DESC Response;
  } WW_TAC_GET_RESPONSE;

  typedef INT WW_TAC_DISABLE_RECEIVER;
  typedef INT WW_TAC_ANTENNA_MODE;
  typedef INT WW_TAC_FLUSH_DATA;
  typedef INT WW_TAC_SHUTDOWN_DEVICE;
  typedef BOOLEAN WW_TAC_TRANSMITTER_KEYED;

  typedef struct _WW_TAC_SYSTEM_TABLE {
    UINT SystemCount;
    UCHAR ContryTable[32];
    UCHAR PrefixTable[32];
    UCHAR IDTable[32];
  } WW_TAC_SYSTEM_TABLE;

  typedef struct _WW_TAC_CHANNEL_TABLE {
    UINT ChannelCount;
    UCHAR ChannelTable[64];
    UCHAR AttrTable[64];
  } WW_TAC_CHANNEL_TABLE;

  typedef NDIS_VAR_DATA_DESC WW_TAC_STATISTICS;

  typedef struct _WW_ARD_SNDCP {
    NDIS_VAR_DATA_DESC Version;
    INT BlockSize;
    INT Window;
  } WW_ARD_SNDCP,*PWW_ARD_SNDCP;

  typedef BOOLEAN WW_ARD_CHANNEL_STATUS;

  typedef struct _WW_ARD_DATAGRAM {
    BOOLEAN LoadLevel;
    INT SessionTime;
    NDIS_VAR_DATA_DESC HostAddr;
    NDIS_VAR_DATA_DESC THostAddr;
  } WW_ARD_DATAGRAM,*PWW_ARD_DATAGRAM;

  typedef struct _WW_CDPD_SPNI {
    ULONG SPNI[10];
    INT OperatingMode;
  } WW_CDPD_SPNI,*PWW_CDPD_SPNI;

  typedef struct _WW_CDPD_WIDE_AREA_SERVICE_ID {
    ULONG WASI[10];
    INT OperatingMode;
  } WW_CDPD_WIDE_AREA_SERVICE_ID,*PWW_CDPD_WIDE_AREA_SERVICE_ID;

  typedef INT WW_CDPD_AREA_COLOR;
  typedef ULONG WW_CDPD_TX_POWER_LEVEL;
  typedef NDIS_VAR_DATA_DESC WW_CDPD_EID;
  typedef INT WW_CDPD_HEADER_COMPRESSION;
  typedef INT WW_CDPD_DATA_COMPRESSION;

  typedef struct _WW_CDPD_CHANNEL_SELECT {
    ULONG ChannelID;
    ULONG fixedDuration;
  } WW_CDPD_CHANNEL_SELECT,*PWW_CDPD_CHANNEL_SELECT;

  typedef enum _WW_CDPD_CHANNEL_STATE {
    CDPDChannelNotAvail,CDPDChannelScanning,CDPDChannelInitAcquired,CDPDChannelAcquired,CDPDChannelSleeping,CDPDChannelWaking,
    CDPDChannelCSDialing,CDPDChannelCSRedial,CDPDChannelCSAnswering,CDPDChannelCSConnected,CDPDChannelCSSuspended
  } WW_CDPD_CHANNEL_STATE,*PWW_CDPD_CHANNEL_STATE;

  typedef enum _WW_CDPD_NEI_FORMAT {
    CDPDNeiIPv4,CDPDNeiCLNP,CDPDNeiIPv6
  } WW_CDPD_NEI_FORMAT,*PWW_CDPD_NEI_FORMAT;

  typedef enum _WW_CDPD_NEI_TYPE {
    CDPDNeiIndividual,CDPDNeiMulticast,CDPDNeiBroadcast
  } WW_CDPD_NEI_TYPE;

  typedef struct _WW_CDPD_NEI {
    ULONG uNeiIndex;
    WW_CDPD_NEI_FORMAT NeiFormat;
    WW_CDPD_NEI_TYPE NeiType;
    WORD NeiGmid;
    NDIS_VAR_DATA_DESC NeiAddress;
  } WW_CDPD_NEI;

  typedef enum _WW_CDPD_NEI_STATE {
    CDPDUnknown,CDPDRegistered,CDPDDeregistered
  } WW_CDPD_NEI_STATE,*PWW_CDPD_NEI_STATE;

  typedef enum _WW_CDPD_NEI_SUB_STATE {
    CDPDPending,CDPDNoReason,CDPDMDISNotCapable,CDPDNEINotAuthorized,CDPDInsufficientAuth,CDPDUnsupportedAuth,CDPDUsageExceeded,
    CDPDDeniedThisNetwork
  } WW_CDPD_NEI_SUB_STATE;

  typedef struct _WW_CDPD_NEI_REG_STATE {
    ULONG uNeiIndex;
    WW_CDPD_NEI_STATE NeiState;
    WW_CDPD_NEI_SUB_STATE NeiSubState;
  } WW_CDPD_NEI_REG_STATE,*PWW_CDPD_NEI_REG_STATE;

  typedef struct _WW_CDPD_SERVICE_PROVIDER_ID {
    ULONG SPI[10];
    INT OperatingMode;
  } WW_CDPD_SERVICE_PROVIDER_ID,*PWW_CDPD_SERVICE_PROVIDER_ID;

  typedef INT WW_CDPD_SLEEP_MODE;
  typedef ULONG WW_CDPD_TEI;

  typedef struct _WW_CDPD_CIRCUIT_SWITCHED {
    INT service_preference;
    INT service_status;
    INT connect_rate;
    NDIS_VAR_DATA_DESC dial_code[20];
    ULONG sid;
    INT a_b_side_selection;
    INT AMPS_channel;
    ULONG action;
    NDIS_VAR_DATA_DESC default_dial[20];
    NDIS_VAR_DATA_DESC call_back[20];
    ULONG sid_list[10];
    ULONG inactivity_timer;
    ULONG receive_timer;
    ULONG conn_resp_timer;
    ULONG reconn_resp_timer;
    ULONG disconn_timer;
    ULONG NEI_reg_timer;
    ULONG reconn_retry_timer;
    ULONG link_reset_timer;
    ULONG link_reset_ack_timer;
    ULONG n401_retry_limit;
    ULONG n402_retry_limit;
    ULONG n404_retry_limit;
    ULONG n405_retry_limit;
  } WW_CDPD_CIRCUIT_SWITCHED,*WW_PCDPD_CIRCUIT_SWITCHED;

  typedef ULONG WW_CDPD_RSSI;
  typedef INT WW_CDPD_CS_SERVICE_PREFERENCE;
  typedef INT WW_CDPD_CS_SERVICE_STATUS;

  typedef struct _WW_CDPD_CS_INFO {
    INT ConnectRage;
    NDIS_VAR_DATA_DESC DialCode;
    UINT SID;
    INT ABSideSelection;
    INT AMPSChannel;
  } WW_CDPD_CS_INFO;

  typedef UINT WW_CDPD_CS_SUSPEND;
  typedef NDIS_VAR_DATA_DESC WW_CDPD_DEFAULT_DIAL_CODE;

  typedef struct _WW_CDPD_CS_CALLBACK {
    UINT Enabled;
    NDIS_VAR_DATA_DESC Number;
  } WW_CDPD_CS_CALLBACK;

  typedef struct _WW_CDPD_CS_SID_LIST {
    UINT AMPSystemId[10];
  } WW_CDPD_CS_SID_LIST;

  typedef struct _WW_CDPD_CS_CONFIGURATION {
    UINT InactivityTimer;
    UINT ReceiveTimer;
    UINT ConnResTimer;
    UINT ReconnRespTimer;
    UINT DisconnTimer;
    UINT NEIRegTimer;
    UINT ReconnRetryTimer;
    UINT LinkResetTimer;
    UINT LinkResetAckTimer;
    UINT n401RetryLimit;
    UINT n402RetryLimit;
    UINT n404RetryLimit;
    UINT n405RetryLimit;
  } WW_CDPD_CS_CONFIGURATION;

  typedef INT WW_PIN_AUTHORIZED;

  typedef struct _WW_PIN_LOCATION {
    INT Latitude;
    INT Longitude;
    INT Altitude;
    INT FixTime;
    INT NetTime;
    INT LocQuality;
    INT LatReg;
    INT LongReg;
    INT GMTOffset;
  } WW_PIN_LOCATION,*PWW_PIN_LOCATION;

  typedef ULONG WW_MBX_MAILBOX_FLAG;

  typedef struct _WW_MBX_PMAN {
    BOOLEAN ACTION;
    ULONG MAN;
    UCHAR PASSWORD[8];
  } WW_MBX_PMAN,*PWW_MBX_PMAN;

  typedef struct _WW_MBX_FLEXLIST {
    INT count;
    ULONG MAN[7];
  } WW_MBX_FLEXLIST;

  typedef struct _WW_MBX_GROUPLIST {
    INT count;
    ULONG MAN[15];
  } WW_MBX_GROUPLIST;

  typedef enum _WW_MBX_TRAFFIC_AREA {
    unknown_traffic_area,in_traffic_area,in_auth_traffic_area,unauth_traffic_area
  } WW_MBX_TRAFFIC_AREA;

  typedef INT WW_MBX_LIVE_DIE;

  typedef struct _WW_MBX_CHANNEL_PAIR {
    ULONG Mobile_Tx;
    ULONG Mobile_Rx;
  } WW_MBX_CHANNEL_PAIR,*PWW_MBX_CHANNEL_PAIR;

  typedef struct _WW_MBX_TEMPDEFAULTLIST {
    ULONG Length;
    WW_MBX_CHANNEL_PAIR ChannelPair[1];
  } WW_MBX_TEMPDEFAULTLIST,*WW_PMBX_TEMPDEFAULTLIST;
#endif

  typedef struct _BPC_FILETIME {
    ULONG dwLowDateTime;
    ULONG dwHighDateTime;
  } BPC_FILETIME,*PBPC_FILETIME;

  typedef PVOID BPC_HANDLE;

#define BPC_MIN_DIMENSION 1
#define BPC_MAX_BUFFER_SIZE 64
#define BPC_MIN_BUFFER_SIZE 4
#define BPC_DEVICE_ANY ((BPC_HANDLE) 0xFFFFFFFF)

  typedef enum _NDIS_BPC_INDICATE_REASON {
    bpcBufferFull = 0,bpcBufferForced,bpcBufferTimeOut,bpcBufferDiscontinuity,bpcBufferOverflow,bpcBufferStatusEvent
  } NDIS_BPC_INDICATE_REASON,*PNDIS_BPC_INDICATE_REASON;

#define BPC_STREAM_TYPE_GENERIC_MIN 0x01000000
#define BPC_STREAM_TYPE_RAW 0x01000000
#define BPC_STREAM_TYPE_MPT_128 0x01000001
#define BPC_STREAM_TYPE_MPT_128_CRC 0x01000002
#define BPC_STREAM_TYPE_IP 0x01000003
#define BPC_STREAM_TYPE_PROVIDER_MIN 0x02000000
#define BPC_STREAM_TYPE_PROVIDER_MAX 0x02ffffff
#define BPC_STREAM_TYPE_ADAPTER_MIN 0x03000000
#define BPC_STREAM_TYPE_ADAPTER_MAX 0x03ffffff

  typedef struct _NDIS_BPC_ADAPTER_CAPS {
    ULONG ulBPCMajorRev;
    ULONG ulBPCMinorRev;
    ULONG ulcHSDataDevices;
    ULONG ulbpsHSDeviceMax;
    ULONG ulcLSDataDevices;
    ULONG ulbpsLSDeviceMax;
    ULONG ulcTuningDevices;
    ULONG ulcbLargestStatus;
    ULONG ulVendorId;
    ULONG ulAdapterId;
    GUID guidProvider;
  } NDIS_BPC_ADAPTER_CAPS,*PNDIS_BPC_ADAPTER_CAPS;

  typedef struct _NDIS_BPC_DEVICES {
    ULONG ulcDevices;
    BPC_HANDLE rgnhDevices[BPC_MIN_DIMENSION];
  } NDIS_BPC_DEVICES,*PNDIS_BPC_DEVICES;

#define CbDevices(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICES,rgnhDevices) + (cnt) *sizeof(BPC_HANDLE))

  typedef struct NDIS_BPC_DEVICE_CAPS {
    BPC_HANDLE nhDevice;
    ULONG ulBPCCaps;
    ULONG ulbpsMax;
    ULONG ulcStreamTypes;
    ULONG rgulStreamTypes[BPC_MIN_DIMENSION];
  } NDIS_BPC_DEVICE_CAPS,*PNDIS_BPC_DEVICE_CAPS;

#define CbDeviceCaps(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICE_CAPS,rgulStreamTypes) + (cnt)*sizeof(ULONG))

#define BPCCapBusMasteredData 0x01
#define BPCCapIndependentTuner 0x02
#define BPCCapExternalDataBus 0x04
#define BPCCapLowSpeedData 0x10
#define BPCCapHighSpeedData 0x20

  typedef struct NDIS_BPC_DEVICE_SETTINGS {
    BPC_HANDLE nhDevice;
    ULONG ulBPCCaps;
    ULONG ulcConnections;
    BOOLEAN fEnabled;
    ULONG ulStreamType;
    ULONG ulcbAddressConnection;
    ULONG rgulAddressConnection[BPC_MIN_DIMENSION];
  } NDIS_BPC_DEVICE_SETTINGS,*PNDIS_BPC_DEVICE_SETTINGS;

#define CbDeviceSettings(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICE_SETTINGS,rgulAddressConnection) + (cnt)*sizeof(ULONG))

#define BPC_CONNECT_STATE_UNCOMMITTED 0
#define BPC_CONNECT_STATE_QUEUED 1
#define BPC_CONNECT_STATE_ACTIVE 2
#define BPC_CONNECT_STATE_DISCONNECTING 3

  typedef struct NDIS_BPC_CONNECTION_STATUS {
    BPC_HANDLE nhConnection;
    BPC_HANDLE nhDevice;
    ULONG ulConnectPriority;
    ULONG ulDisconnectPriority;
    ULONG ulbpsAverage;
    ULONG ulbpsBurst;
    ULONG ulState;
    BOOLEAN fEnabled;
  } NDIS_BPC_CONNECTION_STATUS,*PNDIS_BPC_CONNECTION_STATUS;

  typedef struct NDIS_BPC_ADDRESS_COMPARE {
    BOOLEAN fEqual;
    ULONG ulcbFirstOffset;
    ULONG ulcbFirstLength;
    ULONG ulcbSecondOffset;
    ULONG ulcbSecondLength;
  } NDIS_BPC_ADDRESS_COMPARE,*PNDIS_BPC_ADDRESS_COMPARE;

#define BPC_GUIDE_GENERIC_MIN 0x01000000
#define BPC_GUIDE_GENERIC_MAX 0x01ffffff
#define BPC_GUIDE_PROVIDER_MIN 0x02000000
#define BPC_GUIDE_PROVIDER_MAX 0x02ffffff
#define BPC_GUIDE_ADAPTER_MIN 0x03000000
#define BPC_GUIDE_ADAPTER_MAX 0x03ffffff

  typedef struct NDIS_BPC_PROGRAM_GUIDE {
    ULONG ulGuideType;
    BPC_FILETIME ftLastUpdate;
    ULONG ulChangeNumber;
    ULONG ulcbGuideSize;
    ULONG rgulGuideData[BPC_MIN_DIMENSION];
  } NDIS_BPC_PROGRAM_GUIDE,*PNDIS_BPC_PROGRAM_GUIDE;

  typedef enum _NDIS_BPC_ERROR {
    bpcErrorUnknownFailure = 0xc0ff0000,bpcErrorHardwareFailure,bpcErrorProviderFailure,bpcErrorNoDataDevice,bpcErrorNoTuningDevice,
    bpcErrorDeviceNotCapable,bpcErrorConflictingDevice,bpcErrorConflictingCapability,bpcErrorNoBufferMemory,bpcErrorNoResources,
    bpcErrorAdapterClosing,bpcErrorConnectionClosing,bpcErrorTooComplex,bpcErrorProviderNotSupported,
    bpcErrorUnknownProviderStructure,bpcErrorAddressNotSupported,bpcErrorInvalidAddress,bpcErrorUnknownAdapterStructure
  } NDIS_BPC_ERROR,*PNDIS_BPC_ERROR;

  typedef struct NDIS_BPC_LAST_ERROR {
    ULONG ulErrorContext;
    ULONG ulBPCError;
    ULONG ulAdapterError;
    ULONG ulAdapterContext;
  } NDIS_BPC_LAST_ERROR,*PNDIS_BPC_LAST_ERROR;

  typedef struct NDIS_BPC_POOL {
    BPC_HANDLE nhConnection;
    ULONG ulcbPoolSize;
    ULONG ulcbMaxBufferSize;
    ULONG ulcbBufferReserved;
  } NDIS_BPC_POOL,*PNDIS_BPC_POOL;

  typedef struct NDIS_BPC_CONNECT {
    BPC_HANDLE nhConnection;
    BPC_HANDLE nhDevice;
    ULONG ulConnectPriority;
    ULONG ulDisconnectPriority;
    BOOLEAN fImmediate;
    ULONG ulcbAddress;
    GUID guidProvider;
    ULONG rgulAddress[BPC_MIN_DIMENSION];
  } NDIS_BPC_CONNECT,*PNDIS_BPC_CONNECT;

#define CbConnect(cnt) (FIELD_OFFSET(NDIS_BPC_CONNECT,rgulAddress) + (cnt)*sizeof(ULONG))

  typedef struct NDIS_BPC_COMMIT {
    ULONG ulcConnections;
    BPC_HANDLE rgnhConnections[BPC_MIN_DIMENSION];
  } NDIS_BPC_COMMIT,*PNDIS_BPC_COMMIT;

  typedef struct NDIS_BPC_DISCONNECT {
    BPC_HANDLE nhConnection;
  } NDIS_BPC_DISCONNECT,*PNDIS_BPC_DISCONNECT;

  typedef struct NDIS_BPC_CONNECTION_ENABLE {
    BPC_HANDLE nhConnection;
    BOOLEAN fEnabled;
  } NDIS_BPC_CONNECTION_ENABLE,*PNDIS_BPC_CONNECTION_ENABLE;

  typedef struct NDIS_BPC_POOL_RETURN {
    BPC_HANDLE nhConnection;
  } NDIS_BPC_POOL_RETURN,*PNDIS_BPC_POOL_RETURN;

  typedef struct NDIS_BPC_FORCE_RECEIVE {
    BPC_HANDLE nhConnection;
    ULONG ulReasonCode;
  } NDIS_BPC_FORCE_RECEIVE,*PNDIS_BPC_FORCE_RECEIVE;

  typedef struct NDIS_BPC_MEDIA_SPECIFIC_INFORMATION {
    BPC_HANDLE nhConnection;
    ULONG ulBPCStreamType;
    ULONG ulReasonCode;
    PVOID pvMiniportReserved1;
    ULONG ulMiniportReserved2;
  } NDIS_BPC_MEDIA_SPECIFIC_INFORMATION,*PNDIS_BPC_MEDIA_SPECIFIC_INFORMATION;

#define BPC_CATEGORY_BPC 0x01000000
#define BPC_CATEGORY_PROVIDER 0x02000000
#define BPC_CATEGORY_ADAPTER 0x03000000

#define BPC_STATUS_CONNECTED 0x00000001
#define BPC_STATUS_QUEUED 0x00000002
#define BPC_STATUS_ACTIVE 0x00000003
#define BPC_STATUS_DISCONNECTED 0x00000004
#define BPC_STATUS_OVERFLOW 0x00000005
#define BPC_STATUS_DATA_STOP 0x00000006
#define BPC_STATUS_DATA_START 0x00000007
#define BPC_STATUS_DATA_ERROR 0x00000008

  typedef struct NDIS_BPC_STATUS {
    ULONG ulStatusCategory;
    ULONG ulStatusType;
    ULONG ulcbStatus;
    ULONG rgulStatus;
  } NDIS_BPC_STATUS,*PNDIS_BPC_STATUS;

  typedef struct NDIS_BPC_STATUS_CONNECTION {
    BPC_HANDLE nhConnection;
    BPC_HANDLE nhDevice;
  } NDIS_BPC_STATUS_CONNECTED,*PNDIS_BPC_STATUS_CONNECTED;

#ifdef __cplusplus
}
#endif

#define NDIS_MINIPORT_BUS_MASTER 0x00000001
#define NDIS_MINIPORT_WDM_DRIVER 0x00000002
#define NDIS_MINIPORT_SG_LIST 0x00000004
#define NDIS_MINIPORT_SUPPORTS_MEDIA_QUERY 0x00000008
#define NDIS_MINIPORT_INDICATES_PACKETS 0x00000010
#define NDIS_MINIPORT_IGNORE_PACKET_QUEUE 0x00000020
#define NDIS_MINIPORT_IGNORE_REQUEST_QUEUE 0x00000040
#define NDIS_MINIPORT_IGNORE_TOKEN_RING_ERRORS 0x00000080
#define NDIS_MINIPORT_INTERMEDIATE_DRIVER 0x00000100
#define NDIS_MINIPORT_IS_NDIS_5 0x00000200
#define NDIS_MINIPORT_IS_CO 0x00000400
#define NDIS_MINIPORT_DESERIALIZE 0x00000800
#define NDIS_MINIPORT_REQUIRES_MEDIA_POLLING 0x00001000
#define NDIS_MINIPORT_SUPPORTS_MEDIA_SENSE 0x00002000
#define NDIS_MINIPORT_NETBOOT_CARD 0x00004000
#define NDIS_MINIPORT_PM_SUPPORTED 0x00008000
#define NDIS_MINIPORT_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00010000
#define NDIS_MINIPORT_USES_SAFE_BUFFER_APIS 0x00020000
#define NDIS_MINIPORT_HIDDEN 0x00040000
#define NDIS_MINIPORT_SWENUM 0x00080000
#define NDIS_MINIPORT_SURPRISE_REMOVE_OK 0x00100000
#define NDIS_MINIPORT_NO_HALT_ON_SUSPEND 0x00200000
#define NDIS_MINIPORT_HARDWARE_DEVICE 0x00400000
#define NDIS_MINIPORT_SUPPORTS_CANCEL_SEND_PACKETS 0x00800000
#define NDIS_MINIPORT_64BITS_DMA 0x01000000
#define NDIS_MINIPORT_USE_NEW_BITS 0x02000000
#define NDIS_MINIPORT_EXCLUSIVE_INTERRUPT 0x04000000
#define NDIS_MINIPORT_SENDS_PACKET_ARRAY 0x08000000
#define NDIS_MINIPORT_FILTER_IM 0x10000000
#define NDIS_MINIPORT_SHORT_PACKETS_ARE_PADDED 0x20000000
#endif
