/**
 * 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.PD 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;

#include <guiddef.h>

#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;
    __MINGW_EXTENSION 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;
    __MINGW_EXTENSION 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
