1 /* 2 * ntddndis.h 3 * 4 * NDIS device driver interface 5 * 6 * This file is part of the w32api package. 7 * 8 * Contributors: 9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 10 * 11 * THIS SOFTWARE IS NOT COPYRIGHTED 12 * 13 * This source code is offered for use in the public domain. You may 14 * use, modify or distribute it freely. 15 * 16 * This code is distributed in the hope that it will be useful but 17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 18 * DISCLAIMED. This includes but is not limited to warranties of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20 * 21 */ 22 23 #ifndef _NTDDNDIS_ 24 #define _NTDDNDIS_ 25 26 #ifdef __cplusplus 27 extern "C" { 28 #endif 29 30 typedef enum _NDIS_WAN_QUALITY { 31 NdisWanRaw, 32 NdisWanErrorControl, 33 NdisWanReliable 34 } NDIS_WAN_QUALITY, *PNDIS_WAN_QUALITY; 35 36 typedef enum _NDIS_DEVICE_POWER_STATE { 37 NdisDeviceStateUnspecified = 0, 38 NdisDeviceStateD0, 39 NdisDeviceStateD1, 40 NdisDeviceStateD2, 41 NdisDeviceStateD3, 42 NdisDeviceStateMaximum 43 } NDIS_DEVICE_POWER_STATE, *PNDIS_DEVICE_POWER_STATE; 44 45 typedef enum _NDIS_802_11_WEP_STATUS 46 { 47 Ndis802_11WEPEnabled, 48 Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled, 49 Ndis802_11WEPDisabled, 50 Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled, 51 Ndis802_11WEPKeyAbsent, 52 Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent, 53 Ndis802_11WEPNotSupported, 54 Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported, 55 Ndis802_11Encryption2Enabled, 56 Ndis802_11Encryption2KeyAbsent, 57 Ndis802_11Encryption3Enabled, 58 Ndis802_11Encryption3KeyAbsent 59 } NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS, 60 NDIS_802_11_ENCRYPTION_STATUS, *PNDIS_802_11_ENCRYPTION_STATUS; 61 62 typedef enum _NDIS_802_11_AUTHENTICATION_MODE 63 { 64 Ndis802_11AuthModeOpen, 65 Ndis802_11AuthModeShared, 66 Ndis802_11AuthModeAutoSwitch, 67 Ndis802_11AuthModeWPA, 68 Ndis802_11AuthModeWPAPSK, 69 Ndis802_11AuthModeWPANone, 70 Ndis802_11AuthModeWPA2, 71 Ndis802_11AuthModeWPA2PSK, 72 Ndis802_11AuthModeMax 73 } NDIS_802_11_AUTHENTICATION_MODE, *PNDIS_802_11_AUTHENTICATION_MODE; 74 75 typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE 76 { 77 Ndis802_11IBSS, 78 Ndis802_11Infrastructure, 79 Ndis802_11AutoUnknown, 80 Ndis802_11InfrastructureMax 81 } NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE; 82 83 typedef enum _NDIS_802_11_NETWORK_TYPE 84 { 85 Ndis802_11FH, 86 Ndis802_11DS, 87 Ndis802_11OFDM5, 88 Ndis802_11OFDM24, 89 Ndis802_11Automode, 90 Ndis802_11NetworkTypeMax 91 } NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE; 92 93 typedef struct _NDIS_OBJECT_HEADER 94 { 95 UCHAR Type; 96 UCHAR Revision; 97 USHORT Size; 98 } NDIS_OBJECT_HEADER, *PNDIS_OBJECT_HEADER; 99 100 #define NDIS_802_11_LENGTH_SSID 32 101 #define NDIS_802_11_LENGTH_RATES 8 102 103 typedef UCHAR NDIS_802_11_MAC_ADDRESS[6]; 104 typedef LONG NDIS_802_11_RSSI; 105 typedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES]; 106 107 typedef struct _NDIS_802_11_SSID 108 { 109 ULONG SsidLength; 110 UCHAR Ssid[NDIS_802_11_LENGTH_SSID]; 111 } NDIS_802_11_SSID, *PNDIS_802_11_SSID; 112 113 typedef struct _NDIS_802_11_CONFIGURATION_FH 114 { 115 ULONG Length; 116 ULONG HopPattern; 117 ULONG HopSet; 118 ULONG DwellTime; 119 } NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH; 120 121 typedef struct _NDIS_802_11_CONFIGURATION 122 { 123 ULONG Length; 124 ULONG BeaconPeriod; 125 ULONG ATIMWindow; 126 ULONG DSConfig; 127 NDIS_802_11_CONFIGURATION_FH FHConfig; 128 } NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION; 129 130 typedef struct _NDIS_WLAN_BSSID 131 { 132 ULONG Length; 133 NDIS_802_11_MAC_ADDRESS MacAddress; 134 UCHAR Reserved[2]; 135 NDIS_802_11_SSID Ssid; 136 ULONG Privacy; 137 NDIS_802_11_RSSI Rssi; 138 NDIS_802_11_NETWORK_TYPE NetworkTypeInUse; 139 NDIS_802_11_CONFIGURATION Configuration; 140 NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; 141 NDIS_802_11_RATES SupportedRates; 142 } NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID; 143 144 typedef struct _NDIS_802_11_BSSID_LIST 145 { 146 ULONG NumberOfItems; 147 NDIS_WLAN_BSSID Bssid[1]; 148 } NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST; 149 150 typedef struct _NDIS_802_11_WEP 151 { 152 ULONG Length; 153 ULONG KeyIndex; 154 ULONG KeyLength; 155 UCHAR KeyMaterial[1]; 156 } NDIS_802_11_WEP, *PNDIS_802_11_WEP; 157 158 typedef ULONGLONG NDIS_802_11_KEY_RSC; 159 160 typedef struct _NDIS_802_11_KEY 161 { 162 ULONG Length; 163 ULONG KeyIndex; 164 ULONG KeyLength; 165 NDIS_802_11_MAC_ADDRESS BSSID; 166 NDIS_802_11_KEY_RSC KeyRSC; 167 UCHAR KeyMaterial[1]; 168 } NDIS_802_11_KEY, *PNDIS_802_11_KEY; 169 170 typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES { 171 NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp; 172 NDIS_DEVICE_POWER_STATE MinPatternWakeUp; 173 NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp; 174 } NDIS_PM_WAKE_UP_CAPABILITIES, *PNDIS_PM_WAKE_UP_CAPABILITIES; 175 176 /* NDIS_PNP_CAPABILITIES.Flags constants */ 177 #define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001 178 #define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002 179 #define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004 180 181 typedef struct _NDIS_PNP_CAPABILITIES { 182 ULONG Flags; 183 NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities; 184 } NDIS_PNP_CAPABILITIES, *PNDIS_PNP_CAPABILITIES; 185 186 /* NDIS driver medium (OID_GEN_MEDIA_SUPPORTED / OID_GEN_MEDIA_IN_USE) */ 187 typedef enum _NDIS_MEDIUM { 188 NdisMedium802_3, 189 NdisMedium802_5, 190 NdisMediumFddi, 191 NdisMediumWan, 192 NdisMediumLocalTalk, 193 NdisMediumDix, 194 NdisMediumArcnetRaw, 195 NdisMediumArcnet878_2, 196 NdisMediumAtm, 197 NdisMediumWirelessWan, 198 NdisMediumIrda, 199 NdisMediumBpc, 200 NdisMediumCoWan, 201 NdisMedium1394, 202 NdisMediumMax 203 } NDIS_MEDIUM, *PNDIS_MEDIUM; 204 205 typedef enum _NDIS_PHYSICAL_MEDIUM 206 { 207 NdisPhysicalMediumUnspecified, 208 NdisPhysicalMediumWirelessLan, 209 NdisPhysicalMediumCableModem, 210 NdisPhysicalMediumPhoneLine, 211 NdisPhysicalMediumPowerLine, 212 NdisPhysicalMediumDSL, 213 NdisPhysicalMediumFibreChannel, 214 NdisPhysicalMedium1394, 215 NdisPhysicalMediumWirelessWan, 216 NdisPhysicalMediumNative802_11, 217 NdisPhysicalMediumBluetooth, 218 NdisPhysicalMediumInfiniband, 219 NdisPhysicalMediumWiMax, 220 NdisPhysicalMediumUWB, 221 NdisPhysicalMedium802_3, 222 NdisPhysicalMedium802_5, 223 NdisPhysicalMediumIrda, 224 NdisPhysicalMediumWiredWAN, 225 NdisPhysicalMediumWiredCoWan, 226 NdisPhysicalMediumOther, 227 NdisPhysicalMediumMax 228 } NDIS_PHYSICAL_MEDIUM, *PNDIS_PHYSICAL_MEDIUM; 229 230 typedef ULONG NDIS_OID, *PNDIS_OID; 231 232 /* Required Object IDs (OIDs) */ 233 #define OID_GEN_SUPPORTED_LIST 0x00010101 234 #define OID_GEN_HARDWARE_STATUS 0x00010102 235 #define OID_GEN_MEDIA_SUPPORTED 0x00010103 236 #define OID_GEN_MEDIA_IN_USE 0x00010104 237 #define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 238 #define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 239 #define OID_GEN_LINK_SPEED 0x00010107 240 #define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 241 #define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 242 #define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A 243 #define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B 244 #define OID_GEN_VENDOR_ID 0x0001010C 245 #define OID_GEN_VENDOR_DESCRIPTION 0x0001010D 246 #define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E 247 #define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F 248 #define OID_GEN_DRIVER_VERSION 0x00010110 249 #define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 250 #define OID_GEN_PROTOCOL_OPTIONS 0x00010112 251 #define OID_GEN_MAC_OPTIONS 0x00010113 252 #define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 253 #define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 254 #define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 255 #define OID_GEN_SUPPORTED_GUIDS 0x00010117 256 #define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 257 #define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 258 #define OID_GEN_MACHINE_NAME 0x0001021A 259 #define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B 260 #define OID_GEN_VLAN_ID 0x0001021C 261 262 /* Optional OIDs */ 263 #define OID_GEN_MEDIA_CAPABILITIES 0x00010201 264 #define OID_GEN_PHYSICAL_MEDIUM 0x00010202 265 266 /* Required statistics OIDs */ 267 #define OID_GEN_XMIT_OK 0x00020101 268 #define OID_GEN_RCV_OK 0x00020102 269 #define OID_GEN_XMIT_ERROR 0x00020103 270 #define OID_GEN_RCV_ERROR 0x00020104 271 #define OID_GEN_RCV_NO_BUFFER 0x00020105 272 273 /* Optional statistics OIDs */ 274 #define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 275 #define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 276 #define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 277 #define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 278 #define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 279 #define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 280 #define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 281 #define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 282 #define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 283 #define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A 284 #define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B 285 #define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C 286 #define OID_GEN_RCV_CRC_ERROR 0x0002020D 287 #define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E 288 #define OID_GEN_GET_TIME_CAPS 0x0002020F 289 #define OID_GEN_GET_NETCARD_TIME 0x00020210 290 #define OID_GEN_NETCARD_LOAD 0x00020211 291 #define OID_GEN_DEVICE_PROFILE 0x00020212 292 #define OID_GEN_INIT_TIME_MS 0x00020213 293 #define OID_GEN_RESET_COUNTS 0x00020214 294 #define OID_GEN_MEDIA_SENSE_COUNTS 0x00020215 295 #define OID_GEN_FRIENDLY_NAME 0x00020216 296 #define OID_GEN_MINIPORT_INFO 0x00020217 297 #define OID_GEN_RESET_VERIFY_PARAMETERS 0x00020218 298 299 /* IEEE 802.3 (Ethernet) OIDs */ 300 #define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 301 302 #define OID_802_3_PERMANENT_ADDRESS 0x01010101 303 #define OID_802_3_CURRENT_ADDRESS 0x01010102 304 #define OID_802_3_MULTICAST_LIST 0x01010103 305 #define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 306 #define OID_802_3_MAC_OPTIONS 0x01010105 307 #define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 308 #define OID_802_3_XMIT_ONE_COLLISION 0x01020102 309 #define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 310 #define OID_802_3_XMIT_DEFERRED 0x01020201 311 #define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 312 #define OID_802_3_RCV_OVERRUN 0x01020203 313 #define OID_802_3_XMIT_UNDERRUN 0x01020204 314 #define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 315 #define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 316 #define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 317 318 /* IEEE 802.11 (WLAN) OIDs */ 319 #define OID_802_11_BSSID 0x0D010101 320 #define OID_802_11_SSID 0x0D010102 321 #define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 322 #define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 323 #define OID_802_11_TX_POWER_LEVEL 0x0D010205 324 #define OID_802_11_RSSI 0x0D010206 325 #define OID_802_11_RSSI_TRIGGER 0x0D010207 326 #define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 327 #define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 328 #define OID_802_11_RTS_THRESHOLD 0x0D01020A 329 #define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B 330 #define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C 331 #define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D 332 #define OID_802_11_SUPPORTED_RATES 0x0D01020E 333 #define OID_802_11_DESIRED_RATES 0x0D010210 334 #define OID_802_11_CONFIGURATION 0x0D010211 335 #define OID_802_11_STATISTICS 0x0D020212 336 #define OID_802_11_ADD_WEP 0x0D010113 337 #define OID_802_11_REMOVE_WEP 0x0D010114 338 #define OID_802_11_DISASSOCIATE 0x0D010115 339 #define OID_802_11_POWER_MODE 0x0D010216 340 #define OID_802_11_BSSID_LIST 0x0D010217 341 #define OID_802_11_AUTHENTICATION_MODE 0x0D010118 342 #define OID_802_11_PRIVACY_FILTER 0x0D010119 343 #define OID_802_11_BSSID_LIST_SCAN 0x0D01011A 344 #define OID_802_11_WEP_STATUS 0x0D01011B 345 /* New name is supposed to better reflect the extended set of encryption status */ 346 #define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS 347 #define OID_802_11_RELOAD_DEFAULTS 0x0D01011C 348 /* Allows key mapping and default keys */ 349 #define OID_802_11_ADD_KEY 0x0D01011D 350 #define OID_802_11_REMOVE_KEY 0x0D01011E 351 #define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F 352 #define OID_802_11_TEST 0x0D010120 353 #define OID_802_11_MEDIA_STREAM_MODE 0x0D010121 354 #define OID_802_11_CAPABILITY 0x0D010122 355 #define OID_802_11_PMKID 0x0D010123 356 #define OID_802_11_NON_BCAST_SSID_LIST 0x0D010124 357 #define OID_802_11_RADIO_STATUS 0x0D010125 358 359 /* PnP and Power Management (PM) OIDs */ 360 #define OID_PNP_CAPABILITIES 0xFD010100 361 #define OID_PNP_SET_POWER 0xFD010101 362 #define OID_PNP_QUERY_POWER 0xFD010102 363 #define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103 364 #define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104 365 #define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105 366 #define OID_PNP_ENABLE_WAKE_UP 0xFD010106 367 368 /* Optional PnP/PM statistics OIDs */ 369 #define OID_PNP_WAKE_UP_OK 0xFD020200 370 #define OID_PNP_WAKE_UP_ERROR 0xFD020201 371 372 #define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 373 #define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 374 #define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 375 376 /* TCP and IP OIDs */ 377 #define OID_TCP_TASK_OFFLOAD 0xFC010201 378 #define OID_TCP_TASK_IPSEC_ADD_SA 0xFC010202 379 #define OID_TCP_TASK_IPSEC_DELETE_SA 0xFC010203 380 #define OID_TCP_SAN_SUPPORT 0xFC010204 381 #define OID_TCP_TASK_IPSEC_ADD_UDPESP_SA 0xFC010205 382 #define OID_TCP_TASK_IPSEC_DELETE_UDPESP_SA 0xFC010206 383 #define OID_TCP4_OFFLOAD_STATS 0xFC010207 384 #define OID_TCP6_OFFLOAD_STATS 0xFC010208 385 #define OID_IP4_OFFLOAD_STATS 0xFC010209 386 #define OID_IP6_OFFLOAD_STATS 0xFC01020A 387 388 /* New NDIS 6 offload OIDs */ 389 #define OID_TCP_OFFLOAD_CURRENT_CONFIG 0xFC01020B /* NDIS 5 handled. Query only */ 390 #define OID_TCP_OFFLOAD_PARAMETERS 0xFC01020C /* Set only */ 391 #define OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES 0xFC01020D /* Query only */ 392 #define OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG 0xFC01020E /* Query only */ 393 #define OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 0xFC01020F /* Query only */ 394 #define OID_OFFLOAD_ENCAPSULATION 0x0101010A 395 396 /* Obsolete FFP defines */ 397 #define OID_FFP_SUPPORT 0xFC010210 398 #define OID_FFP_FLUSH 0xFC010211 399 #define OID_FFP_CONTROL 0xFC010212 400 #define OID_FFP_PARAMS 0xFC010213 401 #define OID_FFP_DATA 0xFC010214 402 403 #define OID_FFP_DRIVER_STATS 0xFC020210 404 #define OID_FFP_ADAPTER_STATS 0xFC020211 405 406 /* OID_GEN_MINIPORT_INFO constants */ 407 #define NDIS_MINIPORT_BUS_MASTER 0x00000001 408 #define NDIS_MINIPORT_WDM_DRIVER 0x00000002 409 #define NDIS_MINIPORT_SG_LIST 0x00000004 410 #define NDIS_MINIPORT_SUPPORTS_MEDIA_QUERY 0x00000008 411 #define NDIS_MINIPORT_INDICATES_PACKETS 0x00000010 412 #define NDIS_MINIPORT_IGNORE_PACKET_QUEUE 0x00000020 413 #define NDIS_MINIPORT_IGNORE_REQUEST_QUEUE 0x00000040 414 #define NDIS_MINIPORT_IGNORE_TOKEN_RING_ERRORS 0x00000080 415 #define NDIS_MINIPORT_INTERMEDIATE_DRIVER 0x00000100 416 #define NDIS_MINIPORT_IS_NDIS_5 0x00000200 417 #define NDIS_MINIPORT_IS_CO 0x00000400 418 #define NDIS_MINIPORT_DESERIALIZE 0x00000800 419 #define NDIS_MINIPORT_REQUIRES_MEDIA_POLLING 0x00001000 420 #define NDIS_MINIPORT_SUPPORTS_MEDIA_SENSE 0x00002000 421 #define NDIS_MINIPORT_NETBOOT_CARD 0x00004000 422 #define NDIS_MINIPORT_PM_SUPPORTED 0x00008000 423 #define NDIS_MINIPORT_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00010000 424 #define NDIS_MINIPORT_USES_SAFE_BUFFER_APIS 0x00020000 425 #define NDIS_MINIPORT_HIDDEN 0x00040000 426 #define NDIS_MINIPORT_SWENUM 0x00080000 427 #define NDIS_MINIPORT_SURPRISE_REMOVE_OK 0x00100000 428 #define NDIS_MINIPORT_NO_HALT_ON_SUSPEND 0x00200000 429 #define NDIS_MINIPORT_HARDWARE_DEVICE 0x00400000 430 #define NDIS_MINIPORT_SUPPORTS_CANCEL_SEND_PACKETS 0x00800000 431 #define NDIS_MINIPORT_64BITS_DMA 0x01000000 432 433 /* Full duplex driver */ 434 #define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010 /* Deprecated flag */ 435 436 #define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020 437 #define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040 438 #define NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00000080 439 #define NDIS_MAC_OPTION_RECEIVE_AT_DPC 0x00000100 440 #define NDIS_MAC_OPTION_8021Q_VLAN 0x00000200 441 #define NDIS_MAC_OPTION_RESERVED 0x80000000 442 443 #define IOCTL_NDIS_QUERY_GLOBAL_STATS CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, \ 444 0, \ 445 METHOD_OUT_DIRECT, \ 446 FILE_ANY_ACCESS) 447 448 /* Hardware status codes (OID_GEN_HARDWARE_STATUS) */ 449 typedef enum _NDIS_HARDWARE_STATUS { 450 NdisHardwareStatusReady, 451 NdisHardwareStatusInitializing, 452 NdisHardwareStatusReset, 453 NdisHardwareStatusClosing, 454 NdisHardwareStatusNotReady 455 } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS; 456 457 /* OID_GEN_GET_TIME_CAPS */ 458 typedef struct _GEN_GET_TIME_CAPS { 459 ULONG Flags; 460 ULONG ClockPrecision; 461 } GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS; 462 463 /* OID_GEN_GET_NETCARD_TIME */ 464 typedef struct _GEN_GET_NETCARD_TIME { 465 ULONGLONG ReadTime; 466 } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME; 467 468 /* State of the LAN media (OID_GEN_MEDIA_CONNECT_STATUS) */ 469 typedef enum _NDIS_MEDIA_STATE { 470 NdisMediaStateConnected, 471 NdisMediaStateDisconnected 472 } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE; 473 474 #ifndef _NDIS_ 475 typedef int NDIS_STATUS, *PNDIS_STATUS; 476 #endif 477 478 /* OID_GEN_SUPPORTED_GUIDS */ 479 typedef struct _NDIS_GUID { 480 GUID Guid; 481 union { 482 NDIS_OID Oid; 483 NDIS_STATUS Status; 484 } u; 485 ULONG Size; 486 ULONG Flags; 487 } NDIS_GUID, *PNDIS_GUID; 488 489 typedef struct _NDIS_PM_PACKET_PATTERN { 490 ULONG Priority; 491 ULONG Reserved; 492 ULONG MaskSize; 493 ULONG PatternOffset; 494 ULONG PatternSize; 495 ULONG PatternFlags; 496 } NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN; 497 498 /* OID_GEN_NETWORK_LAYER_ADDRESSES */ 499 typedef struct _NETWORK_ADDRESS { 500 USHORT AddressLength; 501 USHORT AddressType; 502 UCHAR Address[1]; 503 } NETWORK_ADDRESS, *PNETWORK_ADDRESS; 504 505 typedef struct _NETWORK_ADDRESS_LIST { 506 LONG AddressCount; 507 USHORT AddressType; 508 NETWORK_ADDRESS Address[1]; 509 } NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST; 510 511 /* OID_GEN_TRANSPORT_HEADER_OFFSET */ 512 typedef struct _TRANSPORT_HEADER_OFFSET { 513 USHORT ProtocolType; 514 USHORT HeaderOffset; 515 } TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET; 516 517 /* OID_GEN_CO_LINK_SPEED / OID_GEN_CO_MINIMUM_LINK_SPEED */ 518 typedef struct _NDIS_CO_LINK_SPEED { 519 ULONG Outbound; 520 ULONG Inbound; 521 } NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED; 522 523 #ifdef __cplusplus 524 } 525 #endif 526 527 #endif /* _NTDDNDIS_ */ 528