[DDK][PSDK] Add missing definitions for WPA/WPA2 authentication
[reactos.git] / sdk / include / psdk / ntddndis.h
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 /* TCP and IP OIDs */
373 #define OID_TCP_TASK_OFFLOAD 0xFC010201
374 #define OID_TCP_TASK_IPSEC_ADD_SA 0xFC010202
375 #define OID_TCP_TASK_IPSEC_DELETE_SA 0xFC010203
376 #define OID_TCP_SAN_SUPPORT 0xFC010204
377 #define OID_TCP_TASK_IPSEC_ADD_UDPESP_SA 0xFC010205
378 #define OID_TCP_TASK_IPSEC_DELETE_UDPESP_SA 0xFC010206
379 #define OID_TCP4_OFFLOAD_STATS 0xFC010207
380 #define OID_TCP6_OFFLOAD_STATS 0xFC010208
381 #define OID_IP4_OFFLOAD_STATS 0xFC010209
382 #define OID_IP6_OFFLOAD_STATS 0xFC01020A
383
384 /* New NDIS 6 offload OIDs */
385 #define OID_TCP_OFFLOAD_CURRENT_CONFIG 0xFC01020B /* NDIS 5 handled. Query only */
386 #define OID_TCP_OFFLOAD_PARAMETERS 0xFC01020C /* Set only */
387 #define OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES 0xFC01020D /* Query only */
388 #define OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG 0xFC01020E /* Query only */
389 #define OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 0xFC01020F /* Query only */
390 #define OID_OFFLOAD_ENCAPSULATION 0x0101010A
391
392 /* Obsolete FFP defines */
393 #define OID_FFP_SUPPORT 0xFC010210
394 #define OID_FFP_FLUSH 0xFC010211
395 #define OID_FFP_CONTROL 0xFC010212
396 #define OID_FFP_PARAMS 0xFC010213
397 #define OID_FFP_DATA 0xFC010214
398
399 #define OID_FFP_DRIVER_STATS 0xFC020210
400 #define OID_FFP_ADAPTER_STATS 0xFC020211
401
402 /* OID_GEN_MINIPORT_INFO constants */
403 #define NDIS_MINIPORT_BUS_MASTER 0x00000001
404 #define NDIS_MINIPORT_WDM_DRIVER 0x00000002
405 #define NDIS_MINIPORT_SG_LIST 0x00000004
406 #define NDIS_MINIPORT_SUPPORTS_MEDIA_QUERY 0x00000008
407 #define NDIS_MINIPORT_INDICATES_PACKETS 0x00000010
408 #define NDIS_MINIPORT_IGNORE_PACKET_QUEUE 0x00000020
409 #define NDIS_MINIPORT_IGNORE_REQUEST_QUEUE 0x00000040
410 #define NDIS_MINIPORT_IGNORE_TOKEN_RING_ERRORS 0x00000080
411 #define NDIS_MINIPORT_INTERMEDIATE_DRIVER 0x00000100
412 #define NDIS_MINIPORT_IS_NDIS_5 0x00000200
413 #define NDIS_MINIPORT_IS_CO 0x00000400
414 #define NDIS_MINIPORT_DESERIALIZE 0x00000800
415 #define NDIS_MINIPORT_REQUIRES_MEDIA_POLLING 0x00001000
416 #define NDIS_MINIPORT_SUPPORTS_MEDIA_SENSE 0x00002000
417 #define NDIS_MINIPORT_NETBOOT_CARD 0x00004000
418 #define NDIS_MINIPORT_PM_SUPPORTED 0x00008000
419 #define NDIS_MINIPORT_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00010000
420 #define NDIS_MINIPORT_USES_SAFE_BUFFER_APIS 0x00020000
421 #define NDIS_MINIPORT_HIDDEN 0x00040000
422 #define NDIS_MINIPORT_SWENUM 0x00080000
423 #define NDIS_MINIPORT_SURPRISE_REMOVE_OK 0x00100000
424 #define NDIS_MINIPORT_NO_HALT_ON_SUSPEND 0x00200000
425 #define NDIS_MINIPORT_HARDWARE_DEVICE 0x00400000
426 #define NDIS_MINIPORT_SUPPORTS_CANCEL_SEND_PACKETS 0x00800000
427 #define NDIS_MINIPORT_64BITS_DMA 0x01000000
428
429 /* Full duplex driver */
430 #define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010 /* Deprecated flag */
431
432 #define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020
433 #define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040
434 #define NDIS_MAC_OPTION_SUPPORTS_MAC_ADRESS_OVERWRITE 0x00000080
435 #define NDIS_MAC_OPTION_RECEIVE_AT_DPC 0x00000100
436 #define NDIS_MAC_OPTION_8021Q_VLAN 0x00000200
437 #define NDIS_MAC_OPTION_RESERVED 0x80000000
438
439 #define IOCTL_NDIS_QUERY_GLOBAL_STATS CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, \
440 0, \
441 METHOD_OUT_DIRECT, \
442 FILE_ANY_ACCESS)
443
444 /* Hardware status codes (OID_GEN_HARDWARE_STATUS) */
445 typedef enum _NDIS_HARDWARE_STATUS {
446 NdisHardwareStatusReady,
447 NdisHardwareStatusInitializing,
448 NdisHardwareStatusReset,
449 NdisHardwareStatusClosing,
450 NdisHardwareStatusNotReady
451 } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS;
452
453 /* OID_GEN_GET_TIME_CAPS */
454 typedef struct _GEN_GET_TIME_CAPS {
455 ULONG Flags;
456 ULONG ClockPrecision;
457 } GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;
458
459 /* OID_GEN_GET_NETCARD_TIME */
460 typedef struct _GEN_GET_NETCARD_TIME {
461 ULONGLONG ReadTime;
462 } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME;
463
464 /* State of the LAN media (OID_GEN_MEDIA_CONNECT_STATUS) */
465 typedef enum _NDIS_MEDIA_STATE {
466 NdisMediaStateConnected,
467 NdisMediaStateDisconnected
468 } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE;
469
470 #ifndef _NDIS_
471 typedef int NDIS_STATUS, *PNDIS_STATUS;
472 #endif
473
474 /* OID_GEN_SUPPORTED_GUIDS */
475 typedef struct _NDIS_GUID {
476 GUID Guid;
477 union {
478 NDIS_OID Oid;
479 NDIS_STATUS Status;
480 } u;
481 ULONG Size;
482 ULONG Flags;
483 } NDIS_GUID, *PNDIS_GUID;
484
485 typedef struct _NDIS_PM_PACKET_PATTERN {
486 ULONG Priority;
487 ULONG Reserved;
488 ULONG MaskSize;
489 ULONG PatternOffset;
490 ULONG PatternSize;
491 ULONG PatternFlags;
492 } NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN;
493
494 /* OID_GEN_NETWORK_LAYER_ADDRESSES */
495 typedef struct _NETWORK_ADDRESS {
496 USHORT AddressLength;
497 USHORT AddressType;
498 UCHAR Address[1];
499 } NETWORK_ADDRESS, *PNETWORK_ADDRESS;
500
501 typedef struct _NETWORK_ADDRESS_LIST {
502 LONG AddressCount;
503 USHORT AddressType;
504 NETWORK_ADDRESS Address[1];
505 } NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;
506
507 /* OID_GEN_TRANSPORT_HEADER_OFFSET */
508 typedef struct _TRANSPORT_HEADER_OFFSET {
509 USHORT ProtocolType;
510 USHORT HeaderOffset;
511 } TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;
512
513 /* OID_GEN_CO_LINK_SPEED / OID_GEN_CO_MINIMUM_LINK_SPEED */
514 typedef struct _NDIS_CO_LINK_SPEED {
515 ULONG Outbound;
516 ULONG Inbound;
517 } NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED;
518
519 #ifdef __cplusplus
520 }
521 #endif
522
523 #endif /* _NTDDNDIS_ */