source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/ntddndis.h@ 1170

Last change on this file since 1170 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 171.9 KB
Line 
1/**
2* This file is part of the mingw-w64 runtime package.
3* No warranty is given; refer to the file DISCLAIMER within this package.
4*/
5
6#ifndef _NTDDNDIS_
7#define _NTDDNDIS_
8
9#include <winapifamily.h>
10
11#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#ifndef NDIS_SUPPORT_NDIS6
18#if defined (UM_NDIS60) || defined (UM_NDIS61) || defined (UM_NDIS620) || defined (UM_NDIS630)
19#define NDIS_SUPPORT_NDIS6 1
20#else
21#define NDIS_SUPPORT_NDIS6 0
22#endif
23#endif
24
25#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
26#include <ifdef.h>
27#include <devpkey.h>
28#include <pciprop.h>
29#endif
30
31#ifndef NDIS_SUPPORT_NDIS61
32#if defined (UM_NDIS61) || defined (UM_NDIS620) || defined (UM_NDIS630)
33#define NDIS_SUPPORT_NDIS61 1
34#else
35#define NDIS_SUPPORT_NDIS61 0
36#endif
37#endif
38
39#ifndef NDIS_SUPPORT_NDIS620
40#if defined (UM_NDIS620) || defined (UM_NDIS630)
41#define NDIS_SUPPORT_NDIS620 1
42#else
43#define NDIS_SUPPORT_NDIS620 0
44#endif
45#endif
46
47#ifndef NDIS_SUPPORT_NDIS630
48#ifdef UM_NDIS630
49#define NDIS_SUPPORT_NDIS630 1
50#else
51#define NDIS_SUPPORT_NDIS630 0
52#endif
53#endif
54
55#define DD_NDIS_DEVICE_NAME "\\Device\\UNKNOWN"
56
57#define _NDIS_CONTROL_CODE(request, method) CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, request, method, FILE_ANY_ACCESS)
58
59#define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE (0, METHOD_OUT_DIRECT)
60#define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE (1, METHOD_OUT_DIRECT)
61#define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE (2, METHOD_BUFFERED)
62#define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE (3, METHOD_OUT_DIRECT)
63#define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE (4, METHOD_BUFFERED)
64#define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE (5, METHOD_BUFFERED)
65#define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE (7, METHOD_OUT_DIRECT)
66#define IOCTL_NDIS_GET_VERSION _NDIS_CONTROL_CODE (8, METHOD_BUFFERED)
67
68#define IOCTL_NDIS_RESERVED1 _NDIS_CONTROL_CODE (9, METHOD_BUFFERED)
69#define IOCTL_NDIS_RESERVED2 _NDIS_CONTROL_CODE (0xa, METHOD_BUFFERED)
70#define IOCTL_NDIS_RESERVED3 _NDIS_CONTROL_CODE (0xb, METHOD_BUFFERED)
71#define IOCTL_NDIS_RESERVED4 _NDIS_CONTROL_CODE (0xc, METHOD_BUFFERED)
72#define IOCTL_NDIS_RESERVED5 CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, 0xd, METHOD_BUFFERED, FILE_ANY_ACCESS)
73#define IOCTL_NDIS_RESERVED6 CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, 0xe, METHOD_BUFFERED, FILE_WRITE_ACCESS)
74#define IOCTL_NDIS_RESERVED7 _NDIS_CONTROL_CODE (0xf, METHOD_OUT_DIRECT)
75#define IOCTL_NDIS_RESERVED8 _NDIS_CONTROL_CODE (0x10, METHOD_BUFFERED)
76#define IOCTL_NDIS_RESERVED9 _NDIS_CONTROL_CODE (0x11, METHOD_BUFFERED)
77#define IOCTL_NDIS_RESERVED10 _NDIS_CONTROL_CODE (0x12, METHOD_BUFFERED)
78#define IOCTL_NDIS_RESERVED11 _NDIS_CONTROL_CODE (0x13, METHOD_BUFFERED)
79#define IOCTL_NDIS_RESERVED12 _NDIS_CONTROL_CODE (0x14, METHOD_BUFFERED)
80#define IOCTL_NDIS_RESERVED13 _NDIS_CONTROL_CODE (0x15, METHOD_BUFFERED)
81#define IOCTL_NDIS_RESERVED14 _NDIS_CONTROL_CODE (0x16, METHOD_BUFFERED)
82#define IOCTL_NDIS_RESERVED15 _NDIS_CONTROL_CODE (0x17, METHOD_BUFFERED)
83#define IOCTL_NDIS_RESERVED16 _NDIS_CONTROL_CODE (0x18, METHOD_BUFFERED)
84#define IOCTL_NDIS_RESERVED17 _NDIS_CONTROL_CODE (0x19, METHOD_BUFFERED)
85#define IOCTL_NDIS_RESERVED18 _NDIS_CONTROL_CODE (0x1a, METHOD_BUFFERED)
86#define IOCTL_NDIS_RESERVED19 _NDIS_CONTROL_CODE (0x1b, METHOD_BUFFERED)
87#define IOCTL_NDIS_RESERVED20 _NDIS_CONTROL_CODE (0x1c, METHOD_BUFFERED)
88#define IOCTL_NDIS_RESERVED21 _NDIS_CONTROL_CODE (0x1d, METHOD_BUFFERED)
89#define IOCTL_NDIS_RESERVED22 _NDIS_CONTROL_CODE (0x1e, METHOD_BUFFERED)
90#define IOCTL_NDIS_RESERVED23 _NDIS_CONTROL_CODE (0x1f, METHOD_BUFFERED)
91#define IOCTL_NDIS_RESERVED24 _NDIS_CONTROL_CODE (0x20, METHOD_BUFFERED)
92#define IOCTL_NDIS_RESERVED25 _NDIS_CONTROL_CODE (0x21, METHOD_BUFFERED)
93#define IOCTL_NDIS_RESERVED26 _NDIS_CONTROL_CODE (0x22, METHOD_BUFFERED)
94#define IOCTL_NDIS_RESERVED27 _NDIS_CONTROL_CODE (0x23, METHOD_BUFFERED)
95#define IOCTL_NDIS_RESERVED28 _NDIS_CONTROL_CODE (0x24, METHOD_BUFFERED)
96#define IOCTL_NDIS_RESERVED29 _NDIS_CONTROL_CODE (0x25, METHOD_BUFFERED)
97#define IOCTL_NDIS_RESERVED30 _NDIS_CONTROL_CODE (0x26, METHOD_BUFFERED)
98
99 typedef ULONG NDIS_OID, *PNDIS_OID;
100 typedef struct _NDIS_STATISTICS_VALUE {
101 NDIS_OID Oid;
102 ULONG DataLength;
103 UCHAR Data[1];
104 } NDIS_STATISTICS_VALUE;
105
106 typedef NDIS_STATISTICS_VALUE UNALIGNED *PNDIS_STATISTICS_VALUE;
107
108#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
109 typedef struct _NDIS_STATISTICS_VALUE_EX {
110 NDIS_OID Oid;
111 ULONG DataLength;
112 ULONG Length;
113 UCHAR Data[1];
114 } NDIS_STATISTICS_VALUE_EX;
115
116 typedef NDIS_STATISTICS_VALUE_EX UNALIGNED *PNDIS_STATISTICS_VALUE_EX;
117#endif
118
119 typedef struct _NDIS_VAR_DATA_DESC {
120 USHORT Length;
121 USHORT MaximumLength;
122 ULONG_PTR Offset;
123 } NDIS_VAR_DATA_DESC, *PNDIS_VAR_DATA_DESC;
124
125#ifndef GUID_DEFINED
126#include <guiddef.h>
127#endif
128
129#define NDIS_OBJECT_TYPE_DEFAULT 0x80
130#define NDIS_OBJECT_TYPE_MINIPORT_INIT_PARAMETERS 0x81
131#define NDIS_OBJECT_TYPE_SG_DMA_DESCRIPTION 0x83
132#define NDIS_OBJECT_TYPE_MINIPORT_INTERRUPT 0x84
133#define NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES 0x85
134#define NDIS_OBJECT_TYPE_BIND_PARAMETERS 0x86
135#define NDIS_OBJECT_TYPE_OPEN_PARAMETERS 0x87
136#define NDIS_OBJECT_TYPE_RSS_CAPABILITIES 0x88
137#define NDIS_OBJECT_TYPE_RSS_PARAMETERS 0x89
138#define NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS 0x8a
139#define NDIS_OBJECT_TYPE_FILTER_DRIVER_CHARACTERISTICS 0x8b
140#define NDIS_OBJECT_TYPE_FILTER_PARTIAL_CHARACTERISTICS 0x8c
141#define NDIS_OBJECT_TYPE_FILTER_ATTRIBUTES 0x8d
142#define NDIS_OBJECT_TYPE_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS 0x8e
143#define NDIS_OBJECT_TYPE_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS 0x8f
144#define NDIS_OBJECT_TYPE_CO_PROTOCOL_CHARACTERISTICS 0x90
145#define NDIS_OBJECT_TYPE_CO_MINIPORT_CHARACTERISTICS 0x91
146#define NDIS_OBJECT_TYPE_MINIPORT_PNP_CHARACTERISTICS 0x92
147#define NDIS_OBJECT_TYPE_CLIENT_CHIMNEY_OFFLOAD_CHARACTERISTICS 0x93
148#define NDIS_OBJECT_TYPE_PROVIDER_CHIMNEY_OFFLOAD_CHARACTERISTICS 0x94
149#define NDIS_OBJECT_TYPE_PROTOCOL_DRIVER_CHARACTERISTICS 0x95
150#define NDIS_OBJECT_TYPE_REQUEST_EX 0x96
151#define NDIS_OBJECT_TYPE_OID_REQUEST 0x96
152#define NDIS_OBJECT_TYPE_TIMER_CHARACTERISTICS 0x97
153#define NDIS_OBJECT_TYPE_STATUS_INDICATION 0x98
154#define NDIS_OBJECT_TYPE_FILTER_ATTACH_PARAMETERS 0x99
155#define NDIS_OBJECT_TYPE_FILTER_PAUSE_PARAMETERS 0x9a
156#define NDIS_OBJECT_TYPE_FILTER_RESTART_PARAMETERS 0x9b
157#define NDIS_OBJECT_TYPE_PORT_CHARACTERISTICS 0x9c
158#define NDIS_OBJECT_TYPE_PORT_STATE 0x9d
159#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 0x9e
160#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 0x9f
161#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES 0xa0
162#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES 0xa1
163#define NDIS_OBJECT_TYPE_RESTART_GENERAL_ATTRIBUTES 0xa2
164#define NDIS_OBJECT_TYPE_PROTOCOL_RESTART_PARAMETERS 0xa3
165#define NDIS_OBJECT_TYPE_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES 0xa4
166#define NDIS_OBJECT_TYPE_CO_CALL_MANAGER_OPTIONAL_HANDLERS 0xa5
167#define NDIS_OBJECT_TYPE_CO_CLIENT_OPTIONAL_HANDLERS 0xa6
168#define NDIS_OBJECT_TYPE_OFFLOAD 0xa7
169#define NDIS_OBJECT_TYPE_OFFLOAD_ENCAPSULATION 0xa8
170#define NDIS_OBJECT_TYPE_CONFIGURATION_OBJECT 0xa9
171#define NDIS_OBJECT_TYPE_DRIVER_WRAPPER_OBJECT 0xaa
172#if NDIS_SUPPORT_NDIS61
173#define NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES 0xab
174#endif
175#define NDIS_OBJECT_TYPE_NSI_NETWORK_RW_STRUCT 0xac
176#define NDIS_OBJECT_TYPE_NSI_COMPARTMENT_RW_STRUCT 0xad
177#define NDIS_OBJECT_TYPE_NSI_INTERFACE_PERSIST_RW_STRUCT 0xae
178#if NDIS_SUPPORT_NDIS61
179#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 0xaf
180#endif
181#if NDIS_SUPPORT_NDIS620
182#define NDIS_OBJECT_TYPE_SHARED_MEMORY_PROVIDER_CHARACTERISTICS 0xb0
183#define NDIS_OBJECT_TYPE_RSS_PROCESSOR_INFO 0xb1
184#endif
185#if NDIS_SUPPORT_NDIS630
186#define NDIS_OBJECT_TYPE_NDK_PROVIDER_CHARACTERISTICS 0xb2
187#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_NDK_ATTRIBUTES 0xb3
188#define NDIS_OBJECT_TYPE_MINIPORT_SS_CHARACTERISTICS 0xb4
189#define NDIS_OBJECT_TYPE_QOS_CAPABILITIES 0xb5
190#define NDIS_OBJECT_TYPE_QOS_PARAMETERS 0xb6
191#define NDIS_OBJECT_TYPE_QOS_CLASSIFICATION_ELEMENT 0xb7
192#define NDIS_OBJECT_TYPE_SWITCH_OPTIONAL_HANDLERS 0xb8
193#define NDIS_OBJECT_TYPE_IOCTL_OID_INFO 0xb9
194#define NDIS_OBJECT_TYPE_LBFO_DIAGNOSTIC_OID 0xba
195#endif
196
197 typedef struct _NDIS_OBJECT_HEADER {
198 UCHAR Type;
199 UCHAR Revision;
200 USHORT Size;
201 } NDIS_OBJECT_HEADER, *PNDIS_OBJECT_HEADER;
202
203 typedef enum _NDIS_REQUEST_TYPE {
204 NdisRequestQueryInformation,
205 NdisRequestSetInformation,
206 NdisRequestQueryStatistics,
207 NdisRequestOpen,
208 NdisRequestClose,
209 NdisRequestSend,
210 NdisRequestTransferData,
211 NdisRequestReset,
212 NdisRequestGeneric1,
213 NdisRequestGeneric2,
214 NdisRequestGeneric3,
215 NdisRequestGeneric4
216#if NDIS_SUPPORT_NDIS6
217 , NdisRequestMethod
218#endif
219 } NDIS_REQUEST_TYPE, *PNDIS_REQUEST_TYPE;
220
221#define NDIS_OBJECT_REVISION_1 1
222
223#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
224#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_RCV 0x00000001
225#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_RCV 0x00000002
226#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_RCV 0x00000004
227#define NDIS_STATISTICS_FLAGS_VALID_BYTES_RCV 0x00000008
228#define NDIS_STATISTICS_FLAGS_VALID_RCV_DISCARDS 0x00000010
229#define NDIS_STATISTICS_FLAGS_VALID_RCV_ERROR 0x00000020
230#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_XMIT 0x00000040
231#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_XMIT 0x00000080
232#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_XMIT 0x00000100
233#define NDIS_STATISTICS_FLAGS_VALID_BYTES_XMIT 0x00000200
234#define NDIS_STATISTICS_FLAGS_VALID_XMIT_ERROR 0x00000400
235#define NDIS_STATISTICS_FLAGS_VALID_XMIT_DISCARDS 0x00008000
236#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_RCV 0x00010000
237#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_RCV 0x00020000
238#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_RCV 0x00040000
239#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_XMIT 0x00080000
240#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_XMIT 0x00100000
241#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_XMIT 0x00200000
242
243#define NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_RESET 0x00000001
244#define NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_REINITIALIZE 0x00000002
245
246#define NDIS_STATISTICS_INFO_REVISION_1 1
247#define NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1 1
248#define NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES_REVISION_1 1
249#define NDIS_OBJECT_TYPE_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1 1
250#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620
251#define NDIS_OBJECT_TYPE_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_2 2
252#endif
253#if NDIS_SUPPORT_NDIS630
254#define NDIS_RSC_STATISTICS_REVISION_1 1
255#endif
256
257#define NDIS_SIZEOF_STATISTICS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_STATISTICS_INFO, ifHCOutBroadcastOctets)
258#define NDIS_SIZEOF_INTERRUPT_MODERATION_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_INTERRUPT_MODERATION_PARAMETERS, InterruptModeration)
259#define NDIS_SIZEOF_TIMEOUT_DPC_REQUEST_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES, TimeoutArray)
260#define NDIS_SIZEOF_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, MaxLinkWidth)
261#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620
262#define NDIS_SIZEOF_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, MaxInterruptMessages)
263#endif
264#if NDIS_SUPPORT_NDIS630
265#define NDIS_SIZEOF_RSC_STATISTICS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSC_STATISTICS_INFO, Aborts)
266#endif
267
268 typedef struct _NDIS_STATISTICS_INFO {
269 NDIS_OBJECT_HEADER Header;
270 ULONG SupportedStatistics;
271 ULONG64 ifInDiscards;
272 ULONG64 ifInErrors;
273 ULONG64 ifHCInOctets;
274 ULONG64 ifHCInUcastPkts;
275 ULONG64 ifHCInMulticastPkts;
276 ULONG64 ifHCInBroadcastPkts;
277 ULONG64 ifHCOutOctets;
278 ULONG64 ifHCOutUcastPkts;
279 ULONG64 ifHCOutMulticastPkts;
280 ULONG64 ifHCOutBroadcastPkts;
281 ULONG64 ifOutErrors;
282 ULONG64 ifOutDiscards;
283 ULONG64 ifHCInUcastOctets;
284 ULONG64 ifHCInMulticastOctets;
285 ULONG64 ifHCInBroadcastOctets;
286 ULONG64 ifHCOutUcastOctets;
287 ULONG64 ifHCOutMulticastOctets;
288 ULONG64 ifHCOutBroadcastOctets;
289 } NDIS_STATISTICS_INFO, *PNDIS_STATISTICS_INFO;
290
291#if NDIS_SUPPORT_NDIS630
292 typedef struct _NDIS_RSC_STATISTICS_INFO {
293 NDIS_OBJECT_HEADER Header;
294 ULONG64 CoalescedPkts;
295 ULONG64 CoalescedOctets;
296 ULONG64 CoalesceEvents;
297 ULONG64 Aborts;
298 } NDIS_RSC_STATISTICS_INFO, *PNDIS_RSC_STATISTICS_INFO;
299#endif
300
301 typedef enum _NDIS_INTERRUPT_MODERATION {
302 NdisInterruptModerationUnknown,
303 NdisInterruptModerationNotSupported,
304 NdisInterruptModerationEnabled,
305 NdisInterruptModerationDisabled
306 } NDIS_INTERRUPT_MODERATION, *PNDIS_INTERRUPT_MODERATION;
307
308 typedef struct _NDIS_INTERRUPT_MODERATION_PARAMETERS {
309 NDIS_OBJECT_HEADER Header;
310 ULONG Flags;
311 NDIS_INTERRUPT_MODERATION InterruptModeration;
312 } NDIS_INTERRUPT_MODERATION_PARAMETERS, *PNDIS_INTERRUPT_MODERATION_PARAMETERS;
313
314 typedef struct _NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES {
315 NDIS_OBJECT_HEADER Header;
316 ULONG Flags;
317 ULONG TimeoutArrayLength;
318 ULONG TimeoutArray[1];
319 } NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES, *PNDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES;
320
321 typedef struct _NDIS_PCI_DEVICE_CUSTOM_PROPERTIES {
322 NDIS_OBJECT_HEADER Header;
323 UINT32 DeviceType;
324 UINT32 CurrentSpeedAndMode;
325 UINT32 CurrentPayloadSize;
326 UINT32 MaxPayloadSize;
327 UINT32 MaxReadRequestSize;
328 UINT32 CurrentLinkSpeed;
329 UINT32 CurrentLinkWidth;
330 UINT32 MaxLinkSpeed;
331 UINT32 MaxLinkWidth;
332#if (NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620)
333 UINT32 PciExpressVersion;
334 UINT32 InterruptType;
335 UINT32 MaxInterruptMessages;
336#endif
337 } NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, *PNDIS_PCI_DEVICE_CUSTOM_PROPERTIES;
338#endif
339
340#define OID_GEN_SUPPORTED_LIST 0x00010101
341#define OID_GEN_HARDWARE_STATUS 0x00010102
342#define OID_GEN_MEDIA_SUPPORTED 0x00010103
343#define OID_GEN_MEDIA_IN_USE 0x00010104
344#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105
345#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106
346#define OID_GEN_LINK_SPEED 0x00010107
347#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108
348#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109
349#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010a
350#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010b
351#define OID_GEN_VENDOR_ID 0x0001010c
352#define OID_GEN_VENDOR_DESCRIPTION 0x0001010d
353#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010e
354#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010f
355#define OID_GEN_DRIVER_VERSION 0x00010110
356#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111
357#define OID_GEN_PROTOCOL_OPTIONS 0x00010112
358#define OID_GEN_MAC_OPTIONS 0x00010113
359#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114
360#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115
361
362#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116
363#define OID_GEN_SUPPORTED_GUIDS 0x00010117
364#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118
365#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119
366#define OID_GEN_MEDIA_CAPABILITIES 0x00010201
367#define OID_GEN_PHYSICAL_MEDIUM 0x00010202
368#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
369#define OID_GEN_RECEIVE_SCALE_CAPABILITIES 0x00010203
370#define OID_GEN_RECEIVE_SCALE_PARAMETERS 0x00010204
371#define OID_GEN_MAC_ADDRESS 0x00010205
372#define OID_GEN_MAX_LINK_SPEED 0x00010206
373#define OID_GEN_LINK_STATE 0x00010207
374#define OID_GEN_LINK_PARAMETERS 0x00010208
375#define OID_GEN_INTERRUPT_MODERATION 0x00010209
376#define OID_GEN_NDIS_RESERVED_3 0x0001020a
377#define OID_GEN_NDIS_RESERVED_4 0x0001020b
378#define OID_GEN_NDIS_RESERVED_5 0x0001020c
379#define OID_GEN_ENUMERATE_PORTS 0x0001020d
380#define OID_GEN_PORT_STATE 0x0001020e
381#define OID_GEN_PORT_AUTHENTICATION_PARAMETERS 0x0001020f
382#define OID_GEN_TIMEOUT_DPC_REQUEST_CAPABILITIES 0x00010210
383#define OID_GEN_PCI_DEVICE_CUSTOM_PROPERTIES 0x00010211
384#define OID_GEN_NDIS_RESERVED_6 0x00010212
385#define OID_GEN_PHYSICAL_MEDIUM_EX 0x00010213
386#endif
387
388#define OID_GEN_MACHINE_NAME 0x0001021a
389#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021b
390#define OID_GEN_VLAN_ID 0x0001021c
391#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
392#define OID_GEN_RECEIVE_HASH 0x0001021f
393#define OID_GEN_MINIPORT_RESTART_ATTRIBUTES 0x0001021d
394
395#if NDIS_SUPPORT_NDIS61
396#define OID_GEN_HD_SPLIT_PARAMETERS 0x0001021e
397#define OID_GEN_HD_SPLIT_CURRENT_CONFIG 0x00010220
398#endif
399
400#define OID_GEN_PROMISCUOUS_MODE 0x00010280
401#define OID_GEN_LAST_CHANGE 0x00010281
402#define OID_GEN_DISCONTINUITY_TIME 0x00010282
403#define OID_GEN_OPERATIONAL_STATUS 0x00010283
404#define OID_GEN_XMIT_LINK_SPEED 0x00010284
405#define OID_GEN_RCV_LINK_SPEED 0x00010285
406#define OID_GEN_UNKNOWN_PROTOS 0x00010286
407#define OID_GEN_INTERFACE_INFO 0x00010287
408#define OID_GEN_ADMIN_STATUS 0x00010288
409#define OID_GEN_ALIAS 0x00010289
410#define OID_GEN_MEDIA_CONNECT_STATUS_EX 0x0001028a
411#define OID_GEN_LINK_SPEED_EX 0x0001028b
412#define OID_GEN_MEDIA_DUPLEX_STATE 0x0001028c
413#define OID_GEN_IP_OPER_STATUS 0x0001028d
414
415#define OID_WWAN_DRIVER_CAPS 0x0e010100
416#define OID_WWAN_DEVICE_CAPS 0x0e010101
417#define OID_WWAN_READY_INFO 0x0e010102
418#define OID_WWAN_RADIO_STATE 0x0e010103
419#define OID_WWAN_PIN 0x0e010104
420#define OID_WWAN_PIN_LIST 0x0e010105
421#define OID_WWAN_HOME_PROVIDER 0x0e010106
422#define OID_WWAN_PREFERRED_PROVIDERS 0x0e010107
423#define OID_WWAN_VISIBLE_PROVIDERS 0x0e010108
424#define OID_WWAN_REGISTER_STATE 0x0e010109
425#define OID_WWAN_PACKET_SERVICE 0x0e01010a
426#define OID_WWAN_SIGNAL_STATE 0x0e01010b
427#define OID_WWAN_CONNECT 0x0e01010c
428#define OID_WWAN_PROVISIONED_CONTEXTS 0x0e01010d
429#define OID_WWAN_SERVICE_ACTIVATION 0x0e01010e
430#define OID_WWAN_SMS_CONFIGURATION 0x0e01010f
431#define OID_WWAN_SMS_READ 0x0e010110
432#define OID_WWAN_SMS_SEND 0x0e010111
433#define OID_WWAN_SMS_DELETE 0x0e010112
434#define OID_WWAN_SMS_STATUS 0x0e010113
435#define OID_WWAN_VENDOR_SPECIFIC 0x0e010114
436#endif
437
438#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630
439#define OID_WWAN_AUTH_CHALLENGE 0x0e010115
440#define OID_WWAN_ENUMERATE_DEVICE_SERVICES 0x0e010116
441#define OID_WWAN_SUBSCRIBE_DEVICE_SERVICE_EVENTS 0x0e010117
442#define OID_WWAN_DEVICE_SERVICE_COMMAND 0x0e010118
443#define OID_WWAN_USSD 0x0e010119
444#define OID_WWAN_PIN_EX 0x0e010121
445#define OID_WWAN_ENUMERATE_DEVICE_SERVICE_COMMANDS 0x0e010122
446#define OID_WWAN_DEVICE_SERVICE_SESSION 0x0e010123
447#define OID_WWAN_DEVICE_SERVICE_SESSION_WRITE 0x0e010124
448#define OID_WWAN_PREFERRED_MULTICARRIER_PROVIDERS 0x0e010125
449#endif
450
451#define OID_GEN_XMIT_OK 0x00020101
452#define OID_GEN_RCV_OK 0x00020102
453#define OID_GEN_XMIT_ERROR 0x00020103
454#define OID_GEN_RCV_ERROR 0x00020104
455#define OID_GEN_RCV_NO_BUFFER 0x00020105
456#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
457#define OID_GEN_STATISTICS 0x00020106
458#endif
459
460#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201
461#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202
462#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203
463#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204
464#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205
465#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206
466#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207
467#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208
468#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209
469#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020a
470#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020b
471#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020c
472#define OID_GEN_RCV_CRC_ERROR 0x0002020d
473#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020e
474#define OID_GEN_GET_TIME_CAPS 0x0002020f
475#define OID_GEN_GET_NETCARD_TIME 0x00020210
476#define OID_GEN_NETCARD_LOAD 0x00020211
477#define OID_GEN_DEVICE_PROFILE 0x00020212
478#define OID_GEN_INIT_TIME_MS 0x00020213
479#define OID_GEN_RESET_COUNTS 0x00020214
480#define OID_GEN_MEDIA_SENSE_COUNTS 0x00020215
481#define OID_GEN_FRIENDLY_NAME 0x00020216
482#define OID_GEN_NDIS_RESERVED_1 0x00020217
483#define OID_GEN_NDIS_RESERVED_2 0x00020218
484#define OID_GEN_NDIS_RESERVED_5 0x0001020c
485#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
486#define OID_GEN_BYTES_RCV 0x00020219
487#define OID_GEN_BYTES_XMIT 0x0002021a
488#define OID_GEN_RCV_DISCARDS 0x0002021b
489#define OID_GEN_XMIT_DISCARDS 0x0002021c
490#endif
491#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630
492#define OID_TCP_RSC_STATISTICS 0x0002021d
493#define OID_GEN_NDIS_RESERVED_7 0x0002021e
494#endif
495
496#define OID_GEN_CO_SUPPORTED_LIST OID_GEN_SUPPORTED_LIST
497#define OID_GEN_CO_HARDWARE_STATUS OID_GEN_HARDWARE_STATUS
498#define OID_GEN_CO_MEDIA_SUPPORTED OID_GEN_MEDIA_SUPPORTED
499#define OID_GEN_CO_MEDIA_IN_USE OID_GEN_MEDIA_IN_USE
500#define OID_GEN_CO_LINK_SPEED OID_GEN_LINK_SPEED
501#define OID_GEN_CO_VENDOR_ID OID_GEN_VENDOR_ID
502#define OID_GEN_CO_VENDOR_DESCRIPTION OID_GEN_VENDOR_DESCRIPTION
503#define OID_GEN_CO_DRIVER_VERSION OID_GEN_DRIVER_VERSION
504#define OID_GEN_CO_PROTOCOL_OPTIONS OID_GEN_PROTOCOL_OPTIONS
505#define OID_GEN_CO_MAC_OPTIONS OID_GEN_MAC_OPTIONS
506#define OID_GEN_CO_MEDIA_CONNECT_STATUS OID_GEN_MEDIA_CONNECT_STATUS
507#define OID_GEN_CO_VENDOR_DRIVER_VERSION OID_GEN_VENDOR_DRIVER_VERSION
508#define OID_GEN_CO_SUPPORTED_GUIDS OID_GEN_SUPPORTED_GUIDS
509#define OID_GEN_CO_GET_TIME_CAPS OID_GEN_GET_TIME_CAPS
510#define OID_GEN_CO_GET_NETCARD_TIME OID_GEN_GET_NETCARD_TIME
511#define OID_GEN_CO_MINIMUM_LINK_SPEED 0x00020120
512
513#define OID_GEN_CO_XMIT_PDUS_OK OID_GEN_XMIT_OK
514#define OID_GEN_CO_RCV_PDUS_OK OID_GEN_RCV_OK
515#define OID_GEN_CO_XMIT_PDUS_ERROR OID_GEN_XMIT_ERROR
516#define OID_GEN_CO_RCV_PDUS_ERROR OID_GEN_RCV_ERROR
517#define OID_GEN_CO_RCV_PDUS_NO_BUFFER OID_GEN_RCV_NO_BUFFER
518
519#define OID_GEN_CO_RCV_CRC_ERROR OID_GEN_RCV_CRC_ERROR
520#define OID_GEN_CO_TRANSMIT_QUEUE_LENGTH OID_GEN_TRANSMIT_QUEUE_LENGTH
521#define OID_GEN_CO_BYTES_XMIT OID_GEN_DIRECTED_BYTES_XMIT
522#define OID_GEN_CO_BYTES_RCV OID_GEN_DIRECTED_BYTES_RCV
523#define OID_GEN_CO_NETCARD_LOAD OID_GEN_NETCARD_LOAD
524#define OID_GEN_CO_DEVICE_PROFILE OID_GEN_DEVICE_PROFILE
525#define OID_GEN_CO_BYTES_XMIT_OUTSTANDING 0x00020221
526
527#define OID_802_3_PERMANENT_ADDRESS 0x01010101
528#define OID_802_3_CURRENT_ADDRESS 0x01010102
529#define OID_802_3_MULTICAST_LIST 0x01010103
530#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104
531
532#define OID_802_3_MAC_OPTIONS 0x01010105
533
534#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001
535
536#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101
537#define OID_802_3_XMIT_ONE_COLLISION 0x01020102
538#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103
539
540#define OID_802_3_XMIT_DEFERRED 0x01020201
541#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202
542#define OID_802_3_RCV_OVERRUN 0x01020203
543#define OID_802_3_XMIT_UNDERRUN 0x01020204
544#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205
545#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206
546#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207
547
548#if (NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6)
549#define OID_802_3_ADD_MULTICAST_ADDRESS 0x01010208
550#define OID_802_3_DELETE_MULTICAST_ADDRESS 0x01010209
551#endif
552
553#define OID_802_5_PERMANENT_ADDRESS 0x02010101
554#define OID_802_5_CURRENT_ADDRESS 0x02010102
555#define OID_802_5_CURRENT_FUNCTIONAL 0x02010103
556#define OID_802_5_CURRENT_GROUP 0x02010104
557#define OID_802_5_LAST_OPEN_STATUS 0x02010105
558#define OID_802_5_CURRENT_RING_STATUS 0x02010106
559#define OID_802_5_CURRENT_RING_STATE 0x02010107
560
561#define OID_802_5_LINE_ERRORS 0x02020101
562#define OID_802_5_LOST_FRAMES 0x02020102
563
564#define OID_802_5_BURST_ERRORS 0x02020201
565#define OID_802_5_AC_ERRORS 0x02020202
566#define OID_802_5_ABORT_DELIMETERS 0x02020203
567#define OID_802_5_FRAME_COPIED_ERRORS 0x02020204
568#define OID_802_5_FREQUENCY_ERRORS 0x02020205
569#define OID_802_5_TOKEN_ERRORS 0x02020206
570#define OID_802_5_INTERNAL_ERRORS 0x02020207
571
572#define OID_FDDI_LONG_PERMANENT_ADDR 0x03010101
573#define OID_FDDI_LONG_CURRENT_ADDR 0x03010102
574#define OID_FDDI_LONG_MULTICAST_LIST 0x03010103
575#define OID_FDDI_LONG_MAX_LIST_SIZE 0x03010104
576#define OID_FDDI_SHORT_PERMANENT_ADDR 0x03010105
577#define OID_FDDI_SHORT_CURRENT_ADDR 0x03010106
578#define OID_FDDI_SHORT_MULTICAST_LIST 0x03010107
579#define OID_FDDI_SHORT_MAX_LIST_SIZE 0x03010108
580
581#define OID_FDDI_ATTACHMENT_TYPE 0x03020101
582#define OID_FDDI_UPSTREAM_NODE_LONG 0x03020102
583#define OID_FDDI_DOWNSTREAM_NODE_LONG 0x03020103
584#define OID_FDDI_FRAME_ERRORS 0x03020104
585#define OID_FDDI_FRAMES_LOST 0x03020105
586#define OID_FDDI_RING_MGT_STATE 0x03020106
587#define OID_FDDI_LCT_FAILURES 0x03020107
588#define OID_FDDI_LEM_REJECTS 0x03020108
589#define OID_FDDI_LCONNECTION_STATE 0x03020109
590
591#define OID_FDDI_SMT_STATION_ID 0x03030201
592#define OID_FDDI_SMT_OP_VERSION_ID 0x03030202
593#define OID_FDDI_SMT_HI_VERSION_ID 0x03030203
594#define OID_FDDI_SMT_LO_VERSION_ID 0x03030204
595#define OID_FDDI_SMT_MANUFACTURER_DATA 0x03030205
596#define OID_FDDI_SMT_USER_DATA 0x03030206
597#define OID_FDDI_SMT_MIB_VERSION_ID 0x03030207
598#define OID_FDDI_SMT_MAC_CT 0x03030208
599#define OID_FDDI_SMT_NON_MASTER_CT 0x03030209
600#define OID_FDDI_SMT_MASTER_CT 0x0303020a
601#define OID_FDDI_SMT_AVAILABLE_PATHS 0x0303020b
602#define OID_FDDI_SMT_CONFIG_CAPABILITIES 0x0303020c
603#define OID_FDDI_SMT_CONFIG_POLICY 0x0303020d
604#define OID_FDDI_SMT_CONNECTION_POLICY 0x0303020e
605#define OID_FDDI_SMT_T_NOTIFY 0x0303020f
606#define OID_FDDI_SMT_STAT_RPT_POLICY 0x03030210
607#define OID_FDDI_SMT_TRACE_MAX_EXPIRATION 0x03030211
608#define OID_FDDI_SMT_PORT_INDEXES 0x03030212
609#define OID_FDDI_SMT_MAC_INDEXES 0x03030213
610#define OID_FDDI_SMT_BYPASS_PRESENT 0x03030214
611#define OID_FDDI_SMT_ECM_STATE 0x03030215
612#define OID_FDDI_SMT_CF_STATE 0x03030216
613#define OID_FDDI_SMT_HOLD_STATE 0x03030217
614#define OID_FDDI_SMT_REMOTE_DISCONNECT_FLAG 0x03030218
615#define OID_FDDI_SMT_STATION_STATUS 0x03030219
616#define OID_FDDI_SMT_PEER_WRAP_FLAG 0x0303021a
617#define OID_FDDI_SMT_MSG_TIME_STAMP 0x0303021b
618#define OID_FDDI_SMT_TRANSITION_TIME_STAMP 0x0303021c
619#define OID_FDDI_SMT_SET_COUNT 0x0303021d
620#define OID_FDDI_SMT_LAST_SET_STATION_ID 0x0303021e
621#define OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS 0x0303021f
622#define OID_FDDI_MAC_BRIDGE_FUNCTIONS 0x03030220
623#define OID_FDDI_MAC_T_MAX_CAPABILITY 0x03030221
624#define OID_FDDI_MAC_TVX_CAPABILITY 0x03030222
625#define OID_FDDI_MAC_AVAILABLE_PATHS 0x03030223
626#define OID_FDDI_MAC_CURRENT_PATH 0x03030224
627#define OID_FDDI_MAC_UPSTREAM_NBR 0x03030225
628#define OID_FDDI_MAC_DOWNSTREAM_NBR 0x03030226
629#define OID_FDDI_MAC_OLD_UPSTREAM_NBR 0x03030227
630#define OID_FDDI_MAC_OLD_DOWNSTREAM_NBR 0x03030228
631#define OID_FDDI_MAC_DUP_ADDRESS_TEST 0x03030229
632#define OID_FDDI_MAC_REQUESTED_PATHS 0x0303022a
633#define OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE 0x0303022b
634#define OID_FDDI_MAC_INDEX 0x0303022c
635#define OID_FDDI_MAC_SMT_ADDRESS 0x0303022d
636#define OID_FDDI_MAC_LONG_GRP_ADDRESS 0x0303022e
637#define OID_FDDI_MAC_SHORT_GRP_ADDRESS 0x0303022f
638#define OID_FDDI_MAC_T_REQ 0x03030230
639#define OID_FDDI_MAC_T_NEG 0x03030231
640#define OID_FDDI_MAC_T_MAX 0x03030232
641#define OID_FDDI_MAC_TVX_VALUE 0x03030233
642#define OID_FDDI_MAC_T_PRI0 0x03030234
643#define OID_FDDI_MAC_T_PRI1 0x03030235
644#define OID_FDDI_MAC_T_PRI2 0x03030236
645#define OID_FDDI_MAC_T_PRI3 0x03030237
646#define OID_FDDI_MAC_T_PRI4 0x03030238
647#define OID_FDDI_MAC_T_PRI5 0x03030239
648#define OID_FDDI_MAC_T_PRI6 0x0303023a
649#define OID_FDDI_MAC_FRAME_CT 0x0303023b
650#define OID_FDDI_MAC_COPIED_CT 0x0303023c
651#define OID_FDDI_MAC_TRANSMIT_CT 0x0303023d
652#define OID_FDDI_MAC_TOKEN_CT 0x0303023e
653#define OID_FDDI_MAC_ERROR_CT 0x0303023f
654#define OID_FDDI_MAC_LOST_CT 0x03030240
655#define OID_FDDI_MAC_TVX_EXPIRED_CT 0x03030241
656#define OID_FDDI_MAC_NOT_COPIED_CT 0x03030242
657#define OID_FDDI_MAC_LATE_CT 0x03030243
658#define OID_FDDI_MAC_RING_OP_CT 0x03030244
659#define OID_FDDI_MAC_FRAME_ERROR_THRESHOLD 0x03030245
660#define OID_FDDI_MAC_FRAME_ERROR_RATIO 0x03030246
661#define OID_FDDI_MAC_NOT_COPIED_THRESHOLD 0x03030247
662#define OID_FDDI_MAC_NOT_COPIED_RATIO 0x03030248
663#define OID_FDDI_MAC_RMT_STATE 0x03030249
664#define OID_FDDI_MAC_DA_FLAG 0x0303024a
665#define OID_FDDI_MAC_UNDA_FLAG 0x0303024b
666#define OID_FDDI_MAC_FRAME_ERROR_FLAG 0x0303024c
667#define OID_FDDI_MAC_NOT_COPIED_FLAG 0x0303024d
668#define OID_FDDI_MAC_MA_UNITDATA_AVAILABLE 0x0303024e
669#define OID_FDDI_MAC_HARDWARE_PRESENT 0x0303024f
670#define OID_FDDI_MAC_MA_UNITDATA_ENABLE 0x03030250
671#define OID_FDDI_PATH_INDEX 0x03030251
672#define OID_FDDI_PATH_RING_LATENCY 0x03030252
673#define OID_FDDI_PATH_TRACE_STATUS 0x03030253
674#define OID_FDDI_PATH_SBA_PAYLOAD 0x03030254
675#define OID_FDDI_PATH_SBA_OVERHEAD 0x03030255
676#define OID_FDDI_PATH_CONFIGURATION 0x03030256
677#define OID_FDDI_PATH_T_R_MODE 0x03030257
678#define OID_FDDI_PATH_SBA_AVAILABLE 0x03030258
679#define OID_FDDI_PATH_TVX_LOWER_BOUND 0x03030259
680#define OID_FDDI_PATH_T_MAX_LOWER_BOUND 0x0303025a
681#define OID_FDDI_PATH_MAX_T_REQ 0x0303025b
682#define OID_FDDI_PORT_MY_TYPE 0x0303025c
683#define OID_FDDI_PORT_NEIGHBOR_TYPE 0x0303025d
684#define OID_FDDI_PORT_CONNECTION_POLICIES 0x0303025e
685#define OID_FDDI_PORT_MAC_INDICATED 0x0303025f
686#define OID_FDDI_PORT_CURRENT_PATH 0x03030260
687#define OID_FDDI_PORT_REQUESTED_PATHS 0x03030261
688#define OID_FDDI_PORT_MAC_PLACEMENT 0x03030262
689#define OID_FDDI_PORT_AVAILABLE_PATHS 0x03030263
690#define OID_FDDI_PORT_MAC_LOOP_TIME 0x03030264
691#define OID_FDDI_PORT_PMD_CLASS 0x03030265
692#define OID_FDDI_PORT_CONNECTION_CAPABILITIES 0x03030266
693#define OID_FDDI_PORT_INDEX 0x03030267
694#define OID_FDDI_PORT_MAINT_LS 0x03030268
695#define OID_FDDI_PORT_BS_FLAG 0x03030269
696#define OID_FDDI_PORT_PC_LS 0x0303026a
697#define OID_FDDI_PORT_EB_ERROR_CT 0x0303026b
698#define OID_FDDI_PORT_LCT_FAIL_CT 0x0303026c
699#define OID_FDDI_PORT_LER_ESTIMATE 0x0303026d
700#define OID_FDDI_PORT_LEM_REJECT_CT 0x0303026e
701#define OID_FDDI_PORT_LEM_CT 0x0303026f
702#define OID_FDDI_PORT_LER_CUTOFF 0x03030270
703#define OID_FDDI_PORT_LER_ALARM 0x03030271
704#define OID_FDDI_PORT_CONNNECT_STATE 0x03030272
705#define OID_FDDI_PORT_PCM_STATE 0x03030273
706#define OID_FDDI_PORT_PC_WITHHOLD 0x03030274
707#define OID_FDDI_PORT_LER_FLAG 0x03030275
708#define OID_FDDI_PORT_HARDWARE_PRESENT 0x03030276
709#define OID_FDDI_SMT_STATION_ACTION 0x03030277
710#define OID_FDDI_PORT_ACTION 0x03030278
711#define OID_FDDI_IF_DESCR 0x03030279
712#define OID_FDDI_IF_TYPE 0x0303027a
713#define OID_FDDI_IF_MTU 0x0303027b
714#define OID_FDDI_IF_SPEED 0x0303027c
715#define OID_FDDI_IF_PHYS_ADDRESS 0x0303027d
716#define OID_FDDI_IF_ADMIN_STATUS 0x0303027e
717#define OID_FDDI_IF_OPER_STATUS 0x0303027f
718#define OID_FDDI_IF_LAST_CHANGE 0x03030280
719#define OID_FDDI_IF_IN_OCTETS 0x03030281
720#define OID_FDDI_IF_IN_UCAST_PKTS 0x03030282
721#define OID_FDDI_IF_IN_NUCAST_PKTS 0x03030283
722#define OID_FDDI_IF_IN_DISCARDS 0x03030284
723#define OID_FDDI_IF_IN_ERRORS 0x03030285
724#define OID_FDDI_IF_IN_UNKNOWN_PROTOS 0x03030286
725#define OID_FDDI_IF_OUT_OCTETS 0x03030287
726#define OID_FDDI_IF_OUT_UCAST_PKTS 0x03030288
727#define OID_FDDI_IF_OUT_NUCAST_PKTS 0x03030289
728#define OID_FDDI_IF_OUT_DISCARDS 0x0303028a
729#define OID_FDDI_IF_OUT_ERRORS 0x0303028b
730#define OID_FDDI_IF_OUT_QLEN 0x0303028c
731#define OID_FDDI_IF_SPECIFIC 0x0303028d
732
733#define OID_WAN_PERMANENT_ADDRESS 0x04010101
734#define OID_WAN_CURRENT_ADDRESS 0x04010102
735#define OID_WAN_QUALITY_OF_SERVICE 0x04010103
736#define OID_WAN_PROTOCOL_TYPE 0x04010104
737#define OID_WAN_MEDIUM_SUBTYPE 0x04010105
738#define OID_WAN_HEADER_FORMAT 0x04010106
739
740#define OID_WAN_GET_INFO 0x04010107
741#define OID_WAN_SET_LINK_INFO 0x04010108
742#define OID_WAN_GET_LINK_INFO 0x04010109
743#define OID_WAN_LINE_COUNT 0x0401010a
744#define OID_WAN_PROTOCOL_CAPS 0x0401010b
745
746#define OID_WAN_GET_BRIDGE_INFO 0x0401020a
747#define OID_WAN_SET_BRIDGE_INFO 0x0401020b
748#define OID_WAN_GET_COMP_INFO 0x0401020c
749#define OID_WAN_SET_COMP_INFO 0x0401020d
750#define OID_WAN_GET_STATS_INFO 0x0401020e
751
752#define OID_WAN_CO_GET_INFO 0x04010180
753#define OID_WAN_CO_SET_LINK_INFO 0x04010181
754#define OID_WAN_CO_GET_LINK_INFO 0x04010182
755#define OID_WAN_CO_GET_COMP_INFO 0x04010280
756#define OID_WAN_CO_SET_COMP_INFO 0x04010281
757#define OID_WAN_CO_GET_STATS_INFO 0x04010282
758
759#define OID_LTALK_CURRENT_NODE_ID 0x05010102
760
761#define OID_LTALK_IN_BROADCASTS 0x05020101
762#define OID_LTALK_IN_LENGTH_ERRORS 0x05020102
763
764#define OID_LTALK_OUT_NO_HANDLERS 0x05020201
765#define OID_LTALK_COLLISIONS 0x05020202
766#define OID_LTALK_DEFERS 0x05020203
767#define OID_LTALK_NO_DATA_ERRORS 0x05020204
768#define OID_LTALK_RANDOM_CTS_ERRORS 0x05020205
769#define OID_LTALK_FCS_ERRORS 0x05020206
770
771#define OID_ARCNET_PERMANENT_ADDRESS 0x06010101
772#define OID_ARCNET_CURRENT_ADDRESS 0x06010102
773
774#define OID_ARCNET_RECONFIGURATIONS 0x06020201
775
776#define OID_TAPI_ACCEPT 0x07030101
777#define OID_TAPI_ANSWER 0x07030102
778#define OID_TAPI_CLOSE 0x07030103
779#define OID_TAPI_CLOSE_CALL 0x07030104
780#define OID_TAPI_CONDITIONAL_MEDIA_DETECTION 0x07030105
781#define OID_TAPI_CONFIG_DIALOG 0x07030106
782#define OID_TAPI_DEV_SPECIFIC 0x07030107
783#define OID_TAPI_DIAL 0x07030108
784#define OID_TAPI_DROP 0x07030109
785#define OID_TAPI_GET_ADDRESS_CAPS 0x0703010a
786#define OID_TAPI_GET_ADDRESS_ID 0x0703010b
787#define OID_TAPI_GET_ADDRESS_STATUS 0x0703010c
788#define OID_TAPI_GET_CALL_ADDRESS_ID 0x0703010d
789#define OID_TAPI_GET_CALL_INFO 0x0703010e
790#define OID_TAPI_GET_CALL_STATUS 0x0703010f
791#define OID_TAPI_GET_DEV_CAPS 0x07030110
792#define OID_TAPI_GET_DEV_CONFIG 0x07030111
793#define OID_TAPI_GET_EXTENSION_ID 0x07030112
794#define OID_TAPI_GET_ID 0x07030113
795#define OID_TAPI_GET_LINE_DEV_STATUS 0x07030114
796#define OID_TAPI_MAKE_CALL 0x07030115
797#define OID_TAPI_NEGOTIATE_EXT_VERSION 0x07030116
798#define OID_TAPI_OPEN 0x07030117
799#define OID_TAPI_PROVIDER_INITIALIZE 0x07030118
800#define OID_TAPI_PROVIDER_SHUTDOWN 0x07030119
801#define OID_TAPI_SECURE_CALL 0x0703011a
802#define OID_TAPI_SELECT_EXT_VERSION 0x0703011b
803#define OID_TAPI_SEND_USER_USER_INFO 0x0703011c
804#define OID_TAPI_SET_APP_SPECIFIC 0x0703011d
805#define OID_TAPI_SET_CALL_PARAMS 0x0703011e
806#define OID_TAPI_SET_DEFAULT_MEDIA_DETECTION 0x0703011f
807#define OID_TAPI_SET_DEV_CONFIG 0x07030120
808#define OID_TAPI_SET_MEDIA_MODE 0x07030121
809#define OID_TAPI_SET_STATUS_MESSAGES 0x07030122
810#define OID_TAPI_GATHER_DIGITS 0x07030123
811#define OID_TAPI_MONITOR_DIGITS 0x07030124
812
813#define OID_ATM_SUPPORTED_VC_RATES 0x08010101
814#define OID_ATM_SUPPORTED_SERVICE_CATEGORY 0x08010102
815#define OID_ATM_SUPPORTED_AAL_TYPES 0x08010103
816#define OID_ATM_HW_CURRENT_ADDRESS 0x08010104
817#define OID_ATM_MAX_ACTIVE_VCS 0x08010105
818#define OID_ATM_MAX_ACTIVE_VCI_BITS 0x08010106
819#define OID_ATM_MAX_ACTIVE_VPI_BITS 0x08010107
820#define OID_ATM_MAX_AAL0_PACKET_SIZE 0x08010108
821#define OID_ATM_MAX_AAL1_PACKET_SIZE 0x08010109
822#define OID_ATM_MAX_AAL34_PACKET_SIZE 0x0801010a
823#define OID_ATM_MAX_AAL5_PACKET_SIZE 0x0801010b
824
825#define OID_ATM_SIGNALING_VPIVCI 0x08010201
826#define OID_ATM_ASSIGNED_VPI 0x08010202
827#define OID_ATM_ACQUIRE_ACCESS_NET_RESOURCES 0x08010203
828#define OID_ATM_RELEASE_ACCESS_NET_RESOURCES 0x08010204
829#define OID_ATM_ILMI_VPIVCI 0x08010205
830#define OID_ATM_DIGITAL_BROADCAST_VPIVCI 0x08010206
831#define OID_ATM_GET_NEAREST_FLOW 0x08010207
832#define OID_ATM_ALIGNMENT_REQUIRED 0x08010208
833#define OID_ATM_LECS_ADDRESS 0x08010209
834#define OID_ATM_SERVICE_ADDRESS 0x0801020a
835
836#define OID_ATM_CALL_PROCEEDING 0x0801020b
837#define OID_ATM_CALL_ALERTING 0x0801020c
838#define OID_ATM_PARTY_ALERTING 0x0801020d
839#define OID_ATM_CALL_NOTIFY 0x0801020e
840
841#define OID_ATM_MY_IP_NM_ADDRESS 0x0801020f
842
843#define OID_ATM_RCV_CELLS_OK 0x08020101
844#define OID_ATM_XMIT_CELLS_OK 0x08020102
845#define OID_ATM_RCV_CELLS_DROPPED 0x08020103
846
847#define OID_ATM_RCV_INVALID_VPI_VCI 0x08020201
848#define OID_ATM_CELLS_HEC_ERROR 0x08020202
849#define OID_ATM_RCV_REASSEMBLY_ERROR 0x08020203
850
851#define OID_802_11_BSSID 0x0d010101
852#define OID_802_11_SSID 0x0d010102
853#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0d010203
854#define OID_802_11_NETWORK_TYPE_IN_USE 0x0d010204
855#define OID_802_11_TX_POWER_LEVEL 0x0d010205
856#define OID_802_11_RSSI 0x0d010206
857#define OID_802_11_RSSI_TRIGGER 0x0d010207
858#define OID_802_11_INFRASTRUCTURE_MODE 0x0d010108
859#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0d010209
860#define OID_802_11_RTS_THRESHOLD 0x0d01020a
861#define OID_802_11_NUMBER_OF_ANTENNAS 0x0d01020b
862#define OID_802_11_RX_ANTENNA_SELECTED 0x0d01020c
863#define OID_802_11_TX_ANTENNA_SELECTED 0x0d01020d
864#define OID_802_11_SUPPORTED_RATES 0x0d01020e
865#define OID_802_11_DESIRED_RATES 0x0d010210
866#define OID_802_11_CONFIGURATION 0x0d010211
867#define OID_802_11_STATISTICS 0x0d020212
868#define OID_802_11_ADD_WEP 0x0d010113
869#define OID_802_11_REMOVE_WEP 0x0d010114
870#define OID_802_11_DISASSOCIATE 0x0d010115
871#define OID_802_11_POWER_MODE 0x0d010216
872#define OID_802_11_BSSID_LIST 0x0d010217
873#define OID_802_11_AUTHENTICATION_MODE 0x0d010118
874#define OID_802_11_PRIVACY_FILTER 0x0d010119
875#define OID_802_11_BSSID_LIST_SCAN 0x0d01011a
876#define OID_802_11_WEP_STATUS 0x0d01011b
877
878#define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS
879#define OID_802_11_RELOAD_DEFAULTS 0x0d01011c
880
881#define OID_802_11_ADD_KEY 0x0d01011d
882#define OID_802_11_REMOVE_KEY 0x0d01011e
883#define OID_802_11_ASSOCIATION_INFORMATION 0x0d01011f
884#define OID_802_11_TEST 0x0d010120
885#define OID_802_11_MEDIA_STREAM_MODE 0x0d010121
886#define OID_802_11_CAPABILITY 0x0d010122
887#define OID_802_11_PMKID 0x0d010123
888#define OID_802_11_NON_BCAST_SSID_LIST 0x0d010124
889#define OID_802_11_RADIO_STATUS 0x0d010125
890
891#define NDIS_ETH_TYPE_IPV4 0x0800
892#define NDIS_ETH_TYPE_ARP 0x0806
893#define NDIS_ETH_TYPE_IPV6 0x86dd
894#define NDIS_ETH_TYPE_802_1X 0x888e
895#define NDIS_ETH_TYPE_802_1Q 0x8100
896#define NDIS_ETH_TYPE_SLOW_PROTOCOL 0x8809
897
898#define NDIS_802_11_LENGTH_SSID 32
899#define NDIS_802_11_LENGTH_RATES 8
900#define NDIS_802_11_LENGTH_RATES_EX 16
901
902#define NDIS_802_11_AUTH_REQUEST_REAUTH 0x01
903#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE 0x02
904#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR 0x06
905#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR 0x0e
906#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS 0x0f
907
908#define NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED 0x01
909
910#define NDIS_802_11_AI_REQFI_CAPABILITIES 1
911#define NDIS_802_11_AI_REQFI_LISTENINTERVAL 2
912#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS 4
913
914#define NDIS_802_11_AI_RESFI_CAPABILITIES 1
915#define NDIS_802_11_AI_RESFI_STATUSCODE 2
916#define NDIS_802_11_AI_RESFI_ASSOCIATIONID 4
917
918 typedef enum _NDIS_802_11_STATUS_TYPE {
919 Ndis802_11StatusType_Authentication,
920 Ndis802_11StatusType_MediaStreamMode,
921 Ndis802_11StatusType_PMKID_CandidateList,
922 Ndis802_11StatusTypeMax
923 } NDIS_802_11_STATUS_TYPE, *PNDIS_802_11_STATUS_TYPE;
924
925 typedef UCHAR NDIS_802_11_MAC_ADDRESS[6];
926
927 typedef struct _NDIS_802_11_STATUS_INDICATION {
928 NDIS_802_11_STATUS_TYPE StatusType;
929 } NDIS_802_11_STATUS_INDICATION, *PNDIS_802_11_STATUS_INDICATION;
930
931 typedef struct _NDIS_802_11_AUTHENTICATION_REQUEST {
932 ULONG Length;
933 NDIS_802_11_MAC_ADDRESS Bssid;
934 ULONG Flags;
935 } NDIS_802_11_AUTHENTICATION_REQUEST, *PNDIS_802_11_AUTHENTICATION_REQUEST;
936
937 typedef struct _PMKID_CANDIDATE {
938 NDIS_802_11_MAC_ADDRESS BSSID;
939 ULONG Flags;
940 } PMKID_CANDIDATE, *PPMKID_CANDIDATE;
941
942 typedef struct _NDIS_802_11_PMKID_CANDIDATE_LIST {
943 ULONG Version;
944 ULONG NumCandidates;
945 PMKID_CANDIDATE CandidateList[1];
946 } NDIS_802_11_PMKID_CANDIDATE_LIST, *PNDIS_802_11_PMKID_CANDIDATE_LIST;
947
948 typedef enum _NDIS_802_11_NETWORK_TYPE {
949 Ndis802_11FH,
950 Ndis802_11DS,
951 Ndis802_11OFDM5,
952 Ndis802_11OFDM24,
953 Ndis802_11Automode,
954 Ndis802_11NetworkTypeMax
955 } NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE;
956
957 typedef struct _NDIS_802_11_NETWORK_TYPE_LIST {
958 ULONG NumberOfItems;
959 NDIS_802_11_NETWORK_TYPE NetworkType [1];
960 } NDIS_802_11_NETWORK_TYPE_LIST, *PNDIS_802_11_NETWORK_TYPE_LIST;
961
962 typedef enum _NDIS_802_11_POWER_MODE {
963 Ndis802_11PowerModeCAM,
964 Ndis802_11PowerModeMAX_PSP,
965 Ndis802_11PowerModeFast_PSP,
966 Ndis802_11PowerModeMax
967 } NDIS_802_11_POWER_MODE, *PNDIS_802_11_POWER_MODE;
968
969 typedef ULONG NDIS_802_11_TX_POWER_LEVEL;
970 typedef LONG NDIS_802_11_RSSI;
971
972 typedef struct _NDIS_802_11_CONFIGURATION_FH {
973 ULONG Length;
974 ULONG HopPattern;
975 ULONG HopSet;
976 ULONG DwellTime;
977 } NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH;
978
979 typedef struct _NDIS_802_11_CONFIGURATION {
980 ULONG Length;
981 ULONG BeaconPeriod;
982 ULONG ATIMWindow;
983 ULONG DSConfig;
984 NDIS_802_11_CONFIGURATION_FH FHConfig;
985 } NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION;
986
987 typedef struct _NDIS_802_11_STATISTICS {
988 ULONG Length;
989 LARGE_INTEGER TransmittedFragmentCount;
990 LARGE_INTEGER MulticastTransmittedFrameCount;
991 LARGE_INTEGER FailedCount;
992 LARGE_INTEGER RetryCount;
993 LARGE_INTEGER MultipleRetryCount;
994 LARGE_INTEGER RTSSuccessCount;
995 LARGE_INTEGER RTSFailureCount;
996 LARGE_INTEGER ACKFailureCount;
997 LARGE_INTEGER FrameDuplicateCount;
998 LARGE_INTEGER ReceivedFragmentCount;
999 LARGE_INTEGER MulticastReceivedFrameCount;
1000 LARGE_INTEGER FCSErrorCount;
1001 LARGE_INTEGER TKIPLocalMICFailures;
1002 LARGE_INTEGER TKIPICVErrorCount;
1003 LARGE_INTEGER TKIPCounterMeasuresInvoked;
1004 LARGE_INTEGER TKIPReplays;
1005 LARGE_INTEGER CCMPFormatErrors;
1006 LARGE_INTEGER CCMPReplays;
1007 LARGE_INTEGER CCMPDecryptErrors;
1008 LARGE_INTEGER FourWayHandshakeFailures;
1009 LARGE_INTEGER WEPUndecryptableCount;
1010 LARGE_INTEGER WEPICVErrorCount;
1011 LARGE_INTEGER DecryptSuccessCount;
1012 LARGE_INTEGER DecryptFailureCount;
1013 } NDIS_802_11_STATISTICS, *PNDIS_802_11_STATISTICS;
1014
1015 typedef ULONG NDIS_802_11_KEY_INDEX;
1016 typedef ULONGLONG NDIS_802_11_KEY_RSC;
1017
1018 typedef struct _NDIS_802_11_KEY {
1019 ULONG Length;
1020 ULONG KeyIndex;
1021 ULONG KeyLength;
1022 NDIS_802_11_MAC_ADDRESS BSSID;
1023 NDIS_802_11_KEY_RSC KeyRSC;
1024 UCHAR KeyMaterial[1];
1025 } NDIS_802_11_KEY, *PNDIS_802_11_KEY;
1026
1027 typedef struct _NDIS_802_11_REMOVE_KEY {
1028 ULONG Length;
1029 ULONG KeyIndex;
1030 NDIS_802_11_MAC_ADDRESS BSSID;
1031 } NDIS_802_11_REMOVE_KEY, *PNDIS_802_11_REMOVE_KEY;
1032 typedef struct _NDIS_802_11_WEP {
1033 ULONG Length;
1034 ULONG KeyIndex;
1035 ULONG KeyLength;
1036 UCHAR KeyMaterial[1];
1037 } NDIS_802_11_WEP, *PNDIS_802_11_WEP;
1038
1039 typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE {
1040 Ndis802_11IBSS,
1041 Ndis802_11Infrastructure,
1042 Ndis802_11AutoUnknown,
1043 Ndis802_11InfrastructureMax
1044 } NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE;
1045
1046 typedef enum _NDIS_802_11_AUTHENTICATION_MODE {
1047 Ndis802_11AuthModeOpen,
1048 Ndis802_11AuthModeShared,
1049 Ndis802_11AuthModeAutoSwitch,
1050 Ndis802_11AuthModeWPA,
1051 Ndis802_11AuthModeWPAPSK,
1052 Ndis802_11AuthModeWPANone,
1053 Ndis802_11AuthModeWPA2,
1054 Ndis802_11AuthModeWPA2PSK,
1055 Ndis802_11AuthModeMax
1056 } NDIS_802_11_AUTHENTICATION_MODE, *PNDIS_802_11_AUTHENTICATION_MODE;
1057
1058 typedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES];
1059 typedef UCHAR NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX];
1060
1061 typedef struct _NDIS_802_11_SSID {
1062 ULONG SsidLength;
1063 UCHAR Ssid[NDIS_802_11_LENGTH_SSID];
1064 } NDIS_802_11_SSID, *PNDIS_802_11_SSID;
1065
1066 typedef struct _NDIS_WLAN_BSSID {
1067 ULONG Length;
1068 NDIS_802_11_MAC_ADDRESS MacAddress;
1069 UCHAR Reserved[2];
1070 NDIS_802_11_SSID Ssid;
1071 ULONG Privacy;
1072 NDIS_802_11_RSSI Rssi;
1073 NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
1074 NDIS_802_11_CONFIGURATION Configuration;
1075 NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
1076 NDIS_802_11_RATES SupportedRates;
1077 } NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID;
1078
1079 typedef struct _NDIS_802_11_BSSID_LIST {
1080 ULONG NumberOfItems;
1081 NDIS_WLAN_BSSID Bssid[1];
1082 } NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST;
1083
1084 typedef struct _NDIS_WLAN_BSSID_EX {
1085 ULONG Length;
1086 NDIS_802_11_MAC_ADDRESS MacAddress;
1087 UCHAR Reserved[2];
1088 NDIS_802_11_SSID Ssid;
1089 ULONG Privacy;
1090 NDIS_802_11_RSSI Rssi;
1091 NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
1092 NDIS_802_11_CONFIGURATION Configuration;
1093 NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
1094 NDIS_802_11_RATES_EX SupportedRates;
1095 ULONG IELength;
1096 UCHAR IEs[1];
1097 } NDIS_WLAN_BSSID_EX, *PNDIS_WLAN_BSSID_EX;
1098
1099 typedef struct _NDIS_802_11_BSSID_LIST_EX {
1100 ULONG NumberOfItems;
1101 NDIS_WLAN_BSSID_EX Bssid[1];
1102 } NDIS_802_11_BSSID_LIST_EX, *PNDIS_802_11_BSSID_LIST_EX;
1103
1104 typedef struct _NDIS_802_11_FIXED_IEs {
1105 UCHAR Timestamp[8];
1106 USHORT BeaconInterval;
1107 USHORT Capabilities;
1108 } NDIS_802_11_FIXED_IEs, *PNDIS_802_11_FIXED_IEs;
1109
1110 typedef struct _NDIS_802_11_VARIABLE_IEs {
1111 UCHAR ElementID;
1112 UCHAR Length;
1113 UCHAR data[1];
1114 } NDIS_802_11_VARIABLE_IEs, *PNDIS_802_11_VARIABLE_IEs;
1115
1116 typedef ULONG NDIS_802_11_FRAGMENTATION_THRESHOLD;
1117 typedef ULONG NDIS_802_11_RTS_THRESHOLD;
1118 typedef ULONG NDIS_802_11_ANTENNA;
1119
1120 typedef enum _NDIS_802_11_PRIVACY_FILTER {
1121 Ndis802_11PrivFilterAcceptAll,
1122 Ndis802_11PrivFilter8021xWEP
1123 } NDIS_802_11_PRIVACY_FILTER, *PNDIS_802_11_PRIVACY_FILTER;
1124
1125 typedef enum _NDIS_802_11_WEP_STATUS {
1126 Ndis802_11WEPEnabled,
1127 Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,
1128 Ndis802_11WEPDisabled,
1129 Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,
1130 Ndis802_11WEPKeyAbsent,
1131 Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,
1132 Ndis802_11WEPNotSupported,
1133 Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,
1134 Ndis802_11Encryption2Enabled,
1135 Ndis802_11Encryption2KeyAbsent,
1136 Ndis802_11Encryption3Enabled,
1137 Ndis802_11Encryption3KeyAbsent
1138 } NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS, NDIS_802_11_ENCRYPTION_STATUS, *PNDIS_802_11_ENCRYPTION_STATUS;
1139
1140 typedef enum _NDIS_802_11_RELOAD_DEFAULTS {
1141 Ndis802_11ReloadWEPKeys
1142 } NDIS_802_11_RELOAD_DEFAULTS, *PNDIS_802_11_RELOAD_DEFAULTS;
1143
1144 typedef struct _NDIS_802_11_AI_REQFI {
1145 USHORT Capabilities;
1146 USHORT ListenInterval;
1147 NDIS_802_11_MAC_ADDRESS CurrentAPAddress;
1148 } NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI;
1149
1150 typedef struct _NDIS_802_11_AI_RESFI {
1151 USHORT Capabilities;
1152 USHORT StatusCode;
1153 USHORT AssociationId;
1154 } NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI;
1155
1156 typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION {
1157 ULONG Length;
1158 USHORT AvailableRequestFixedIEs;
1159 NDIS_802_11_AI_REQFI RequestFixedIEs;
1160 ULONG RequestIELength;
1161 ULONG OffsetRequestIEs;
1162 USHORT AvailableResponseFixedIEs;
1163 NDIS_802_11_AI_RESFI ResponseFixedIEs;
1164 ULONG ResponseIELength;
1165 ULONG OffsetResponseIEs;
1166 } NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION;
1167
1168 typedef struct _NDIS_802_11_AUTHENTICATION_EVENT {
1169 NDIS_802_11_STATUS_INDICATION Status;
1170 NDIS_802_11_AUTHENTICATION_REQUEST Request[1];
1171 } NDIS_802_11_AUTHENTICATION_EVENT, *PNDIS_802_11_AUTHENTICATION_EVENT;
1172
1173 typedef struct _NDIS_802_11_TEST {
1174 ULONG Length;
1175 ULONG Type;
1176 __C89_NAMELESS union {
1177 NDIS_802_11_AUTHENTICATION_EVENT AuthenticationEvent;
1178 NDIS_802_11_RSSI RssiTrigger;
1179 };
1180 } NDIS_802_11_TEST, *PNDIS_802_11_TEST;
1181
1182 typedef enum _NDIS_802_11_MEDIA_STREAM_MODE {
1183 Ndis802_11MediaStreamOff,
1184 Ndis802_11MediaStreamOn,
1185 } NDIS_802_11_MEDIA_STREAM_MODE, *PNDIS_802_11_MEDIA_STREAM_MODE;
1186
1187 typedef UCHAR NDIS_802_11_PMKID_VALUE[16];
1188
1189 typedef struct _BSSID_INFO {
1190 NDIS_802_11_MAC_ADDRESS BSSID;
1191 NDIS_802_11_PMKID_VALUE PMKID;
1192 } BSSID_INFO, *PBSSID_INFO;
1193
1194 typedef struct _NDIS_802_11_PMKID {
1195 ULONG Length;
1196 ULONG BSSIDInfoCount;
1197 BSSID_INFO BSSIDInfo[1];
1198 } NDIS_802_11_PMKID, *PNDIS_802_11_PMKID;
1199
1200 typedef struct _NDIS_802_11_AUTHENTICATION_ENCRYPTION {
1201 NDIS_802_11_AUTHENTICATION_MODE AuthModeSupported;
1202 NDIS_802_11_ENCRYPTION_STATUS EncryptStatusSupported;
1203 } NDIS_802_11_AUTHENTICATION_ENCRYPTION, *PNDIS_802_11_AUTHENTICATION_ENCRYPTION;
1204
1205 typedef struct _NDIS_802_11_CAPABILITY {
1206 ULONG Length;
1207 ULONG Version;
1208 ULONG NoOfPMKIDs;
1209 ULONG NoOfAuthEncryptPairsSupported;
1210 NDIS_802_11_AUTHENTICATION_ENCRYPTION AuthenticationEncryptionSupported[1];
1211 } NDIS_802_11_CAPABILITY, *PNDIS_802_11_CAPABILITY;
1212
1213 typedef struct _NDIS_802_11_NON_BCAST_SSID_LIST {
1214 ULONG NumberOfItems;
1215 NDIS_802_11_SSID Non_Bcast_Ssid[1];
1216 } NDIS_802_11_NON_BCAST_SSID_LIST, *PNDIS_802_11_NON_BCAST_SSID_LIST;
1217
1218 typedef enum _NDIS_802_11_RADIO_STATUS {
1219 Ndis802_11RadioStatusOn,
1220 Ndis802_11RadioStatusHardwareOff,
1221 Ndis802_11RadioStatusSoftwareOff,
1222 Ndis802_11RadioStatusHardwareSoftwareOff,
1223 Ndis802_11RadioStatusMax
1224 } NDIS_802_11_RADIO_STATUS, *PNDIS_802_11_RADIO_STATUS;
1225
1226#define OID_IRDA_RECEIVING 0x0a010100
1227#define OID_IRDA_TURNAROUND_TIME 0x0a010101
1228#define OID_IRDA_SUPPORTED_SPEEDS 0x0a010102
1229#define OID_IRDA_LINK_SPEED 0x0a010103
1230#define OID_IRDA_MEDIA_BUSY 0x0a010104
1231
1232#define OID_IRDA_EXTRA_RCV_BOFS 0x0a010200
1233#define OID_IRDA_RATE_SNIFF 0x0a010201
1234#define OID_IRDA_UNICAST_LIST 0x0a010202
1235#define OID_IRDA_MAX_UNICAST_LIST_SIZE 0x0a010203
1236#define OID_IRDA_MAX_RECEIVE_WINDOW_SIZE 0x0a010204
1237#define OID_IRDA_MAX_SEND_WINDOW_SIZE 0x0a010205
1238#define OID_IRDA_RESERVED1 0x0a01020a
1239#define OID_IRDA_RESERVED2 0x0a01020f
1240
1241#define OID_1394_LOCAL_NODE_INFO 0x0c010101
1242#define OID_1394_VC_INFO 0x0c010102
1243
1244#define OID_CO_ADD_PVC 0xfe000001
1245#define OID_CO_DELETE_PVC 0xfe000002
1246#define OID_CO_GET_CALL_INFORMATION 0xfe000003
1247#define OID_CO_ADD_ADDRESS 0xfe000004
1248#define OID_CO_DELETE_ADDRESS 0xfe000005
1249#define OID_CO_GET_ADDRESSES 0xfe000006
1250#define OID_CO_ADDRESS_CHANGE 0xfe000007
1251#define OID_CO_SIGNALING_ENABLED 0xfe000008
1252#define OID_CO_SIGNALING_DISABLED 0xfe000009
1253#define OID_CO_AF_CLOSE 0xfe00000a
1254
1255#define OID_CO_TAPI_CM_CAPS 0xfe001001
1256#define OID_CO_TAPI_LINE_CAPS 0xfe001002
1257#define OID_CO_TAPI_ADDRESS_CAPS 0xfe001003
1258#define OID_CO_TAPI_TRANSLATE_TAPI_CALLPARAMS 0xfe001004
1259#define OID_CO_TAPI_TRANSLATE_NDIS_CALLPARAMS 0xfe001005
1260#define OID_CO_TAPI_TRANSLATE_TAPI_SAP 0xfe001006
1261#define OID_CO_TAPI_GET_CALL_DIAGNOSTICS 0xfe001007
1262#define OID_CO_TAPI_REPORT_DIGITS 0xfe001008
1263#define OID_CO_TAPI_DONT_REPORT_DIGITS 0xfe001009
1264
1265#define OID_PNP_CAPABILITIES 0xfd010100
1266#define OID_PNP_SET_POWER 0xfd010101
1267#define OID_PNP_QUERY_POWER 0xfd010102
1268#define OID_PNP_ADD_WAKE_UP_PATTERN 0xfd010103
1269#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xfd010104
1270#define OID_PNP_WAKE_UP_PATTERN_LIST 0xfd010105
1271#define OID_PNP_ENABLE_WAKE_UP 0xfd010106
1272
1273#define OID_PNP_WAKE_UP_OK 0xfd020200
1274#define OID_PNP_WAKE_UP_ERROR 0xfd020201
1275
1276#if (NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620)
1277#define OID_PM_CURRENT_CAPABILITIES 0xfd010107
1278#define OID_PM_HARDWARE_CAPABILITIES 0xfd010108
1279#define OID_PM_PARAMETERS 0xfd010109
1280#define OID_PM_ADD_WOL_PATTERN 0xfd01010a
1281#define OID_PM_REMOVE_WOL_PATTERN 0xfd01010b
1282#define OID_PM_WOL_PATTERN_LIST 0xfd01010c
1283#define OID_PM_ADD_PROTOCOL_OFFLOAD 0xfd01010d
1284#define OID_PM_GET_PROTOCOL_OFFLOAD 0xfd01010e
1285#define OID_PM_REMOVE_PROTOCOL_OFFLOAD 0xfd01010f
1286#define OID_PM_PROTOCOL_OFFLOAD_LIST 0xfd010110
1287#define OID_PM_RESERVED_1 0xfd010111
1288
1289#define OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES 0x00010221
1290#define OID_RECEIVE_FILTER_GLOBAL_PARAMETERS 0x00010222
1291#define OID_RECEIVE_FILTER_ALLOCATE_QUEUE 0x00010223
1292#define OID_RECEIVE_FILTER_FREE_QUEUE 0x00010224
1293#define OID_RECEIVE_FILTER_ENUM_QUEUES 0x00010225
1294#define OID_RECEIVE_FILTER_QUEUE_PARAMETERS 0x00010226
1295#define OID_RECEIVE_FILTER_SET_FILTER 0x00010227
1296#define OID_RECEIVE_FILTER_CLEAR_FILTER 0x00010228
1297#define OID_RECEIVE_FILTER_ENUM_FILTERS 0x00010229
1298#define OID_RECEIVE_FILTER_PARAMETERS 0x0001022a
1299#define OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE 0x0001022b
1300#define OID_RECEIVE_FILTER_CURRENT_CAPABILITIES 0x0001022d
1301#define OID_NIC_SWITCH_HARDWARE_CAPABILITIES 0x0001022e
1302#define OID_NIC_SWITCH_CURRENT_CAPABILITIES 0x0001022f
1303#if NDIS_SUPPORT_NDIS630
1304#define OID_RECEIVE_FILTER_MOVE_FILTER 0x00010230
1305#endif
1306#define OID_VLAN_RESERVED1 0x00010231
1307#define OID_VLAN_RESERVED2 0x00010232
1308#define OID_VLAN_RESERVED3 0x00010233
1309#define OID_VLAN_RESERVED4 0x00010234
1310#if NDIS_SUPPORT_NDIS630
1311#define OID_PACKET_COALESCING_FILTER_MATCH_COUNT 0x00010235
1312#endif
1313#endif
1314
1315#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630
1316#define OID_NIC_SWITCH_CREATE_SWITCH 0x00010237
1317#define OID_NIC_SWITCH_PARAMETERS 0x00010238
1318#define OID_NIC_SWITCH_DELETE_SWITCH 0x00010239
1319#define OID_NIC_SWITCH_ENUM_SWITCHES 0x00010240
1320#define OID_NIC_SWITCH_CREATE_VPORT 0x00010241
1321#define OID_NIC_SWITCH_VPORT_PARAMETERS 0x00010242
1322#define OID_NIC_SWITCH_ENUM_VPORTS 0x00010243
1323#define OID_NIC_SWITCH_DELETE_VPORT 0x00010244
1324#define OID_NIC_SWITCH_ALLOCATE_VF 0x00010245
1325#define OID_NIC_SWITCH_FREE_VF 0x00010246
1326#define OID_NIC_SWITCH_VF_PARAMETERS 0x00010247
1327#define OID_NIC_SWITCH_ENUM_VFS 0x00010248
1328
1329#define OID_SRIOV_HARDWARE_CAPABILITIES 0x00010249
1330#define OID_SRIOV_CURRENT_CAPABILITIES 0x00010250
1331#define OID_SRIOV_READ_VF_CONFIG_SPACE 0x00010251
1332#define OID_SRIOV_WRITE_VF_CONFIG_SPACE 0x00010252
1333#define OID_SRIOV_READ_VF_CONFIG_BLOCK 0x00010253
1334#define OID_SRIOV_WRITE_VF_CONFIG_BLOCK 0x00010254
1335#define OID_SRIOV_RESET_VF 0x00010255
1336#define OID_SRIOV_SET_VF_POWER_STATE 0x00010256
1337#define OID_SRIOV_VF_VENDOR_DEVICE_ID 0x00010257
1338#define OID_SRIOV_PROBED_BARS 0x00010258
1339#define OID_SRIOV_BAR_RESOURCES 0x00010259
1340#define OID_SRIOV_PF_LUID 0x00010260
1341
1342#define OID_SRIOV_CONFIG_STATE 0x00010261
1343#define OID_SRIOV_VF_SERIAL_NUMBER 0x00010262
1344#define OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK 0x00010269
1345
1346#define OID_SWITCH_PROPERTY_ADD 0x00010263
1347#define OID_SWITCH_PROPERTY_UPDATE 0x00010264
1348#define OID_SWITCH_PROPERTY_DELETE 0x00010265
1349#define OID_SWITCH_PROPERTY_ENUM 0x00010266
1350#define OID_SWITCH_FEATURE_STATUS_QUERY 0x00010267
1351
1352#define OID_SWITCH_NIC_REQUEST 0x00010270
1353#define OID_SWITCH_PORT_PROPERTY_ADD 0x00010271
1354#define OID_SWITCH_PORT_PROPERTY_UPDATE 0x00010272
1355#define OID_SWITCH_PORT_PROPERTY_DELETE 0x00010273
1356#define OID_SWITCH_PORT_PROPERTY_ENUM 0x00010274
1357#define OID_SWITCH_PARAMETERS 0x00010275
1358#define OID_SWITCH_PORT_ARRAY 0x00010276
1359#define OID_SWITCH_NIC_ARRAY 0x00010277
1360#define OID_SWITCH_PORT_CREATE 0x00010278
1361#define OID_SWITCH_PORT_DELETE 0x00010279
1362#define OID_SWITCH_NIC_CREATE 0x0001027a
1363#define OID_SWITCH_NIC_CONNECT 0x0001027b
1364#define OID_SWITCH_NIC_DISCONNECT 0x0001027c
1365#define OID_SWITCH_NIC_DELETE 0x0001027d
1366#define OID_SWITCH_PORT_FEATURE_STATUS_QUERY 0x0001027e
1367#define OID_SWITCH_PORT_TEARDOWN 0x0001027f
1368#define OID_SWITCH_NIC_SAVE 0x00010290
1369#define OID_SWITCH_NIC_SAVE_COMPLETE 0x00010291
1370#define OID_SWITCH_NIC_RESTORE 0x00010292
1371#define OID_SWITCH_NIC_RESTORE_COMPLETE 0x00010293
1372#define OID_SWITCH_NIC_UPDATED 0x00010294
1373#define OID_SWITCH_PORT_UPDATED 0x00010295
1374#endif
1375
1376#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001
1377#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002
1378#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004
1379
1380#define OID_TCP_TASK_OFFLOAD 0xfc010201
1381#define OID_TCP_TASK_IPSEC_ADD_SA 0xfc010202
1382#define OID_TCP_TASK_IPSEC_DELETE_SA 0xfc010203
1383#define OID_TCP_SAN_SUPPORT 0xfc010204
1384#define OID_TCP_TASK_IPSEC_ADD_UDPESP_SA 0xfc010205
1385#define OID_TCP_TASK_IPSEC_DELETE_UDPESP_SA 0xfc010206
1386#define OID_TCP4_OFFLOAD_STATS 0xfc010207
1387#define OID_TCP6_OFFLOAD_STATS 0xfc010208
1388#define OID_IP4_OFFLOAD_STATS 0xfc010209
1389#define OID_IP6_OFFLOAD_STATS 0xfc01020a
1390
1391#define OID_TCP_OFFLOAD_CURRENT_CONFIG 0xfc01020b
1392#define OID_TCP_OFFLOAD_PARAMETERS 0xfc01020c
1393#define OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES 0xfc01020d
1394#define OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG 0xfc01020e
1395#define OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 0xfc01020f
1396#define OID_OFFLOAD_ENCAPSULATION 0x0101010a
1397
1398#if NDIS_SUPPORT_NDIS61
1399#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA 0xfc030202
1400#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA 0xfc030203
1401#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_SA 0xfc030204
1402#endif
1403#if NDIS_SUPPORT_NDIS630
1404#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX 0xfc030205
1405#endif
1406
1407#define OID_FFP_SUPPORT 0xfc010210
1408#define OID_FFP_FLUSH 0xfc010211
1409#define OID_FFP_CONTROL 0xfc010212
1410#define OID_FFP_PARAMS 0xfc010213
1411#define OID_FFP_DATA 0xfc010214
1412
1413#define OID_FFP_DRIVER_STATS 0xfc020210
1414#define OID_FFP_ADAPTER_STATS 0xfc020211
1415
1416#define OID_TCP_CONNECTION_OFFLOAD_PARAMETERS 0xfc030201
1417
1418#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620
1419#define OID_TUNNEL_INTERFACE_SET_OID 0x0f010106
1420#define OID_TUNNEL_INTERFACE_RELEASE_OID 0x0f010107
1421#endif
1422
1423#define OID_QOS_RESERVED1 0xfb010100
1424#define OID_QOS_RESERVED2 0xfb010101
1425#define OID_QOS_RESERVED3 0xfb010102
1426#define OID_QOS_RESERVED4 0xfb010103
1427#define OID_QOS_RESERVED5 0xfb010104
1428#define OID_QOS_RESERVED6 0xfb010105
1429#define OID_QOS_RESERVED7 0xfb010106
1430#define OID_QOS_RESERVED8 0xfb010107
1431#define OID_QOS_RESERVED9 0xfb010108
1432#define OID_QOS_RESERVED10 0xfb010109
1433#define OID_QOS_RESERVED11 0xfb01010a
1434#define OID_QOS_RESERVED12 0xfb01010b
1435#define OID_QOS_RESERVED13 0xfb01010c
1436#define OID_QOS_RESERVED14 0xfb01010d
1437#define OID_QOS_RESERVED15 0xfb01010e
1438#define OID_QOS_RESERVED16 0xfb01010f
1439#define OID_QOS_RESERVED17 0xfb010110
1440#define OID_QOS_RESERVED18 0xfb010111
1441#define OID_QOS_RESERVED19 0xfb010112
1442#define OID_QOS_RESERVED20 0xfb010113
1443
1444#define OFFLOAD_MAX_SAS 3
1445
1446#define OFFLOAD_INBOUND_SA 0x0001
1447#define OFFLOAD_OUTBOUND_SA 0x0002
1448
1449 typedef struct NDIS_CO_DEVICE_PROFILE {
1450 NDIS_VAR_DATA_DESC DeviceDescription;
1451 NDIS_VAR_DATA_DESC DevSpecificInfo;
1452 ULONG ulTAPISupplementaryPassThru;
1453 ULONG ulAddressModes;
1454 ULONG ulNumAddresses;
1455 ULONG ulBearerModes;
1456 ULONG ulMaxTxRate;
1457 ULONG ulMinTxRate;
1458 ULONG ulMaxRxRate;
1459 ULONG ulMinRxRate;
1460 ULONG ulMediaModes;
1461 ULONG ulGenerateToneModes;
1462 ULONG ulGenerateToneMaxNumFreq;
1463 ULONG ulGenerateDigitModes;
1464 ULONG ulMonitorToneMaxNumFreq;
1465 ULONG ulMonitorToneMaxNumEntries;
1466 ULONG ulMonitorDigitModes;
1467 ULONG ulGatherDigitsMinTimeout;
1468 ULONG ulGatherDigitsMaxTimeout;
1469 ULONG ulDevCapFlags;
1470 ULONG ulMaxNumActiveCalls;
1471 ULONG ulAnswerMode;
1472 ULONG ulUUIAcceptSize;
1473 ULONG ulUUIAnswerSize;
1474 ULONG ulUUIMakeCallSize;
1475 ULONG ulUUIDropSize;
1476 ULONG ulUUISendUserUserInfoSize;
1477 ULONG ulUUICallInfoSize;
1478 } NDIS_CO_DEVICE_PROFILE, *PNDIS_CO_DEVICE_PROFILE;
1479
1480#ifndef IP_EXPORT_INCLUDED
1481 typedef ULONG IPAddr, IPMask;
1482#endif
1483 typedef ULONG SPI_TYPE;
1484
1485 typedef enum _OFFLOAD_OPERATION_E {
1486 AUTHENTICATE = 1,
1487 ENCRYPT
1488 } OFFLOAD_OPERATION_E;
1489
1490 typedef struct _OFFLOAD_ALGO_INFO {
1491 ULONG algoIdentifier;
1492 ULONG algoKeylen;
1493 ULONG algoRounds;
1494 } OFFLOAD_ALGO_INFO, *POFFLOAD_ALGO_INFO;
1495
1496 typedef enum _OFFLOAD_CONF_ALGO {
1497 OFFLOAD_IPSEC_CONF_NONE,
1498 OFFLOAD_IPSEC_CONF_DES,
1499 OFFLOAD_IPSEC_CONF_RESERVED,
1500 OFFLOAD_IPSEC_CONF_3_DES,
1501 OFFLOAD_IPSEC_CONF_MAX
1502 } OFFLOAD_CONF_ALGO;
1503
1504 typedef enum _OFFLOAD_INTEGRITY_ALGO {
1505 OFFLOAD_IPSEC_INTEGRITY_NONE,
1506 OFFLOAD_IPSEC_INTEGRITY_MD5,
1507 OFFLOAD_IPSEC_INTEGRITY_SHA,
1508 OFFLOAD_IPSEC_INTEGRITY_MAX
1509 } OFFLOAD_INTEGRITY_ALGO;
1510
1511 typedef struct _OFFLOAD_SECURITY_ASSOCIATION {
1512 OFFLOAD_OPERATION_E Operation;
1513 SPI_TYPE SPI;
1514 OFFLOAD_ALGO_INFO IntegrityAlgo;
1515 OFFLOAD_ALGO_INFO ConfAlgo;
1516 OFFLOAD_ALGO_INFO Reserved;
1517 } OFFLOAD_SECURITY_ASSOCIATION, *POFFLOAD_SECURITY_ASSOCIATION;
1518
1519 typedef struct _OFFLOAD_IPSEC_ADD_SA {
1520 IPAddr SrcAddr;
1521 IPMask SrcMask;
1522 IPAddr DestAddr;
1523 IPMask DestMask;
1524 ULONG Protocol;
1525 USHORT SrcPort;
1526 USHORT DestPort;
1527 IPAddr SrcTunnelAddr;
1528 IPAddr DestTunnelAddr;
1529 USHORT Flags;
1530 SHORT NumSAs;
1531 OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
1532 HANDLE OffloadHandle;
1533 ULONG KeyLen;
1534 UCHAR KeyMat[1];
1535 } OFFLOAD_IPSEC_ADD_SA, *POFFLOAD_IPSEC_ADD_SA;
1536
1537 typedef struct _OFFLOAD_IPSEC_DELETE_SA {
1538 HANDLE OffloadHandle;
1539 } OFFLOAD_IPSEC_DELETE_SA, *POFFLOAD_IPSEC_DELETE_SA;
1540
1541 typedef enum _UDP_ENCAP_TYPE {
1542 OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_IKE,
1543 OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_OTHER
1544 } UDP_ENCAP_TYPE, *PUDP_ENCAP_TYPE;
1545
1546 typedef struct _OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY {
1547 UDP_ENCAP_TYPE UdpEncapType;
1548 USHORT DstEncapPort;
1549 } OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY, *POFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY;
1550
1551 typedef struct _OFFLOAD_IPSEC_ADD_UDPESP_SA {
1552 IPAddr SrcAddr;
1553 IPMask SrcMask;
1554 IPAddr DstAddr;
1555 IPMask DstMask;
1556 ULONG Protocol;
1557 USHORT SrcPort;
1558 USHORT DstPort;
1559 IPAddr SrcTunnelAddr;
1560 IPAddr DstTunnelAddr;
1561 USHORT Flags;
1562 SHORT NumSAs;
1563 OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
1564 HANDLE OffloadHandle;
1565 OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY EncapTypeEntry;
1566 HANDLE EncapTypeEntryOffldHandle;
1567 ULONG KeyLen;
1568 UCHAR KeyMat[1];
1569 } OFFLOAD_IPSEC_ADD_UDPESP_SA, *POFFLOAD_IPSEC_ADD_UDPESP_SA;
1570
1571 typedef struct _OFFLOAD_IPSEC_DELETE_UDPESP_SA {
1572 HANDLE OffloadHandle;
1573 HANDLE EncapTypeEntryOffldHandle;
1574 } OFFLOAD_IPSEC_DELETE_UDPESP_SA, *POFFLOAD_IPSEC_DELETE_UDPESP_SA;
1575
1576 typedef ULONG NDIS_VLAN_ID;
1577
1578 typedef enum _NDIS_MEDIUM {
1579 NdisMedium802_3,
1580 NdisMedium802_5,
1581 NdisMediumFddi,
1582 NdisMediumWan,
1583 NdisMediumLocalTalk,
1584 NdisMediumDix,
1585 NdisMediumArcnetRaw,
1586 NdisMediumArcnet878_2,
1587 NdisMediumAtm,
1588 NdisMediumWirelessWan,
1589 NdisMediumIrda,
1590 NdisMediumBpc,
1591 NdisMediumCoWan,
1592 NdisMedium1394,
1593 NdisMediumInfiniBand,
1594#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
1595 NdisMediumTunnel,
1596 NdisMediumNative802_11,
1597 NdisMediumLoopback,
1598#endif
1599#if NTDDI_VERSION >= 0x06010000
1600 NdisMediumWiMAX,
1601 NdisMediumIP,
1602#endif
1603 NdisMediumMax
1604 } NDIS_MEDIUM, *PNDIS_MEDIUM;
1605
1606 typedef enum _NDIS_PHYSICAL_MEDIUM {
1607 NdisPhysicalMediumUnspecified,
1608 NdisPhysicalMediumWirelessLan,
1609 NdisPhysicalMediumCableModem,
1610 NdisPhysicalMediumPhoneLine,
1611 NdisPhysicalMediumPowerLine,
1612 NdisPhysicalMediumDSL,
1613 NdisPhysicalMediumFibreChannel,
1614 NdisPhysicalMedium1394,
1615 NdisPhysicalMediumWirelessWan,
1616 NdisPhysicalMediumNative802_11,
1617 NdisPhysicalMediumBluetooth,
1618 NdisPhysicalMediumInfiniband,
1619 NdisPhysicalMediumWiMax,
1620 NdisPhysicalMediumUWB,
1621 NdisPhysicalMedium802_3,
1622 NdisPhysicalMedium802_5,
1623 NdisPhysicalMediumIrda,
1624 NdisPhysicalMediumWiredWAN,
1625 NdisPhysicalMediumWiredCoWan,
1626 NdisPhysicalMediumOther,
1627 NdisPhysicalMediumMax
1628 } NDIS_PHYSICAL_MEDIUM, *PNDIS_PHYSICAL_MEDIUM;
1629
1630 typedef struct _TRANSPORT_HEADER_OFFSET {
1631 USHORT ProtocolType;
1632 USHORT HeaderOffset;
1633 } TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;
1634
1635 typedef struct _NETWORK_ADDRESS {
1636 USHORT AddressLength;
1637 USHORT AddressType;
1638 UCHAR Address[1];
1639 } NETWORK_ADDRESS, *PNETWORK_ADDRESS;
1640
1641 typedef struct _NETWORK_ADDRESS_LIST {
1642 LONG AddressCount;
1643 USHORT AddressType;
1644 NETWORK_ADDRESS Address[1];
1645 } NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;
1646
1647 typedef struct _NETWORK_ADDRESS_IP {
1648 USHORT sin_port;
1649 ULONG in_addr;
1650 UCHAR sin_zero[8];
1651 } NETWORK_ADDRESS_IP, *PNETWORK_ADDRESS_IP;
1652
1653#define NDIS_PROTOCOL_ID_DEFAULT 0x00
1654#define NDIS_PROTOCOL_ID_TCP_IP 0x02
1655#define NDIS_PROTOCOL_ID_IPX 0x06
1656#define NDIS_PROTOCOL_ID_NBF 0x07
1657#define NDIS_PROTOCOL_ID_MAX 0x0f
1658#define NDIS_PROTOCOL_ID_MASK 0x0f
1659
1660#define READABLE_LOCAL_CLOCK 0x00000001
1661#define CLOCK_NETWORK_DERIVED 0x00000002
1662#define CLOCK_PRECISION 0x00000004
1663#define RECEIVE_TIME_INDICATION_CAPABLE 0x00000008
1664#define TIMED_SEND_CAPABLE 0x00000010
1665#define TIME_STAMP_CAPABLE 0x00000020
1666
1667#define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001
1668#define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002
1669#define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004
1670
1671#define WAN_PROTOCOL_KEEPS_STATS 0x00000001
1672
1673#define NETWORK_ADDRESS_LENGTH_IP sizeof (NETWORK_ADDRESS_IP)
1674#define NETWORK_ADDRESS_LENGTH_IPX sizeof (NETWORK_ADDRESS_IPX)
1675
1676 typedef struct _NETWORK_ADDRESS_IPX {
1677 ULONG NetworkAddress;
1678 UCHAR NodeAddress[6];
1679 USHORT Socket;
1680 } NETWORK_ADDRESS_IPX, *PNETWORK_ADDRESS_IPX;
1681
1682 typedef enum _NDIS_HARDWARE_STATUS {
1683 NdisHardwareStatusReady,
1684 NdisHardwareStatusInitializing,
1685 NdisHardwareStatusReset,
1686 NdisHardwareStatusClosing,
1687 NdisHardwareStatusNotReady
1688 } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS;
1689
1690 typedef struct _GEN_GET_TIME_CAPS {
1691 ULONG Flags;
1692 ULONG ClockPrecision;
1693 } GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;
1694
1695 typedef struct _GEN_GET_NETCARD_TIME {
1696 ULONGLONG ReadTime;
1697 } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME;
1698
1699 typedef struct _NDIS_PM_PACKET_PATTERN {
1700 ULONG Priority;
1701 ULONG Reserved;
1702 ULONG MaskSize;
1703 ULONG PatternOffset;
1704 ULONG PatternSize;
1705 ULONG PatternFlags;
1706 } NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN;
1707
1708 typedef enum _NDIS_DEVICE_POWER_STATE {
1709 NdisDeviceStateUnspecified = 0,
1710 NdisDeviceStateD0,
1711 NdisDeviceStateD1,
1712 NdisDeviceStateD2,
1713 NdisDeviceStateD3,
1714 NdisDeviceStateMaximum
1715 } NDIS_DEVICE_POWER_STATE, *PNDIS_DEVICE_POWER_STATE;
1716
1717 typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES {
1718 NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
1719 NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
1720 NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
1721 } NDIS_PM_WAKE_UP_CAPABILITIES, *PNDIS_PM_WAKE_UP_CAPABILITIES;
1722
1723 typedef struct _NDIS_PNP_CAPABILITIES {
1724 ULONG Flags;
1725 NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities;
1726 } NDIS_PNP_CAPABILITIES, *PNDIS_PNP_CAPABILITIES;
1727
1728 typedef enum _NDIS_FDDI_ATTACHMENT_TYPE {
1729 NdisFddiTypeIsolated = 1,
1730 NdisFddiTypeLocalA,
1731 NdisFddiTypeLocalB,
1732 NdisFddiTypeLocalAB,
1733 NdisFddiTypeLocalS,
1734 NdisFddiTypeWrapA,
1735 NdisFddiTypeWrapB,
1736 NdisFddiTypeWrapAB,
1737 NdisFddiTypeWrapS,
1738 NdisFddiTypeCWrapA,
1739 NdisFddiTypeCWrapB,
1740 NdisFddiTypeCWrapS,
1741 NdisFddiTypeThrough
1742 } NDIS_FDDI_ATTACHMENT_TYPE, *PNDIS_FDDI_ATTACHMENT_TYPE;
1743
1744 typedef enum _NDIS_FDDI_RING_MGT_STATE {
1745 NdisFddiRingIsolated = 1,
1746 NdisFddiRingNonOperational,
1747 NdisFddiRingOperational,
1748 NdisFddiRingDetect,
1749 NdisFddiRingNonOperationalDup,
1750 NdisFddiRingOperationalDup,
1751 NdisFddiRingDirected,
1752 NdisFddiRingTrace
1753 } NDIS_FDDI_RING_MGT_STATE, *PNDIS_FDDI_RING_MGT_STATE;
1754
1755 typedef enum _NDIS_FDDI_LCONNECTION_STATE {
1756 NdisFddiStateOff = 1,
1757 NdisFddiStateBreak,
1758 NdisFddiStateTrace,
1759 NdisFddiStateConnect,
1760 NdisFddiStateNext,
1761 NdisFddiStateSignal,
1762 NdisFddiStateJoin,
1763 NdisFddiStateVerify,
1764 NdisFddiStateActive,
1765 NdisFddiStateMaintenance
1766 } NDIS_FDDI_LCONNECTION_STATE, *PNDIS_FDDI_LCONNECTION_STATE;
1767
1768 typedef enum _NDIS_WAN_MEDIUM_SUBTYPE {
1769 NdisWanMediumHub,
1770 NdisWanMediumX_25,
1771 NdisWanMediumIsdn,
1772 NdisWanMediumSerial,
1773 NdisWanMediumFrameRelay,
1774 NdisWanMediumAtm,
1775 NdisWanMediumSonet,
1776 NdisWanMediumSW56K,
1777 NdisWanMediumPPTP,
1778 NdisWanMediumL2TP,
1779 NdisWanMediumIrda,
1780 NdisWanMediumParallel,
1781 NdisWanMediumPppoe,
1782#if NTDDI_VERSION >= 0x06000000
1783 NdisWanMediumSSTP,
1784 NdisWanMediumAgileVPN,
1785#endif
1786 } NDIS_WAN_MEDIUM_SUBTYPE, *PNDIS_WAN_MEDIUM_SUBTYPE;
1787
1788 typedef enum _NDIS_WAN_HEADER_FORMAT {
1789 NdisWanHeaderNative,
1790 NdisWanHeaderEthernet
1791 } NDIS_WAN_HEADER_FORMAT, *PNDIS_WAN_HEADER_FORMAT;
1792
1793 typedef enum _NDIS_WAN_QUALITY {
1794 NdisWanRaw,
1795 NdisWanErrorControl,
1796 NdisWanReliable
1797 } NDIS_WAN_QUALITY, *PNDIS_WAN_QUALITY;
1798
1799 typedef struct _NDIS_WAN_PROTOCOL_CAPS {
1800 ULONG Flags;
1801 ULONG Reserved;
1802 } NDIS_WAN_PROTOCOL_CAPS, *PNDIS_WAN_PROTOCOL_CAPS;
1803
1804 typedef enum _NDIS_802_5_RING_STATE {
1805 NdisRingStateOpened = 1,
1806 NdisRingStateClosed,
1807 NdisRingStateOpening,
1808 NdisRingStateClosing,
1809 NdisRingStateOpenFailure,
1810 NdisRingStateRingFailure
1811 } NDIS_802_5_RING_STATE, *PNDIS_802_5_RING_STATE;
1812
1813 typedef enum _NDIS_MEDIA_STATE {
1814 NdisMediaStateConnected,
1815 NdisMediaStateDisconnected
1816 } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE;
1817
1818 typedef ULONG Priority_802_3;
1819
1820 typedef struct _NDIS_CO_LINK_SPEED {
1821 ULONG Outbound;
1822 ULONG Inbound;
1823 } NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED;
1824
1825#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
1826#define NDIS_LINK_SPEED_UNKNOWN NET_IF_LINK_SPEED_UNKNOWN
1827
1828 typedef struct _NDIS_LINK_SPEED {
1829 ULONG64 XmitLinkSpeed;
1830 ULONG64 RcvLinkSpeed;
1831 } NDIS_LINK_SPEED, *PNDIS_LINK_SPEED;
1832#endif
1833
1834#ifndef _NDIS_
1835 typedef int NDIS_STATUS, *PNDIS_STATUS;
1836#endif
1837
1838#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
1839#ifndef __WINDOT11_H__
1840#include <windot11.h>
1841#endif
1842#endif
1843
1844#define fNDIS_GUID_TO_OID 0x00000001
1845#define fNDIS_GUID_TO_STATUS 0x00000002
1846#define fNDIS_GUID_ANSI_STRING 0x00000004
1847#define fNDIS_GUID_UNICODE_STRING 0x00000008
1848#define fNDIS_GUID_ARRAY 0x00000010
1849#define fNDIS_GUID_ALLOW_READ 0x00000020
1850#define fNDIS_GUID_ALLOW_WRITE 0x00000040
1851#define fNDIS_GUID_METHOD 0x00000080
1852#define fNDIS_GUID_NDIS_RESERVED 0x00000100
1853#define fNDIS_GUID_SUPPORT_COMMON_HEADER 0x00000200
1854
1855#define NDIS_PACKET_TYPE_DIRECTED 0x00000001
1856#define NDIS_PACKET_TYPE_MULTICAST 0x00000002
1857#define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004
1858#define NDIS_PACKET_TYPE_BROADCAST 0x00000008
1859#define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010
1860#define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020
1861#define NDIS_PACKET_TYPE_SMT 0x00000040
1862#define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080
1863#define NDIS_PACKET_TYPE_GROUP 0x00001000
1864#define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000
1865#define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000
1866#define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000
1867#define NDIS_PACKET_TYPE_NO_LOCAL 0x00010000
1868
1869#define NDIS_RING_SIGNAL_LOSS 0x00008000
1870#define NDIS_RING_HARD_ERROR 0x00004000
1871#define NDIS_RING_SOFT_ERROR 0x00002000
1872#define NDIS_RING_TRANSMIT_BEACON 0x00001000
1873#define NDIS_RING_LOBE_WIRE_FAULT 0x00000800
1874#define NDIS_RING_AUTO_REMOVAL_ERROR 0x00000400
1875#define NDIS_RING_REMOVE_RECEIVED 0x00000200
1876#define NDIS_RING_COUNTER_OVERFLOW 0x00000100
1877#define NDIS_RING_SINGLE_STATION 0x00000080
1878#define NDIS_RING_RING_RECOVERY 0x00000040
1879
1880#define NDIS_PROT_OPTION_ESTIMATED_LENGTH 0x00000001
1881#define NDIS_PROT_OPTION_NO_LOOPBACK 0x00000002
1882#define NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT 0x00000004
1883#define NDIS_PROT_OPTION_SEND_RESTRICTED 0x00000008
1884
1885#define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001
1886#define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002
1887#define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004
1888#define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008
1889
1890#define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010
1891
1892#define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020
1893#define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040
1894#define NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00000080
1895#define NDIS_MAC_OPTION_RECEIVE_AT_DPC 0x00000100
1896#define NDIS_MAC_OPTION_8021Q_VLAN 0x00000200
1897#define NDIS_MAC_OPTION_RESERVED 0x80000000
1898
1899#define NDIS_MEDIA_CAP_TRANSMIT 0x00000001
1900#define NDIS_MEDIA_CAP_RECEIVE 0x00000002
1901
1902#define NDIS_CO_MAC_OPTION_DYNAMIC_LINK_SPEED 0x00000001
1903
1904 typedef struct _NDIS_GUID {
1905 GUID Guid;
1906 __C89_NAMELESS union {
1907 NDIS_OID Oid;
1908 NDIS_STATUS Status;
1909 };
1910 ULONG Size;
1911 ULONG Flags;
1912 } NDIS_GUID, *PNDIS_GUID;
1913
1914 typedef struct _NDIS_IRDA_PACKET_INFO {
1915 ULONG ExtraBOFs;
1916 ULONG MinTurnAroundTime;
1917 } NDIS_IRDA_PACKET_INFO, *PNDIS_IRDA_PACKET_INFO;
1918
1919#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
1920#define NDIS_MAKE_NET_LUID(PNLUID, IFTYPE, NLUIDIDX) { (PNLUID)->Info.IfType = IFTYPE; (PNLUID)->Info.NetLuidIndex = NLUIDIDX; (PNLUID)->Info.Reserved = 0; }
1921
1922#define MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED 32
1923
1924#define NDIS_IF_MAX_STRING_SIZE IF_MAX_STRING_SIZE
1925#define NDIS_MAX_PHYS_ADDRESS_LENGTH IF_MAX_PHYS_ADDRESS_LENGTH
1926
1927#define NDIS_LINK_STATE_XMIT_LINK_SPEED_AUTO_NEGOTIATED 0x00000001
1928#define NDIS_LINK_STATE_RCV_LINK_SPEED_AUTO_NEGOTIATED 0x00000002
1929#define NDIS_LINK_STATE_DUPLEX_AUTO_NEGOTIATED 0x00000004
1930#define NDIS_LINK_STATE_PAUSE_FUNCTIONS_AUTO_NEGOTIATED 0x00000008
1931
1932#define NDIS_LINK_STATE_REVISION_1 1
1933#define NDIS_LINK_PARAMETERS_REVISION_1 1
1934#define NDIS_OPER_STATE_REVISION_1 1
1935#define NDIS_IP_OPER_STATUS_INFO_REVISION_1 1
1936#define NDIS_IP_OPER_STATE_REVISION_1 1
1937
1938#define NDIS_SIZEOF_LINK_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_LINK_STATE, AutoNegotiationFlags)
1939#define NDIS_SIZEOF_LINK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_LINK_PARAMETERS, AutoNegotiationFlags)
1940#define NDIS_SIZEOF_OPER_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OPER_STATE, OperationalStatusFlags)
1941#define NDIS_SIZEOF_IP_OPER_STATUS_INFO_REVISION_1 FIELD_OFFSET (NDIS_IP_OPER_STATUS_INFO, IpOperationalStatus) + MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED *sizeof (NDIS_IP_OPER_STATUS)
1942#define NDIS_SIZEOF_IP_OPER_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_IP_OPER_STATE, IpOperationalStatus)
1943
1944 typedef IF_COUNTED_STRING NDIS_IF_COUNTED_STRING, *PNDIS_IF_COUNTED_STRING;
1945 typedef IF_PHYSICAL_ADDRESS NDIS_IF_PHYSICAL_ADDRESS, *PNDIS_IF_PHYSICAL_ADDRESS;
1946 typedef NET_IF_MEDIA_CONNECT_STATE NDIS_MEDIA_CONNECT_STATE, *PNDIS_MEDIA_CONNECT_STATE;
1947 typedef NET_IF_MEDIA_DUPLEX_STATE NDIS_MEDIA_DUPLEX_STATE, *PNDIS_MEDIA_DUPLEX_STATE;
1948
1949 typedef enum _NDIS_SUPPORTED_PAUSE_FUNCTIONS {
1950 NdisPauseFunctionsUnsupported,
1951 NdisPauseFunctionsSendOnly,
1952 NdisPauseFunctionsReceiveOnly,
1953 NdisPauseFunctionsSendAndReceive,
1954 NdisPauseFunctionsUnknown
1955 } NDIS_SUPPORTED_PAUSE_FUNCTIONS, *PNDIS_SUPPORTED_PAUSE_FUNCTIONS;
1956
1957 typedef struct _NDIS_LINK_STATE {
1958 NDIS_OBJECT_HEADER Header;
1959 NDIS_MEDIA_CONNECT_STATE MediaConnectState;
1960 NDIS_MEDIA_DUPLEX_STATE MediaDuplexState;
1961 ULONG64 XmitLinkSpeed;
1962 ULONG64 RcvLinkSpeed;
1963 NDIS_SUPPORTED_PAUSE_FUNCTIONS PauseFunctions;
1964 ULONG AutoNegotiationFlags;
1965 } NDIS_LINK_STATE, *PNDIS_LINK_STATE;
1966
1967 typedef struct _NDIS_LINK_PARAMETERS {
1968 NDIS_OBJECT_HEADER Header;
1969 NDIS_MEDIA_DUPLEX_STATE MediaDuplexState;
1970 ULONG64 XmitLinkSpeed;
1971 ULONG64 RcvLinkSpeed;
1972 NDIS_SUPPORTED_PAUSE_FUNCTIONS PauseFunctions;
1973 ULONG AutoNegotiationFlags;
1974 } NDIS_LINK_PARAMETERS, *PNDIS_LINK_PARAMETERS;
1975
1976 typedef struct _NDIS_OPER_STATE {
1977 NDIS_OBJECT_HEADER Header;
1978 NET_IF_OPER_STATUS OperationalStatus;
1979 ULONG OperationalStatusFlags;
1980 } NDIS_OPER_STATE, *PNDIS_OPER_STATE;
1981
1982 typedef struct _NDIS_IP_OPER_STATUS {
1983 ULONG AddressFamily;
1984 NET_IF_OPER_STATUS OperationalStatus;
1985 ULONG OperationalStatusFlags;
1986 } NDIS_IP_OPER_STATUS, *PNDIS_IP_OPER_STATUS;
1987
1988 typedef struct _NDIS_IP_OPER_STATUS_INFO {
1989 NDIS_OBJECT_HEADER Header;
1990 ULONG Flags;
1991 ULONG NumberofAddressFamiliesReturned;
1992 NDIS_IP_OPER_STATUS IpOperationalStatus[MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED];
1993 } NDIS_IP_OPER_STATUS_INFO, *PNDIS_IP_OPER_STATUS_INFO;
1994
1995 typedef struct _NDIS_IP_OPER_STATE {
1996 NDIS_OBJECT_HEADER Header;
1997 ULONG Flags;
1998 NDIS_IP_OPER_STATUS IpOperationalStatus;
1999 } NDIS_IP_OPER_STATE, *PNDIS_IP_OPER_STATE;
2000
2001#define NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 0
2002#define NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED 1
2003#define NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED 2
2004#define NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED 3
2005#define NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED 4
2006
2007#define NDIS_OFFLOAD_PARAMETERS_LSOV1_DISABLED 1
2008#define NDIS_OFFLOAD_PARAMETERS_LSOV1_ENABLED 2
2009
2010#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_DISABLED 1
2011#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_ENABLED 2
2012#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_ESP_ENABLED 3
2013#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_AND_ESP_ENABLED 4
2014
2015#define NDIS_OFFLOAD_PARAMETERS_LSOV2_DISABLED 1
2016#define NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED 2
2017
2018#if NDIS_SUPPORT_NDIS61
2019#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_DISABLED 1
2020#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_ENABLED 2
2021#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_ESP_ENABLED 3
2022#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_AND_ESP_ENABLED 4
2023#endif
2024
2025#if NDIS_SUPPORT_NDIS630
2026#define NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED 1
2027#define NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED 2
2028
2029#define NDIS_ENCAPSULATION_TYPE_GRE_MAC 0x00000001
2030#define NDIS_ENCAPSULATION_TYPE_MAX NDIS_ENCAPSULATION_TYPE_GRE_MAC
2031#endif
2032
2033#define NDIS_OFFLOAD_PARAMETERS_CONNECTION_OFFLOAD_DISABLED 1
2034#define NDIS_OFFLOAD_PARAMETERS_CONNECTION_OFFLOAD_ENABLED 2
2035
2036#define NDIS_OFFLOAD_PARAMETERS_REVISION_1 1
2037#if NDIS_SUPPORT_NDIS61
2038#define NDIS_OFFLOAD_PARAMETERS_REVISION_2 2
2039#endif
2040#if NDIS_SUPPORT_NDIS630
2041#define NDIS_OFFLOAD_PARAMETERS_REVISION_3 3
2042#define NDIS_OFFLOAD_PARAMETERS_SKIP_REGISTRY_UPDATE 0x00000001
2043#endif
2044
2045 typedef struct _NDIS_OFFLOAD_PARAMETERS {
2046 NDIS_OBJECT_HEADER Header;
2047 UCHAR IPv4Checksum;
2048 UCHAR TCPIPv4Checksum;
2049 UCHAR UDPIPv4Checksum;
2050 UCHAR TCPIPv6Checksum;
2051 UCHAR UDPIPv6Checksum;
2052 UCHAR LsoV1;
2053 UCHAR IPsecV1;
2054 UCHAR LsoV2IPv4;
2055 UCHAR LsoV2IPv6;
2056 UCHAR TcpConnectionIPv4;
2057 UCHAR TcpConnectionIPv6;
2058 ULONG Flags;
2059#if NDIS_SUPPORT_NDIS61
2060 UCHAR IPsecV2;
2061 UCHAR IPsecV2IPv4;
2062#endif
2063#if NDIS_SUPPORT_NDIS630
2064 __C89_NAMELESS struct {
2065 UCHAR RscIPv4;
2066 UCHAR RscIPv6;
2067 };
2068#endif
2069#if NDIS_SUPPORT_NDIS630
2070 __C89_NAMELESS struct {
2071 UCHAR EncapsulatedPacketTaskOffload;
2072 UCHAR EncapsulationTypes;
2073 };
2074#endif
2075 } NDIS_OFFLOAD_PARAMETERS, *PNDIS_OFFLOAD_PARAMETERS;
2076
2077#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, Flags)
2078#if NDIS_SUPPORT_NDIS61
2079#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, IPsecV2IPv4)
2080#endif
2081#if NDIS_SUPPORT_NDIS630
2082#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, EncapsulationTypes)
2083#endif
2084
2085#define NDIS_OFFLOAD_NOT_SUPPORTED 0
2086#define NDIS_OFFLOAD_SUPPORTED 1
2087
2088#define NDIS_OFFLOAD_SET_NO_CHANGE 0
2089#define NDIS_OFFLOAD_SET_ON 1
2090#define NDIS_OFFLOAD_SET_OFF 2
2091
2092#define NDIS_ENCAPSULATION_NOT_SUPPORTED 0x00000000
2093#define NDIS_ENCAPSULATION_NULL 0x00000001
2094#define NDIS_ENCAPSULATION_IEEE_802_3 0x00000002
2095#define NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q 0x00000004
2096#define NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB 0x00000008
2097#define NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED 0x00000010
2098
2099 typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_V1 {
2100 struct {
2101 ULONG Encapsulation;
2102 ULONG MaxOffLoadSize;
2103 ULONG MinSegmentCount;
2104 ULONG TcpOptions:2;
2105 ULONG IpOptions:2;
2106 } IPv4;
2107 } NDIS_TCP_LARGE_SEND_OFFLOAD_V1, *PNDIS_TCP_LARGE_SEND_OFFLOAD_V1;
2108
2109 typedef struct _NDIS_TCP_IP_CHECKSUM_OFFLOAD {
2110 struct {
2111 ULONG Encapsulation;
2112 ULONG IpOptionsSupported:2;
2113 ULONG TcpOptionsSupported:2;
2114 ULONG TcpChecksum:2;
2115 ULONG UdpChecksum:2;
2116 ULONG IpChecksum:2;
2117 } IPv4Transmit;
2118 struct {
2119 ULONG Encapsulation;
2120 ULONG IpOptionsSupported:2;
2121 ULONG TcpOptionsSupported:2;
2122 ULONG TcpChecksum:2;
2123 ULONG UdpChecksum:2;
2124 ULONG IpChecksum:2;
2125 } IPv4Receive;
2126 struct {
2127 ULONG Encapsulation;
2128 ULONG IpExtensionHeadersSupported:2;
2129 ULONG TcpOptionsSupported:2;
2130 ULONG TcpChecksum:2;
2131 ULONG UdpChecksum:2;
2132 } IPv6Transmit;
2133 struct {
2134 ULONG Encapsulation;
2135 ULONG IpExtensionHeadersSupported:2;
2136 ULONG TcpOptionsSupported:2;
2137 ULONG TcpChecksum:2;
2138 ULONG UdpChecksum:2;
2139 } IPv6Receive;
2140 } NDIS_TCP_IP_CHECKSUM_OFFLOAD, *PNDIS_TCP_IP_CHECKSUM_OFFLOAD;
2141 typedef struct _NDIS_IPSEC_OFFLOAD_V1 {
2142 struct {
2143 ULONG Encapsulation;
2144 ULONG AhEspCombined;
2145 ULONG TransportTunnelCombined;
2146 ULONG IPv4Options;
2147 ULONG Flags;
2148 } Supported;
2149 struct {
2150 ULONG Md5 : 2;
2151 ULONG Sha_1 : 2;
2152 ULONG Transport : 2;
2153 ULONG Tunnel : 2;
2154 ULONG Send : 2;
2155 ULONG Receive : 2;
2156 } IPv4AH;
2157 struct {
2158 ULONG Des : 2;
2159 ULONG Reserved : 2;
2160 ULONG TripleDes : 2;
2161 ULONG NullEsp : 2;
2162 ULONG Transport : 2;
2163 ULONG Tunnel : 2;
2164 ULONG Send : 2;
2165 ULONG Receive : 2;
2166 } IPv4ESP;
2167 } NDIS_IPSEC_OFFLOAD_V1, *PNDIS_IPSEC_OFFLOAD_V1;
2168
2169 typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_V2 {
2170 struct {
2171 ULONG Encapsulation;
2172 ULONG MaxOffLoadSize;
2173 ULONG MinSegmentCount;
2174 }IPv4;
2175 struct {
2176 ULONG Encapsulation;
2177 ULONG MaxOffLoadSize;
2178 ULONG MinSegmentCount;
2179 ULONG IpExtensionHeadersSupported:2;
2180 ULONG TcpOptionsSupported:2;
2181 } IPv6;
2182 } NDIS_TCP_LARGE_SEND_OFFLOAD_V2, *PNDIS_TCP_LARGE_SEND_OFFLOAD_V2;
2183
2184#if NDIS_SUPPORT_NDIS61
2185#define IPSEC_OFFLOAD_V2_AUTHENTICATION_MD5 0x00000001
2186#define IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_1 0x00000002
2187#define IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_256 0x00000004
2188#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_128 0x00000008
2189#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_192 0x00000010
2190#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_256 0x00000020
2191
2192#define IPSEC_OFFLOAD_V2_ENCRYPTION_NONE 0x00000001
2193#define IPSEC_OFFLOAD_V2_ENCRYPTION_DES_CBC 0x00000002
2194#define IPSEC_OFFLOAD_V2_ENCRYPTION_3_DES_CBC 0x00000004
2195#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_128 0x00000008
2196#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_192 0x00000010
2197#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_256 0x00000020
2198#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_128 0x00000040
2199#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_192 0x00000080
2200#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_256 0x00000100
2201
2202 typedef struct _NDIS_IPSEC_OFFLOAD_V2 {
2203 ULONG Encapsulation;
2204 BOOLEAN IPv6Supported;
2205 BOOLEAN IPv4Options;
2206 BOOLEAN IPv6NonIPsecExtensionHeaders;
2207 BOOLEAN Ah;
2208 BOOLEAN Esp;
2209 BOOLEAN AhEspCombined;
2210 BOOLEAN Transport;
2211 BOOLEAN Tunnel;
2212 BOOLEAN TransportTunnelCombined;
2213 BOOLEAN LsoSupported;
2214 BOOLEAN ExtendedSequenceNumbers;
2215 ULONG UdpEsp;
2216 ULONG AuthenticationAlgorithms;
2217 ULONG EncryptionAlgorithms;
2218 ULONG SaOffloadCapacity;
2219 } NDIS_IPSEC_OFFLOAD_V2, *PNDIS_IPSEC_OFFLOAD_V2;
2220#endif
2221
2222#if NDIS_SUPPORT_NDIS630
2223#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED 0x00000000
2224#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 0x00000001
2225#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 0x00000002
2226#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 0x00000004
2227#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 0x00000008
2228#endif
2229
2230#define NDIS_OFFLOAD_FLAGS_GROUP_CHECKSUM_CAPABILITIES 0x1
2231#if NDIS_SUPPORT_NDIS630
2232#define IPSEC_OFFLOAD_V2_AND_TCP_CHECKSUM_COEXISTENCE 0x2
2233#define IPSEC_OFFLOAD_V2_AND_UDP_CHECKSUM_COEXISTENCE 0x4
2234#endif
2235
2236#define NDIS_MAXIMUM_PORTS 0x1000000
2237
2238#define NDIS_DEFAULT_PORT_NUMBER ((NDIS_PORT_NUMBER) 0)
2239
2240#define NDIS_WMI_DEFAULT_METHOD_ID 1
2241
2242#define NDIS_WMI_OBJECT_TYPE_SET 0x01
2243#define NDIS_WMI_OBJECT_TYPE_METHOD 0x02
2244#define NDIS_WMI_OBJECT_TYPE_EVENT 0x03
2245#define NDIS_WMI_OBJECT_TYPE_ENUM_ADAPTER 0x04
2246#define NDIS_WMI_OBJECT_TYPE_OUTPUT_INFO 0x05
2247
2248#define NDIS_DEVICE_TYPE_ENDPOINT 0x00000001
2249
2250#define NDIS_OFFLOAD_REVISION_1 1
2251#define NDIS_TCP_CONNECTION_OFFLOAD_REVISION_1 1
2252#define NDIS_PORT_AUTHENTICATION_PARAMETERS_REVISION_1 1
2253#define NDIS_WMI_METHOD_HEADER_REVISION_1 1
2254#define NDIS_WMI_SET_HEADER_REVISION_1 1
2255#define NDIS_WMI_EVENT_HEADER_REVISION_1 1
2256#define NDIS_WMI_ENUM_ADAPTER_REVISION_1 1
2257#if NDIS_SUPPORT_NDIS61
2258#define NDIS_TCP_CONNECTION_OFFLOAD_REVISION_2 2
2259#define NDIS_OFFLOAD_REVISION_2 2
2260#endif
2261#if NDIS_SUPPORT_NDIS630
2262#define NDIS_OFFLOAD_REVISION_3 3
2263#define NDIS_TCP_RECV_SEG_COALESC_OFFLOAD_REVISION_1 1
2264#endif
2265
2266#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, Flags)
2267#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, Flags)
2268#define NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_CONNECTION_OFFLOAD, Flags)
2269#define NDIS_SIZEOF_WMI_TCP_CONNECTION_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_TCP_CONNECTION_OFFLOAD, Flags)
2270#define NDIS_SIZEOF_PORT_AUTHENTICATION_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_AUTHENTICATION_PARAMETERS, RcvAuthorizationState)
2271#define NDIS_SIZEOF_WMI_METHOD_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_METHOD_HEADER, Padding)
2272#define NDIS_SIZEOF_WMI_SET_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_SET_HEADER, Padding)
2273#define NDIS_SIZEOF_WMI_EVENT_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_EVENT_HEADER, Padding)
2274#define NDIS_SIZEOF_WMI_ENUM_ADAPTER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_ENUM_ADAPTER, DeviceName)
2275#if NDIS_SUPPORT_NDIS61
2276#define NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_CONNECTION_OFFLOAD, Flags)
2277#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, IPsecV2)
2278#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, IPsecV2)
2279#endif
2280#if NDIS_SUPPORT_NDIS630
2281#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, EncapsulatedPacketTaskOffloadGre)
2282#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, EncapsulatedPacketTaskOffloadGre)
2283#define NDIS_SIZEOF_TCP_RECV_SEG_COALESC_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD, IPv6.Enabled)
2284#define NDIS_SIZEOF_ENCAPSULATED_PACKET_TASK_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD, MaxHeaderSizeSupported)
2285#endif
2286
2287#if NDIS_SUPPORT_NDIS630
2288 typedef struct _NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD {
2289 struct {
2290 BOOLEAN Enabled;
2291 } IPv4;
2292 struct {
2293 BOOLEAN Enabled;
2294 } IPv6;
2295 } NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD, *PNDIS_TCP_RECV_SEG_COALESCE_OFFLOAD;
2296
2297 typedef struct _NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD {
2298 ULONG TransmitChecksumOffloadSupported:4;
2299 ULONG ReceiveChecksumOffloadSupported:4;
2300 ULONG LsoV2Supported:4;
2301 ULONG RssSupported:4;
2302 ULONG VmqSupported:4;
2303 ULONG MaxHeaderSizeSupported;
2304 } NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD, *PNDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD;
2305#endif
2306
2307 typedef struct _NDIS_OFFLOAD {
2308 NDIS_OBJECT_HEADER Header;
2309 NDIS_TCP_IP_CHECKSUM_OFFLOAD Checksum;
2310 NDIS_TCP_LARGE_SEND_OFFLOAD_V1 LsoV1;
2311 NDIS_IPSEC_OFFLOAD_V1 IPsecV1;
2312 NDIS_TCP_LARGE_SEND_OFFLOAD_V2 LsoV2;
2313 ULONG Flags;
2314#if NDIS_SUPPORT_NDIS61
2315 NDIS_IPSEC_OFFLOAD_V2 IPsecV2;
2316#endif
2317#if NDIS_SUPPORT_NDIS630
2318 NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD Rsc;
2319 NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD EncapsulatedPacketTaskOffloadGre;
2320#endif
2321 } NDIS_OFFLOAD, *PNDIS_OFFLOAD;
2322
2323 typedef struct _NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 {
2324 struct {
2325 ULONG Encapsulation;
2326 ULONG MaxOffLoadSize;
2327 ULONG MinSegmentCount;
2328 ULONG TcpOptions;
2329 ULONG IpOptions;
2330 } IPv4;
2331 } NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1, *PNDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1;
2332
2333 typedef struct _NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD {
2334 struct {
2335 ULONG Encapsulation;
2336 ULONG IpOptionsSupported;
2337 ULONG TcpOptionsSupported;
2338 ULONG TcpChecksum;
2339 ULONG UdpChecksum;
2340 ULONG IpChecksum;
2341 } IPv4Transmit;
2342 struct {
2343 ULONG Encapsulation;
2344 ULONG IpOptionsSupported;
2345 ULONG TcpOptionsSupported;
2346 ULONG TcpChecksum;
2347 ULONG UdpChecksum;
2348 ULONG IpChecksum;
2349 } IPv4Receive;
2350 struct {
2351 ULONG Encapsulation;
2352 ULONG IpExtensionHeadersSupported;
2353 ULONG TcpOptionsSupported;
2354 ULONG TcpChecksum;
2355 ULONG UdpChecksum;
2356 } IPv6Transmit;
2357 struct {
2358 ULONG Encapsulation;
2359 ULONG IpExtensionHeadersSupported;
2360 ULONG TcpOptionsSupported;
2361 ULONG TcpChecksum;
2362 ULONG UdpChecksum;
2363 } IPv6Receive;
2364 } NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD, *PNDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD;
2365
2366 typedef struct _NDIS_WMI_IPSEC_OFFLOAD_V1 {
2367 struct {
2368 ULONG Encapsulation;
2369 ULONG AhEspCombined;
2370 ULONG TransportTunnelCombined;
2371 ULONG IPv4Options;
2372 ULONG Flags;
2373 } Supported;
2374 struct {
2375 ULONG Md5;
2376 ULONG Sha_1;
2377 ULONG Transport;
2378 ULONG Tunnel;
2379 ULONG Send;
2380 ULONG Receive;
2381 } IPv4AH;
2382 struct {
2383 ULONG Des;
2384 ULONG Reserved;
2385 ULONG TripleDes;
2386 ULONG NullEsp;
2387 ULONG Transport;
2388 ULONG Tunnel;
2389 ULONG Send;
2390 ULONG Receive;
2391 } IPv4ESP;
2392 } NDIS_WMI_IPSEC_OFFLOAD_V1, *PNDIS_WMI_IPSEC_OFFLOAD_V1;
2393
2394 typedef struct _NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 {
2395 struct {
2396 ULONG Encapsulation;
2397 ULONG MaxOffLoadSize;
2398 ULONG MinSegmentCount;
2399 } IPv4;
2400 struct {
2401 ULONG Encapsulation;
2402 ULONG MaxOffLoadSize;
2403 ULONG MinSegmentCount;
2404 ULONG IpExtensionHeadersSupported;
2405 ULONG TcpOptionsSupported;
2406 } IPv6;
2407 } NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2, *PNDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2;
2408
2409 typedef struct _NDIS_WMI_OFFLOAD {
2410 NDIS_OBJECT_HEADER Header;
2411 NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD Checksum;
2412 NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 LsoV1;
2413 NDIS_WMI_IPSEC_OFFLOAD_V1 IPsecV1;
2414 NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 LsoV2;
2415 ULONG Flags;
2416#if NDIS_SUPPORT_NDIS61
2417 NDIS_IPSEC_OFFLOAD_V2 IPsecV2;
2418#endif
2419#if NDIS_SUPPORT_NDIS630
2420 NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD Rsc;
2421 NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD EncapsulatedPacketTaskOffloadGre;
2422#endif
2423 } NDIS_WMI_OFFLOAD, *PNDIS_WMI_OFFLOAD;
2424
2425 typedef struct _NDIS_TCP_CONNECTION_OFFLOAD {
2426 NDIS_OBJECT_HEADER Header;
2427 ULONG Encapsulation;
2428 ULONG SupportIPv4:2;
2429 ULONG SupportIPv6:2;
2430 ULONG SupportIPv6ExtensionHeaders:2;
2431 ULONG SupportSack:2;
2432#if NDIS_SUPPORT_NDIS61
2433 ULONG CongestionAlgorithm:4;
2434#endif
2435 ULONG TcpConnectionOffloadCapacity;
2436 ULONG Flags;
2437 } NDIS_TCP_CONNECTION_OFFLOAD, *PNDIS_TCP_CONNECTION_OFFLOAD;
2438
2439 typedef struct _NDIS_WMI_TCP_CONNECTION_OFFLOAD {
2440 NDIS_OBJECT_HEADER Header;
2441 ULONG Encapsulation;
2442 ULONG SupportIPv4;
2443 ULONG SupportIPv6;
2444 ULONG SupportIPv6ExtensionHeaders;
2445 ULONG SupportSack;
2446 ULONG TcpConnectionOffloadCapacity;
2447 ULONG Flags;
2448 } NDIS_WMI_TCP_CONNECTION_OFFLOAD, *PNDIS_WMI_TCP_CONNECTION_OFFLOAD;
2449
2450 typedef ULONG NDIS_PORT_NUMBER, *PNDIS_PORT_NUMBER;
2451
2452 typedef enum _NDIS_PORT_TYPE {
2453 NdisPortTypeUndefined,
2454 NdisPortTypeBridge,
2455 NdisPortTypeRasConnection,
2456 NdisPortType8021xSupplicant,
2457#if NDIS_SUPPORT_NDIS630
2458 NdisPortTypeNdisImPlatform,
2459#endif
2460 NdisPortTypeMax,
2461 } NDIS_PORT_TYPE, *PNDIS_PORT_TYPE;
2462
2463 typedef enum _NDIS_PORT_AUTHORIZATION_STATE {
2464 NdisPortAuthorizationUnknown,
2465 NdisPortAuthorized,
2466 NdisPortUnauthorized,
2467 NdisPortReauthorizing
2468 } NDIS_PORT_AUTHORIZATION_STATE, *PNDIS_PORT_AUTHORIZATION_STATE;
2469
2470 typedef enum _NDIS_PORT_CONTROL_STATE {
2471 NdisPortControlStateUnknown,
2472 NdisPortControlStateControlled,
2473 NdisPortControlStateUncontrolled
2474 } NDIS_PORT_CONTROL_STATE, *PNDIS_PORT_CONTROL_STATE;
2475
2476 typedef NDIS_PORT_CONTROL_STATE NDIS_PORT_CONTROLL_STATE;
2477 typedef PNDIS_PORT_CONTROL_STATE PNDIS_PORT_CONTROLL_STATE;
2478
2479 typedef struct _NDIS_PORT_AUTHENTICATION_PARAMETERS {
2480 NDIS_OBJECT_HEADER Header;
2481 NDIS_PORT_CONTROL_STATE SendControlState;
2482 NDIS_PORT_CONTROL_STATE RcvControlState;
2483 NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState;
2484 NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState;
2485 } NDIS_PORT_AUTHENTICATION_PARAMETERS, *PNDIS_PORT_AUTHENTICATION_PARAMETERS;
2486
2487 typedef enum _NDIS_NETWORK_CHANGE_TYPE {
2488 NdisPossibleNetworkChange = 1,
2489 NdisDefinitelyNetworkChange,
2490 NdisNetworkChangeFromMediaConnect,
2491 NdisNetworkChangeMax
2492 } NDIS_NETWORK_CHANGE_TYPE, *PNDIS_NETWORK_CHANGE_TYPE;
2493
2494 typedef struct _NDIS_WMI_METHOD_HEADER {
2495 NDIS_OBJECT_HEADER Header;
2496 NDIS_PORT_NUMBER PortNumber;
2497 NET_LUID NetLuid;
2498 ULONG64 RequestId;
2499 ULONG Timeout;
2500 UCHAR Padding[4];
2501 } NDIS_WMI_METHOD_HEADER, *PNDIS_WMI_METHOD_HEADER;
2502
2503 typedef struct _NDIS_WMI_SET_HEADER {
2504 NDIS_OBJECT_HEADER Header;
2505 NDIS_PORT_NUMBER PortNumber;
2506 NET_LUID NetLuid;
2507 ULONG64 RequestId;
2508 ULONG Timeout;
2509 UCHAR Padding[4];
2510 } NDIS_WMI_SET_HEADER, *PNDIS_WMI_SET_HEADER;
2511
2512 typedef struct _NDIS_WMI_EVENT_HEADER {
2513 NDIS_OBJECT_HEADER Header;
2514 NET_IFINDEX IfIndex;
2515 NET_LUID NetLuid;
2516 ULONG64 RequestId;
2517 NDIS_PORT_NUMBER PortNumber;
2518 ULONG DeviceNameLength;
2519 ULONG DeviceNameOffset;
2520 UCHAR Padding[4];
2521 } NDIS_WMI_EVENT_HEADER, *PNDIS_WMI_EVENT_HEADER;
2522
2523 typedef struct _NDIS_WMI_ENUM_ADAPTER {
2524 NDIS_OBJECT_HEADER Header;
2525 NET_IFINDEX IfIndex;
2526 NET_LUID NetLuid;
2527 USHORT DeviceNameLength;
2528 CHAR DeviceName[1];
2529 } NDIS_WMI_ENUM_ADAPTER, *PNDIS_WMI_ENUM_ADAPTER;
2530
2531#if NDIS_SUPPORT_NDIS61
2532#define NDIS_HD_SPLIT_COMBINE_ALL_HEADERS 0x00000001
2533
2534#define NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT 0x00000001
2535#define NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS 0x00000002
2536#define NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS 0x00000004
2537#define NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS 0x00000008
2538
2539#define NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT 0x00000001
2540
2541#define NDIS_HD_SPLIT_PARAMETERS_REVISION_1 1
2542#define NDIS_HD_SPLIT_CURRENT_CONFIG_REVISION_1 1
2543
2544#define NDIS_SIZEOF_HD_SPLIT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HD_SPLIT_PARAMETERS, HDSplitCombineFlags)
2545#define NDIS_SIZEOF_HD_SPLIT_CURRENT_CONFIG_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HD_SPLIT_CURRENT_CONFIG, MaxHeaderSize)
2546
2547 typedef struct _NDIS_HD_SPLIT_PARAMETERS {
2548 NDIS_OBJECT_HEADER Header;
2549 ULONG HDSplitCombineFlags;
2550 } NDIS_HD_SPLIT_PARAMETERS, *PNDIS_HD_SPLIT_PARAMETERS;
2551
2552 typedef struct _NDIS_HD_SPLIT_CURRENT_CONFIG {
2553 NDIS_OBJECT_HEADER Header;
2554 ULONG HardwareCapabilities;
2555 ULONG CurrentCapabilities;
2556 ULONG HDSplitFlags;
2557 ULONG HDSplitCombineFlags;
2558 ULONG BackfillSize;
2559 ULONG MaxHeaderSize;
2560 } NDIS_HD_SPLIT_CURRENT_CONFIG, *PNDIS_HD_SPLIT_CURRENT_CONFIG;
2561#endif
2562
2563#define NDIS_WMI_OUTPUT_INFO_REVISION_1 1
2564
2565 typedef struct NDIS_WMI_OUTPUT_INFO {
2566 NDIS_OBJECT_HEADER Header;
2567 ULONG Flags;
2568 UCHAR SupportedRevision;
2569 ULONG DataOffset;
2570 } NDIS_WMI_OUTPUT_INFO, *PNDIS_WMI_OUTPUT_INFO;
2571
2572#if NDIS_SUPPORT_NDIS620
2573#define NDIS_PM_WOL_BITMAP_PATTERN_SUPPORTED 0x00000001
2574#define NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED 0x00000002
2575#define NDIS_PM_WOL_IPV4_TCP_SYN_SUPPORTED 0x00000004
2576#define NDIS_PM_WOL_IPV6_TCP_SYN_SUPPORTED 0x00000008
2577#define NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_SUPPORTED 0x00000200
2578#define NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_SUPPORTED 0x00000800
2579#define NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_SUPPORTED 0x00010000
2580
2581#define NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED 0x00000001
2582#define NDIS_PM_PROTOCOL_OFFLOAD_NS_SUPPORTED 0x00000002
2583#define NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_SUPPORTED 0x00000080
2584
2585#if NDIS_SUPPORT_NDIS630
2586#define NDIS_PM_WAKE_ON_MEDIA_CONNECT_SUPPORTED 0x00000001
2587#define NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_SUPPORTED 0x00000002
2588
2589#define NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_SUPPORTED 0x00000001
2590#define NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_SUPPORTED 0x00000002
2591#define NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_SUPPORTED 0x00000004
2592#define NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_SUPPORTED 0x00000008
2593
2594#define NDIS_WWAN_WAKE_ON_REGISTER_STATE_SUPPORTED 0x00000001
2595#define NDIS_WWAN_WAKE_ON_SMS_RECEIVE_SUPPORTED 0x00000002
2596#define NDIS_WWAN_WAKE_ON_USSD_RECEIVE_SUPPORTED 0x00000004
2597
2598#define NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED 0x00000001
2599#define NDIS_PM_SELECTIVE_SUSPEND_SUPPORTED 0x00000002
2600#endif
2601
2602#define NDIS_PM_WOL_BITMAP_PATTERN_ENABLED 0x00000001
2603#define NDIS_PM_WOL_MAGIC_PACKET_ENABLED 0x00000002
2604#define NDIS_PM_WOL_IPV4_TCP_SYN_ENABLED 0x00000004
2605#define NDIS_PM_WOL_IPV6_TCP_SYN_ENABLED 0x00000008
2606#define NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED 0x00000200
2607#define NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED 0x00000800
2608#define NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_ENABLED 0x00010000
2609
2610#define NDIS_PM_PROTOCOL_OFFLOAD_ARP_ENABLED 0x00000001
2611#define NDIS_PM_PROTOCOL_OFFLOAD_NS_ENABLED 0x00000002
2612#define NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_ENABLED 0x00000080
2613
2614#define NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED 0x1
2615#if NDIS_SUPPORT_NDIS630
2616#define NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_ENABLED 0x2
2617#define NDIS_PM_SELECTIVE_SUSPEND_ENABLED 0x10
2618
2619#define NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_ENABLED 0x1
2620#define NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_ENABLED 0x2
2621#define NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_ENABLED 0x4
2622#define NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_ENABLED 0x8
2623
2624#define NDIS_WWAN_WAKE_ON_REGISTER_STATE_ENABLED 0x1
2625#define NDIS_WWAN_WAKE_ON_SMS_RECEIVE_ENABLED 0x2
2626#define NDIS_WWAN_WAKE_ON_USSD_RECEIVE_ENABLED 0x4
2627#endif
2628
2629#define NDIS_PM_WOL_PRIORITY_LOWEST 0xffffffff
2630#define NDIS_PM_WOL_PRIORITY_NORMAL 0x10000000
2631#define NDIS_PM_WOL_PRIORITY_HIGHEST 0x00000001
2632
2633#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST 0xffffffff
2634#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_NORMAL 0x10000000
2635#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST 0x00000001
2636
2637#define NDIS_PM_MAX_STRING_SIZE 64
2638
2639#define EAPOL_REQUEST_ID_WOL_FLAG_MUST_ENCRYPT 0x00000001
2640
2641#define NDIS_PM_MAX_PATTERN_ID 0x0000ffff
2642
2643#define NDIS_PM_PRIVATE_PATTERN_ID 0x00000001
2644
2645#define DOT11_RSN_KEK_LENGTH 16
2646#define DOT11_RSN_KCK_LENGTH 16
2647
2648
2649#define NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED 0x00000001
2650#define NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED 0x00000002
2651#define NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED 0x00000004
2652#define NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED 0x00000008
2653#define NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED 0x00000010
2654
2655#define NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED 0x00000001
2656#define NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED 0x00000002
2657#define NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED 0x00000004
2658#define NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED 0x00000008
2659#define NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED 0x00000010
2660#define NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED 0x00000020
2661
2662#define NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED 0x1
2663#define NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED 0x2
2664#define NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED 0x4
2665
2666#define NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED 0x1
2667#define NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED 0x1
2668#define NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED 0x1
2669
2670#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED 0x00000001
2671#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED 0x00000002
2672#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED 0x00000004
2673
2674#define NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED 0x00000001
2675#define NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED 0x00000002
2676#define NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED 0x00000004
2677#if NDIS_SUPPORT_NDIS630
2678#define NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED 0x00000008
2679#define NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED 0x00000010
2680#define NDIS_RECEIVE_FILTER_ANY_VLAN_SUPPORTED 0x00000020
2681#define NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE 0x00000040
2682#define NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE 0x00000080
2683#define NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE 0x00000100
2684#endif
2685
2686#define NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED 0x00000001
2687#define NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED 0x00000002
2688
2689#define NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED 0x00000001
2690
2691#if NDIS_SUPPORT_NDIS630
2692#define NDIS_NIC_SWITCH_CAPS_VLAN_SUPPORTED 0x00000001
2693#define NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED 0x00000002
2694#define NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED 0x00000004
2695#define NDIS_NIC_SWITCH_CAPS_VF_RSS_SUPPORTED 0x00000008
2696#define NDIS_NIC_SWITCH_CAPS_SINGLE_VPORT_POOL 0x00000010
2697#endif
2698
2699
2700#define NDIS_DEFAULT_RECEIVE_QUEUE_ID 0
2701#define NDIS_DEFAULT_RECEIVE_QUEUE_GROUP_ID 0
2702#define NDIS_DEFAULT_RECEIVE_FILTER_ID 0
2703
2704#define NDIS_RECEIVE_FILTER_FIELD_MAC_HEADER_VLAN_UNTAGGED_OR_ZERO 0x00000001
2705#define NDIS_RECEIVE_FILTER_PACKET_ENCAPSULATION_GRE 0x00000002
2706
2707#define NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION 0x00000001
2708#define NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED 0x00000002
2709#define NDIS_RECEIVE_QUEUE_PARAMETERS_FLAGS_CHANGED 0x00010000
2710#define NDIS_RECEIVE_QUEUE_PARAMETERS_PROCESSOR_AFFINITY_CHANGED 0x00020000
2711#define NDIS_RECEIVE_QUEUE_PARAMETERS_SUGGESTED_RECV_BUFFER_NUMBERS_CHANGED 0x00040000
2712#define NDIS_RECEIVE_QUEUE_PARAMETERS_NAME_CHANGED 0x00080000
2713#if NDIS_SUPPORT_NDIS630
2714#define NDIS_RECEIVE_QUEUE_PARAMETERS_INTERRUPT_COALESCING_DOMAIN_ID_CHANGED 0x00100000
2715#endif
2716
2717#define NDIS_RECEIVE_QUEUE_PARAMETERS_CHANGE_MASK 0xffff0000
2718
2719#if NDIS_SUPPORT_NDIS630
2720#define NDIS_RECEIVE_FILTER_INFO_ARRAY_VPORT_ID_SPECIFIED 0x00000001
2721#endif
2722
2723#define NDIS_PM_CAPABILITIES_REVISION_1 1
2724#define NDIS_PM_PARAMETERS_REVISION_1 1
2725#define NDIS_PM_WOL_PATTERN_REVISION_1 1
2726#define NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1 1
2727#define NDIS_WMI_PM_ADMIN_CONFIG_REVISION_1 1
2728#define NDIS_WMI_PM_ACTIVE_CAPABILITIES_REVISION_1 1
2729#define NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1 1
2730#define NDIS_NIC_SWITCH_CAPABILITIES_REVISION_1 1
2731#define NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS_REVISION_1 1
2732#define NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_1 1
2733#define NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_1 1
2734#define NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS_REVISION_1 1
2735#define NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_1 1
2736#define NDIS_RECEIVE_QUEUE_FREE_PARAMETERS_REVISION_1 1
2737#define NDIS_RECEIVE_QUEUE_INFO_REVISION_1 1
2738#define NDIS_RECEIVE_QUEUE_INFO_ARRAY_REVISION_1 1
2739#define NDIS_RECEIVE_FILTER_INFO_REVISION_1 1
2740#define NDIS_RECEIVE_FILTER_INFO_ARRAY_REVISION_1 1
2741#define NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS_REVISION_1 1
2742#define NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY_REVISION_1 1
2743#if NDIS_SUPPORT_NDIS630
2744#define NDIS_PM_CAPABILITIES_REVISION_2 2
2745#define NDIS_PM_PARAMETERS_REVISION_2 2
2746#define NDIS_PM_WOL_PATTERN_REVISION_2 2
2747#define NDIS_PM_WAKE_REASON_REVISION_1 1
2748#define NDIS_PM_WAKE_PACKET_REVISION_1 1
2749#define NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2 2
2750#define NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2 2
2751#define NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_2 2
2752#define NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_2 2
2753#define NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_2 2
2754#define NDIS_RECEIVE_FILTER_INFO_ARRAY_REVISION_2 2
2755#define NDIS_RECEIVE_QUEUE_INFO_REVISION_2 2
2756#endif
2757
2758#define NDIS_SIZEOF_WMI_OUTPUT_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OUTPUT_INFO, DataOffset)
2759#define NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_CAPABILITIES, MinLinkChangeWakeUp)
2760#define NDIS_SIZEOF_NDIS_PM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PARAMETERS, WakeUpFlags)
2761#define NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WOL_PATTERN, WoLPattern)
2762#define NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PROTOCOL_OFFLOAD, ProtocolOffloadParameters)
2763#define NDIS_SIZEOF_WMI_PM_ADMIN_CONFIG_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_PM_ADMIN_CONFIG, PMWiFiRekeyOffload)
2764#define NDIS_SIZEOF_WMI_PM_ACTIVE_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_PM_ACTIVE_CAPABILITIES, PMWiFiRekeyOffload)
2765#define NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CAPABILITIES, MaxLookaheadSplitSize)
2766#define NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_CAPABILITIES, NdisReserved3)
2767#define NDIS_SIZEOF_RECEIVE_FILTER_GLOBAL_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS, EnabledQueueTypes)
2768#define NDIS_SIZEOF_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, ResultValue)
2769#define NDIS_SIZEOF_RECEIVE_FILTER_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_PARAMETERS, RequestedFilterIdBitCount)
2770#define NDIS_SIZEOF_RECEIVE_FILTER_CLEAR_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS, FilterId)
2771#define NDIS_SIZEOF_RECEIVE_QUEUE_FREE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_FREE_PARAMETERS, QueueId)
2772#define NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_PARAMETERS, QueueName)
2773#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO, QueueName)
2774#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO_ARRAY, ElementSize)
2775#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO, FilterId)
2776#define NDIS_SIZEOF_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY, ElementSize)
2777#define NDIS_SIZEOF_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS, CompletionStatus)
2778#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO_ARRAY, ElementSize)
2779#if NDIS_SUPPORT_NDIS630
2780#define NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_CAPABILITIES, MediaSpecificWakeUpEvents)
2781#define NDIS_SIZEOF_NDIS_PM_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PARAMETERS, MediaSpecificWakeUpEvents)
2782#define NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WOL_PATTERN, WoLPattern)
2783#define NDIS_SIZEOF_PM_WAKE_REASON_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WAKE_REASON, InfoBufferSize)
2784#define NDIS_SIZEOF_PM_WAKE_PACKET_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WAKE_PACKET, SavedPacketOffset)
2785#define NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CAPABILITIES, NdisReserved)
2786#define NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_CAPABILITIES, NdisReserved17)
2787#define NDIS_SIZEOF_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, ResultValue)
2788#define NDIS_SIZEOF_RECEIVE_FILTER_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_PARAMETERS, VPortId)
2789#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_ARRAY_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO_ARRAY, VPortId)
2790#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO, InterruptCoalescingDomainId)
2791#define NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_PARAMETERS, InterruptCoalescingDomainId)
2792#endif
2793
2794 typedef enum _NDIS_PM_WOL_PACKET {
2795 NdisPMWoLPacketUnspecified,
2796 NdisPMWoLPacketBitmapPattern,
2797 NdisPMWoLPacketMagicPacket,
2798 NdisPMWoLPacketIPv4TcpSyn,
2799 NdisPMWoLPacketIPv6TcpSyn,
2800 NdisPMWoLPacketEapolRequestIdMessage,
2801 NdisPMWoLPacketMaximum
2802 } NDIS_PM_WOL_PACKET, *PNDIS_PM_WOL_PACKET;
2803
2804 typedef enum _NDIS_PM_PROTOCOL_OFFLOAD_TYPE {
2805 NdisPMProtocolOffloadIdUnspecified,
2806 NdisPMProtocolOffloadIdIPv4ARP,
2807 NdisPMProtocolOffloadIdIPv6NS,
2808 NdisPMProtocolOffload80211RSNRekey,
2809 NdisPMProtocolOffloadIdMaximum
2810 } NDIS_PM_PROTOCOL_OFFLOAD_TYPE, *PNDIS_PM_PROTOCOL_OFFLOAD_TYPE;
2811
2812 typedef struct _NDIS_PM_COUNTED_STRING {
2813 USHORT Length;
2814 WCHAR String[NDIS_PM_MAX_STRING_SIZE + 1];
2815 } NDIS_PM_COUNTED_STRING, *PNDIS_PM_COUNTED_STRING;
2816
2817 typedef struct _NDIS_PM_CAPABILITIES {
2818 NDIS_OBJECT_HEADER Header;
2819 ULONG Flags;
2820 ULONG SupportedWoLPacketPatterns;
2821 ULONG NumTotalWoLPatterns;
2822 ULONG MaxWoLPatternSize;
2823 ULONG MaxWoLPatternOffset;
2824 ULONG MaxWoLPacketSaveBuffer;
2825 ULONG SupportedProtocolOffloads;
2826 ULONG NumArpOffloadIPv4Addresses;
2827 ULONG NumNSOffloadIPv6Addresses;
2828 NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
2829 NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
2830 NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
2831#if NDIS_SUPPORT_NDIS630
2832 ULONG SupportedWakeUpEvents;
2833 ULONG MediaSpecificWakeUpEvents;
2834#endif
2835 } NDIS_PM_CAPABILITIES, *PNDIS_PM_CAPABILITIES;
2836
2837 typedef struct _NDIS_PM_PARAMETERS {
2838 NDIS_OBJECT_HEADER Header;
2839 ULONG EnabledWoLPacketPatterns;
2840 ULONG EnabledProtocolOffloads;
2841 ULONG WakeUpFlags;
2842#if NDIS_SUPPORT_NDIS630
2843 ULONG MediaSpecificWakeUpEvents;
2844#endif
2845 } NDIS_PM_PARAMETERS, *PNDIS_PM_PARAMETERS;
2846
2847 typedef struct _NDIS_PM_WOL_PATTERN {
2848 NDIS_OBJECT_HEADER Header;
2849 ULONG Flags;
2850 ULONG Priority;
2851 NDIS_PM_WOL_PACKET WoLPacketType;
2852 NDIS_PM_COUNTED_STRING FriendlyName;
2853 ULONG PatternId;
2854 ULONG NextWoLPatternOffset;
2855 union _WOL_PATTERN {
2856 struct _IPV4_TCP_SYN_WOL_PACKET_PARAMETERS {
2857 ULONG Flags;
2858 UCHAR IPv4SourceAddress[4];
2859 UCHAR IPv4DestAddress[4];
2860 USHORT TCPSourcePortNumber;
2861 USHORT TCPDestPortNumber;
2862 } IPv4TcpSynParameters;
2863 struct _IPV6_TCP_SYN_WOL_PACKET_PARAMETERS {
2864 ULONG Flags;
2865 UCHAR IPv6SourceAddress[16];
2866 UCHAR IPv6DestAddress[16];
2867 USHORT TCPSourcePortNumber;
2868 USHORT TCPDestPortNumber;
2869 } IPv6TcpSynParameters;
2870 struct _EAPOL_REQUEST_ID_MESSAGE_WOL_PACKET_PARAMETERS {
2871 ULONG Flags;
2872 } EapolRequestIdMessageParameters;
2873 struct _WOL_BITMAP_PATTERN {
2874 ULONG Flags;
2875 ULONG MaskOffset;
2876 ULONG MaskSize;
2877 ULONG PatternOffset;
2878 ULONG PatternSize;
2879 } WoLBitMapPattern;
2880 } WoLPattern;
2881 } NDIS_PM_WOL_PATTERN, *PNDIS_PM_WOL_PATTERN;
2882
2883 typedef struct _NDIS_PM_PROTOCOL_OFFLOAD {
2884 NDIS_OBJECT_HEADER Header;
2885 ULONG Flags;
2886 ULONG Priority;
2887 NDIS_PM_PROTOCOL_OFFLOAD_TYPE ProtocolOffloadType;
2888 NDIS_PM_COUNTED_STRING FriendlyName;
2889 ULONG ProtocolOffloadId;
2890 ULONG NextProtocolOffloadOffset;
2891 union _PROTOCOL_OFFLOAD_PARAMETERS {
2892 struct _IPV4_ARP_PARAMETERS {
2893 ULONG Flags;
2894 UCHAR RemoteIPv4Address[4];
2895 UCHAR HostIPv4Address[4];
2896 UCHAR MacAddress[6];
2897 } IPv4ARPParameters;
2898 struct _IPV6_NS_PARAMETERS {
2899 ULONG Flags;
2900 UCHAR RemoteIPv6Address[16];
2901 UCHAR SolicitedNodeIPv6Address[16];
2902 UCHAR MacAddress[6];
2903 UCHAR TargetIPv6Addresses[2][16];
2904 } IPv6NSParameters;
2905 struct _DOT11_RSN_REKEY_PARAMETERS {
2906 ULONG Flags;
2907 UCHAR KCK[DOT11_RSN_KCK_LENGTH];
2908 UCHAR KEK[DOT11_RSN_KEK_LENGTH];
2909 ULONGLONG KeyReplayCounter;
2910 } Dot11RSNRekeyParameters;
2911 } ProtocolOffloadParameters;
2912 } NDIS_PM_PROTOCOL_OFFLOAD, *PNDIS_PM_PROTOCOL_OFFLOAD;
2913
2914#if NDIS_SUPPORT_NDIS630
2915 typedef enum _NDIS_PM_WAKE_REASON_TYPE {
2916 NdisWakeReasonUnspecified = 0x0000,
2917 NdisWakeReasonPacket = 0x0001,
2918 NdisWakeReasonMediaDisconnect = 0x0002,
2919 NdisWakeReasonMediaConnect = 0x0003,
2920 NdisWakeReasonWlanNLODiscovery = 0x1000,
2921 NdisWakeReasonWlanAPAssociationLost = 0x1001,
2922 NdisWakeReasonWlanGTKHandshakeError = 0x1002,
2923 NdisWakeReasonWlan4WayHandshakeRequest = 0x1003,
2924 NdisWakeReasonWwanRegisterState = 0x2000,
2925 NdisWakeReasonWwanSMSReceive = 0x2001,
2926 NdisWakeReasonWwanUSSDReceive = 0x2002,
2927 } NDIS_PM_WAKE_REASON_TYPE, *PNDIS_PM_WAKE_REASON_TYPE;
2928
2929 typedef struct _NDIS_PM_WAKE_REASON {
2930 NDIS_OBJECT_HEADER Header;
2931 ULONG Flags;
2932 NDIS_PM_WAKE_REASON_TYPE WakeReason;
2933 ULONG InfoBufferOffset;
2934 ULONG InfoBufferSize;
2935 } NDIS_PM_WAKE_REASON, *PNDIS_PM_WAKE_REASON;
2936
2937 typedef struct _NDIS_PM_WAKE_PACKET {
2938 NDIS_OBJECT_HEADER Header;
2939 ULONG Flags;
2940 ULONG PatternId;
2941 NDIS_PM_COUNTED_STRING PatternFriendlyName;
2942 ULONG OriginalPacketSize;
2943 ULONG SavedPacketSize;
2944 ULONG SavedPacketOffset;
2945 } NDIS_PM_WAKE_PACKET, *PNDIS_PM_WAKE_PACKET;
2946#endif
2947
2948 typedef enum _NDIS_PM_ADMIN_CONFIG_STATE {
2949 NdisPMAdminConfigUnspecified = 0,
2950 NdisPMAdminConfigDisabled = 1,
2951 NdisPMAdminConfigEnabled = 2
2952 } NDIS_PM_ADMIN_CONFIG_STATE, *PNDIS_PM_ADMIN_CONFIG_STATE;
2953
2954 typedef struct _NDIS_WMI_PM_ADMIN_CONFIG {
2955 NDIS_OBJECT_HEADER Header;
2956 NDIS_PM_ADMIN_CONFIG_STATE WakeOnPattern;
2957 NDIS_PM_ADMIN_CONFIG_STATE WakeOnMagicPacket;
2958 NDIS_PM_ADMIN_CONFIG_STATE DeviceSleepOnDisconnect;
2959 NDIS_PM_ADMIN_CONFIG_STATE PMARPOffload;
2960 NDIS_PM_ADMIN_CONFIG_STATE PMNSOffload;
2961 NDIS_PM_ADMIN_CONFIG_STATE PMWiFiRekeyOffload;
2962 } NDIS_WMI_PM_ADMIN_CONFIG, *PNDIS_WMI_PM_ADMIN_CONFIG;
2963
2964 typedef enum _NDIS_PM_CAPABILITY_STATE {
2965 NdisPMAdminConfigUnsupported = 0,
2966 NdisPMAdminConfigInactive = 1,
2967 NdisPMAdminConfigActive = 2
2968 } NDIS_PM_CAPABILITY_STATE, *PNDIS_PM_CAPABILITY_STATE;
2969
2970 typedef struct _NDIS_WMI_PM_ACTIVE_CAPABILITIES {
2971 NDIS_OBJECT_HEADER Header;
2972 NDIS_PM_CAPABILITY_STATE WakeOnPattern;
2973 NDIS_PM_CAPABILITY_STATE WakeOnMagicPacket;
2974 NDIS_PM_CAPABILITY_STATE DeviceSleepOnDisconnect;
2975 NDIS_PM_CAPABILITY_STATE PMARPOffload;
2976 NDIS_PM_CAPABILITY_STATE PMNSOffload;
2977 NDIS_PM_CAPABILITY_STATE PMWiFiRekeyOffload;
2978 } NDIS_WMI_PM_ACTIVE_CAPABILITIES, *PNDIS_WMI_PM_ACTIVE_CAPABILITIES;
2979
2980 typedef struct _NDIS_RECEIVE_FILTER_CAPABILITIES {
2981 NDIS_OBJECT_HEADER Header;
2982 ULONG Flags;
2983 ULONG EnabledFilterTypes;
2984 ULONG EnabledQueueTypes;
2985 ULONG NumQueues;
2986 ULONG SupportedQueueProperties;
2987 ULONG SupportedFilterTests;
2988 ULONG SupportedHeaders;
2989 ULONG SupportedMacHeaderFields;
2990 ULONG MaxMacHeaderFilters;
2991 ULONG MaxQueueGroups;
2992 ULONG MaxQueuesPerQueueGroup;
2993 ULONG MinLookaheadSplitSize;
2994 ULONG MaxLookaheadSplitSize;
2995#if NDIS_SUPPORT_NDIS630
2996 ULONG SupportedARPHeaderFields;
2997 ULONG SupportedIPv4HeaderFields;
2998 ULONG SupportedIPv6HeaderFields;
2999 ULONG SupportedUdpHeaderFields;
3000 ULONG MaxFieldTestsPerPacketCoalescingFilter;
3001 ULONG MaxPacketCoalescingFilters;
3002 ULONG NdisReserved;
3003#endif
3004 } NDIS_RECEIVE_FILTER_CAPABILITIES, *PNDIS_RECEIVE_FILTER_CAPABILITIES;
3005
3006 typedef struct _NDIS_NIC_SWITCH_CAPABILITIES {
3007 NDIS_OBJECT_HEADER Header;
3008 ULONG Flags;
3009 ULONG NdisReserved1;
3010 ULONG NumTotalMacAddresses;
3011 ULONG NumMacAddressesPerPort;
3012 ULONG NumVlansPerPort;
3013 ULONG NdisReserved2;
3014 ULONG NdisReserved3;
3015#if NDIS_SUPPORT_NDIS630
3016 ULONG NicSwitchCapabilities;
3017 ULONG MaxNumSwitches;
3018 ULONG MaxNumVPorts;
3019 ULONG NdisReserved4;
3020 ULONG MaxNumVFs;
3021 ULONG MaxNumQueuePairs;
3022 ULONG NdisReserved5;
3023 ULONG NdisReserved6;
3024 ULONG NdisReserved7;
3025 ULONG MaxNumQueuePairsPerNonDefaultVPort;
3026 ULONG NdisReserved8;
3027 ULONG NdisReserved9;
3028 ULONG NdisReserved10;
3029 ULONG NdisReserved11;
3030 ULONG NdisReserved12;
3031 ULONG MaxNumMacAddresses;
3032 ULONG NdisReserved13;
3033 ULONG NdisReserved14;
3034 ULONG NdisReserved15;
3035 ULONG NdisReserved16;
3036 ULONG NdisReserved17;
3037#endif
3038 } NDIS_NIC_SWITCH_CAPABILITIES, *PNDIS_NIC_SWITCH_CAPABILITIES;
3039
3040 typedef struct _NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS {
3041 NDIS_OBJECT_HEADER Header;
3042 ULONG Flags;
3043 ULONG EnabledFilterTypes;
3044 ULONG EnabledQueueTypes;
3045 } NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS, *PNDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS;
3046
3047 typedef ULONG NDIS_RECEIVE_QUEUE_ID, *PNDIS_RECEIVE_QUEUE_ID;
3048 typedef ULONG NDIS_RECEIVE_QUEUE_GROUP_ID, *PNDIS_RECEIVE_QUEUE_GROUP_ID;
3049 typedef ULONG NDIS_RECEIVE_FILTER_ID, *PNDIS_RECEIVE_FILTER_ID;
3050
3051 typedef enum _NDIS_RECEIVE_FILTER_TYPE {
3052 NdisReceiveFilterTypeUndefined,
3053 NdisReceiveFilterTypeVMQueue,
3054 NdisReceiveFilterTypePacketCoalescing,
3055 NdisReceiveFilterTypeMaximum
3056 } NDIS_RECEIVE_FILTER_TYPE, *PNDIS_RECEIVE_FILTER_TYPE;
3057
3058 typedef enum _NDIS_FRAME_HEADER {
3059 NdisFrameHeaderUndefined,
3060 NdisFrameHeaderMac,
3061 NdisFrameHeaderArp,
3062 NdisFrameHeaderIPv4,
3063 NdisFrameHeaderIPv6,
3064 NdisFrameHeaderUdp,
3065 NdisFrameHeaderMaximum
3066 } NDIS_FRAME_HEADER, *PNDIS_FRAME_HEADER;
3067
3068 typedef enum _NDIS_MAC_HEADER_FIELD {
3069 NdisMacHeaderFieldUndefined,
3070 NdisMacHeaderFieldDestinationAddress,
3071 NdisMacHeaderFieldSourceAddress,
3072 NdisMacHeaderFieldProtocol,
3073 NdisMacHeaderFieldVlanId,
3074 NdisMacHeaderFieldPriority,
3075 NdisMacHeaderFieldPacketType,
3076 NdisMacHeaderFieldMaximum
3077 } NDIS_MAC_HEADER_FIELD, *PNDIS_MAC_HEADER_FIELD;
3078
3079 typedef enum _NDIS_MAC_PACKET_TYPE {
3080 NdisMacPacketTypeUndefined = 0,
3081 NdisMacPacketTypeUnicast = 1,
3082 NdisMacPacketTypeMulticast = 2,
3083 NdisMacPacketTypeBroadcast = 3,
3084 NdisMacPacketTypeMaximum
3085 } NDIS_MAC_PACKET_TYPE, *PNDIS_MAC_PACKET_TYPE;
3086
3087 typedef enum _NDIS_ARP_HEADER_FIELD {
3088 NdisARPHeaderFieldUndefined,
3089 NdisARPHeaderFieldOperation,
3090 NdisARPHeaderFieldSPA,
3091 NdisARPHeaderFieldTPA,
3092 NdisARPHeaderFieldMaximum
3093 } NDIS_ARP_HEADER_FIELD, *PNDIS_ARP_HEADER_FIELD;
3094
3095 typedef enum _NDIS_IPV4_HEADER_FIELD {
3096 NdisIPv4HeaderFieldUndefined,
3097 NdisIPv4HeaderFieldProtocol,
3098 NdisIPv4HeaderFieldMaximum
3099 } NDIS_IPV4_HEADER_FIELD, *PNDIS_IPV4_HEADER_FIELD;
3100
3101 typedef enum _NDIS_IPV6_HEADER_FIELD {
3102 NdisIPv6HeaderFieldUndefined,
3103 NdisIPv6HeaderFieldProtocol,
3104 NdisIPv6HeaderFieldMaximum
3105 } NDIS_IPV6_HEADER_FIELD, *PNDIS_IPV6_HEADER_FIELD;
3106
3107 typedef enum _NDIS_UDP_HEADER_FIELD {
3108 NdisUdpHeaderFieldUndefined,
3109 NdisUdpHeaderFieldDestinationPort,
3110 NdisUdpHeaderFieldMaximum
3111 } NDIS_UDP_HEADER_FIELD, *PNDIS_UDP_HEADER_FIELD;
3112
3113 typedef enum _NDIS_RECEIVE_FILTER_TEST {
3114 NdisReceiveFilterTestUndefined,
3115 NdisReceiveFilterTestEqual,
3116 NdisReceiveFilterTestMaskEqual,
3117 NdisReceiveFilterTestNotEqual,
3118 NdisReceiveFilterTestMaximum
3119 } NDIS_RECEIVE_FILTER_TEST, *PNDIS_RECEIVE_FILTER_TEST;
3120
3121 typedef struct _NDIS_RECEIVE_FILTER_FIELD_PARAMETERS {
3122 NDIS_OBJECT_HEADER Header;
3123 ULONG Flags;
3124 NDIS_FRAME_HEADER FrameHeader;
3125 NDIS_RECEIVE_FILTER_TEST ReceiveFilterTest;
3126 union _HEADER_FIELD {
3127 NDIS_MAC_HEADER_FIELD MacHeaderField;
3128 NDIS_ARP_HEADER_FIELD ArpHeaderField;
3129 NDIS_IPV4_HEADER_FIELD IPv4HeaderField;
3130 NDIS_IPV6_HEADER_FIELD IPv6HeaderField;
3131 NDIS_UDP_HEADER_FIELD UdpHeaderField;
3132 } HeaderField;
3133 union _FIELD_VALUE {
3134 UCHAR FieldByteValue;
3135 USHORT FieldShortValue;
3136 ULONG FieldLongValue;
3137 ULONG64 FieldLong64Value;
3138 UCHAR FieldByteArrayValue[16];
3139 } FieldValue;
3140 union _RESULT_VALUE {
3141 UCHAR ResultByteValue;
3142 USHORT ResultShortValue;
3143 ULONG ResultLongValue;
3144 ULONG64 ResultLong64Value;
3145 UCHAR ResultByteArrayValue[16];
3146 } ResultValue;
3147 } NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, *PNDIS_RECEIVE_FILTER_FIELD_PARAMETERS;
3148
3149#if NDIS_SUPPORT_NDIS630
3150 typedef ULONG NDIS_NIC_SWITCH_VPORT_ID, *PNDIS_NIC_SWITCH_VPORT_ID;
3151#endif
3152
3153 typedef struct _NDIS_RECEIVE_FILTER_PARAMETERS {
3154 NDIS_OBJECT_HEADER Header;
3155 ULONG Flags;
3156 NDIS_RECEIVE_FILTER_TYPE FilterType;
3157 NDIS_RECEIVE_QUEUE_ID QueueId;
3158 NDIS_RECEIVE_FILTER_ID FilterId;
3159 ULONG FieldParametersArrayOffset;
3160 ULONG FieldParametersArrayNumElements;
3161 ULONG FieldParametersArrayElementSize;
3162 ULONG RequestedFilterIdBitCount;
3163#if NDIS_SUPPORT_NDIS630
3164 ULONG MaxCoalescingDelay;
3165 NDIS_NIC_SWITCH_VPORT_ID VPortId;
3166#endif
3167 } NDIS_RECEIVE_FILTER_PARAMETERS, *PNDIS_RECEIVE_FILTER_PARAMETERS;
3168
3169 typedef struct _NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS {
3170 NDIS_OBJECT_HEADER Header;
3171 ULONG Flags;
3172 NDIS_RECEIVE_QUEUE_ID QueueId;
3173 NDIS_RECEIVE_FILTER_ID FilterId;
3174 } NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS, *PNDIS_RECEIVE_FILTER_CLEAR_PARAMETERS;
3175
3176 typedef enum _NDIS_RECEIVE_QUEUE_TYPE {
3177 NdisReceiveQueueTypeUnspecified,
3178 NdisReceiveQueueTypeVMQueue,
3179 NdisReceiveQueueTypeMaximum
3180 } NDIS_RECEIVE_QUEUE_TYPE, *PNDIS_RECEIVE_QUEUE_TYPE;
3181
3182 typedef NDIS_IF_COUNTED_STRING NDIS_QUEUE_NAME, *PNDIS_QUEUE_NAME;
3183 typedef NDIS_IF_COUNTED_STRING NDIS_VM_NAME, *PNDIS_VM_NAME;
3184 typedef NDIS_IF_COUNTED_STRING NDIS_VM_FRIENDLYNAME, *PNDIS_VM_FRIENDLYNAME;
3185 typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME;
3186 typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL;
3187 typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NAME, *PNDIS_SWITCH_NAME;
3188 typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_FRIENDLYNAME, *PNDIS_SWITCH_FRIENDLYNAME;
3189 typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_NAME, *PNDIS_SWITCH_PORT_NAME;
3190 typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_FRIENDLYNAME, *PNDIS_SWITCH_PORT_FRIENDLYNAME;
3191 typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NIC_NAME, *PNDIS_SWITCH_NIC_NAME;
3192 typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NIC_FRIENDLYNAME, *PNDIS_SWITCH_NIC_FRIENDLYNAME;
3193 typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_EXTENSION_FRIENDLYNAME, *PNDIS_SWITCH_EXTENSION_FRIENDLYNAME;
3194 typedef NDIS_IF_COUNTED_STRING NDIS_VENDOR_NAME, *PNDIS_VENDOR_NAME;
3195
3196 typedef struct _NDIS_RECEIVE_QUEUE_PARAMETERS {
3197 NDIS_OBJECT_HEADER Header;
3198 ULONG Flags;
3199 NDIS_RECEIVE_QUEUE_TYPE QueueType;
3200 NDIS_RECEIVE_QUEUE_ID QueueId;
3201 NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
3202 GROUP_AFFINITY ProcessorAffinity;
3203 ULONG NumSuggestedReceiveBuffers;
3204 ULONG MSIXTableEntry;
3205 ULONG LookaheadSize;
3206 NDIS_VM_NAME VmName;
3207 NDIS_QUEUE_NAME QueueName;
3208#if NDIS_SUPPORT_NDIS630
3209 ULONG PortId;
3210 ULONG InterruptCoalescingDomainId;
3211#endif
3212 } NDIS_RECEIVE_QUEUE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_PARAMETERS;
3213
3214 typedef struct _NDIS_RECEIVE_QUEUE_FREE_PARAMETERS {
3215 NDIS_OBJECT_HEADER Header;
3216 ULONG Flags;
3217 NDIS_RECEIVE_QUEUE_ID QueueId;
3218 } NDIS_RECEIVE_QUEUE_FREE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_FREE_PARAMETERS;
3219
3220 typedef enum _NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE {
3221 NdisReceiveQueueOperationalStateUndefined,
3222 NdisReceiveQueueOperationalStateRunning,
3223 NdisReceiveQueueOperationalStatePaused,
3224 NdisReceiveQueueOperationalStateDmaStopped,
3225 NdisReceiveQueueOperationalStateMaximum
3226 } NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE, *PNDIS_RECEIVE_QUEUE_OPERATIONAL_STATE;
3227
3228 typedef struct _NDIS_RECEIVE_QUEUE_INFO {
3229 NDIS_OBJECT_HEADER Header;
3230 ULONG Flags;
3231 NDIS_RECEIVE_QUEUE_TYPE QueueType;
3232 NDIS_RECEIVE_QUEUE_ID QueueId;
3233 NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
3234 NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE QueueState;
3235 GROUP_AFFINITY ProcessorAffinity;
3236 ULONG NumSuggestedReceiveBuffers;
3237 ULONG MSIXTableEntry;
3238 ULONG LookaheadSize;
3239 NDIS_VM_NAME VmName;
3240 NDIS_QUEUE_NAME QueueName;
3241#if NDIS_SUPPORT_NDIS630
3242 ULONG NumFilters;
3243 ULONG InterruptCoalescingDomainId;
3244#endif
3245 } NDIS_RECEIVE_QUEUE_INFO, *PNDIS_RECEIVE_QUEUE_INFO;
3246
3247 typedef struct _NDIS_RECEIVE_QUEUE_INFO_ARRAY {
3248 NDIS_OBJECT_HEADER Header;
3249 ULONG FirstElementOffset;
3250 ULONG NumElements;
3251 ULONG ElementSize;
3252 } NDIS_RECEIVE_QUEUE_INFO_ARRAY, *PNDIS_RECEIVE_QUEUE_INFO_ARRAY;
3253
3254 typedef struct _NDIS_RECEIVE_FILTER_INFO {
3255 NDIS_OBJECT_HEADER Header;
3256 ULONG Flags;
3257 NDIS_RECEIVE_FILTER_TYPE FilterType;
3258 NDIS_RECEIVE_FILTER_ID FilterId;
3259 } NDIS_RECEIVE_FILTER_INFO, *PNDIS_RECEIVE_FILTER_INFO;
3260
3261 typedef struct _NDIS_RECEIVE_FILTER_INFO_ARRAY {
3262 NDIS_OBJECT_HEADER Header;
3263 NDIS_RECEIVE_QUEUE_ID QueueId;
3264 ULONG FirstElementOffset;
3265 ULONG NumElements;
3266 ULONG ElementSize;
3267#if NDIS_SUPPORT_NDIS630
3268 ULONG Flags;
3269 NDIS_NIC_SWITCH_VPORT_ID VPortId;
3270#endif
3271 } NDIS_RECEIVE_FILTER_INFO_ARRAY, *PNDIS_RECEIVE_FILTER_INFO_ARRAY;
3272
3273 typedef struct _NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS {
3274 NDIS_OBJECT_HEADER Header;
3275 ULONG Flags;
3276 NDIS_RECEIVE_QUEUE_ID QueueId;
3277 NDIS_STATUS CompletionStatus;
3278 } NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS;
3279
3280 typedef struct _NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY {
3281 NDIS_OBJECT_HEADER Header;
3282 ULONG Flags;
3283 ULONG FirstElementOffset;
3284 ULONG NumElements;
3285 ULONG ElementSize;
3286 } NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY, *PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY;
3287#endif
3288
3289#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
3290#define NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS 0x01000000
3291#define NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR 0x02000000
3292#define NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC 0x04000000
3293#if NDIS_SUPPORT_NDIS620
3294#define NDIS_RSS_CAPS_USING_MSI_X 0x08000000
3295#endif
3296#if NDIS_SUPPORT_NDIS630
3297#define NDIS_RSS_CAPS_RSS_AVAILABLE_ON_PORTS 0x10000000
3298#define NDIS_RSS_CAPS_SUPPORTS_MSI_X 0x20000000
3299#endif
3300#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4 0x00000100
3301#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6 0x00000200
3302#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX 0x00000400
3303
3304#define NdisHashFunctionToeplitz 0x00000001
3305#define NdisHashFunctionReserved1 0x00000002
3306#define NdisHashFunctionReserved2 0x00000004
3307#define NdisHashFunctionReserved3 0x00000008
3308
3309#define NDIS_HASH_FUNCTION_MASK 0x000000ff
3310#define NDIS_HASH_TYPE_MASK 0x00ffff00
3311
3312#define NDIS_RSS_HASH_FUNC_FROM_HASH_INFO(HINFO) ((HINFO) & (NDIS_HASH_FUNCTION_MASK))
3313#define NDIS_RSS_HASH_TYPE_FROM_HASH_INFO(HINFO) ((HINFO) & (NDIS_HASH_TYPE_MASK))
3314#define NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC(HTYPE, HFCT) ((HTYPE) | (HFCT))
3315
3316#define NDIS_HASH_IPV4 0x00000100
3317#define NDIS_HASH_TCP_IPV4 0x00000200
3318#define NDIS_HASH_IPV6 0x00000400
3319#define NDIS_HASH_IPV6_EX 0x00000800
3320#define NDIS_HASH_TCP_IPV6 0x00001000
3321#define NDIS_HASH_TCP_IPV6_EX 0x00002000
3322
3323#define NDIS_RSS_PARAM_FLAG_BASE_CPU_UNCHANGED 0x0001
3324#define NDIS_RSS_PARAM_FLAG_HASH_INFO_UNCHANGED 0x0002
3325#define NDIS_RSS_PARAM_FLAG_ITABLE_UNCHANGED 0x0004
3326#define NDIS_RSS_PARAM_FLAG_HASH_KEY_UNCHANGED 0x0008
3327#define NDIS_RSS_PARAM_FLAG_DISABLE_RSS 0x0010
3328
3329#define NDIS_RSS_INDIRECTION_TABLE_SIZE_REVISION_1 128
3330#define NDIS_RSS_HASH_SECRET_KEY_SIZE_REVISION_1 40
3331
3332#define NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_1 128
3333#define NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_1 40
3334
3335#if NDIS_SUPPORT_NDIS620
3336#define NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_2 (128 * sizeof (PROCESSOR_NUMBER))
3337#define NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_2 40
3338#endif
3339
3340#define NDIS_RECEIVE_HASH_FLAG_ENABLE_HASH 0x00000001
3341#define NDIS_RECEIVE_HASH_FLAG_HASH_INFO_UNCHANGED 0x00000002
3342#define NDIS_RECEIVE_HASH_FLAG_HASH_KEY_UNCHANGED 0x00000004
3343
3344#define NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS 0x00000001
3345
3346#define NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 1
3347#define NDIS_RECEIVE_HASH_PARAMETERS_REVISION_1 1
3348#define NDIS_PORT_STATE_REVISION_1 1
3349#define NDIS_PORT_CHARACTERISTICS_REVISION_1 1
3350#define NDIS_PORT_ARRAY_REVISION_1 1
3351#define NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_1 1
3352#if NDIS_SUPPORT_NDIS620
3353#define NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_2 2
3354#endif
3355#if NDIS_SUPPORT_NDIS630
3356#define NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 2
3357#endif
3358
3359#define NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_CAPABILITIES, NumberOfReceiveQueues)
3360#define NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_PARAMETERS, HashSecretKeyOffset)
3361#define NDIS_SIZEOF_RECEIVE_HASH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_HASH_PARAMETERS, HashSecretKeyOffset)
3362#define NDIS_SIZEOF_PORT_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_STATE, Flags)
3363#define NDIS_SIZEOF_PORT_CHARACTERISTICS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_CHARACTERISTICS, RcvAuthorizationState)
3364#define NDIS_SIZEOF_PORT_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_ARRAY, Ports)
3365#if NDIS_SUPPORT_NDIS620
3366#define NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_PARAMETERS, ProcessorMasksEntrySize)
3367#endif
3368#if NDIS_SUPPORT_NDIS630
3369#define NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_CAPABILITIES, NumberOfIndirectionTableEntries)
3370#endif
3371
3372 typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES {
3373 NDIS_OBJECT_HEADER Header;
3374 ULONG CapabilitiesFlags;
3375 ULONG NumberOfInterruptMessages;
3376 ULONG NumberOfReceiveQueues;
3377#if NDIS_SUPPORT_NDIS630
3378 USHORT NumberOfIndirectionTableEntries;
3379#endif
3380 } NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES;
3381
3382 typedef struct _NDIS_RECEIVE_SCALE_PARAMETERS {
3383 NDIS_OBJECT_HEADER Header;
3384 USHORT Flags;
3385 USHORT BaseCpuNumber;
3386 ULONG HashInformation;
3387 USHORT IndirectionTableSize;
3388 ULONG IndirectionTableOffset;
3389 USHORT HashSecretKeySize;
3390 ULONG HashSecretKeyOffset;
3391#if NDIS_SUPPORT_NDIS620
3392 ULONG ProcessorMasksOffset;
3393 ULONG NumberOfProcessorMasks;
3394 ULONG ProcessorMasksEntrySize;
3395#endif
3396 } NDIS_RECEIVE_SCALE_PARAMETERS, *PNDIS_RECEIVE_SCALE_PARAMETERS;
3397
3398 typedef struct _NDIS_RECEIVE_HASH_PARAMETERS {
3399 NDIS_OBJECT_HEADER Header;
3400 ULONG Flags;
3401 ULONG HashInformation;
3402 USHORT HashSecretKeySize;
3403 ULONG HashSecretKeyOffset;
3404 } NDIS_RECEIVE_HASH_PARAMETERS, *PNDIS_RECEIVE_HASH_PARAMETERS;
3405
3406 typedef enum _NDIS_PROCESSOR_VENDOR {
3407 NdisProcessorVendorUnknown,
3408 NdisProcessorVendorGenuinIntel,
3409 NdisProcessorVendorGenuineIntel = NdisProcessorVendorGenuinIntel,
3410 NdisProcessorVendorAuthenticAMD
3411 } NDIS_PROCESSOR_VENDOR, *PNDIS_PROCESSOR_VENDOR;
3412
3413#if NDIS_SUPPORT_NDIS620
3414#define NDIS_HYPERVISOR_INFO_FLAG_HYPERVISOR_PRESENT 0x00000001
3415
3416#define NDIS_RSS_PROCESSOR_INFO_REVISION_1 1
3417#define NDIS_SYSTEM_PROCESSOR_INFO_EX_REVISION_1 1
3418#define NDIS_HYPERVISOR_INFO_REVISION_1 1
3419#define NDIS_WMI_RECEIVE_QUEUE_INFO_REVISION_1 1
3420#define NDIS_WMI_RECEIVE_QUEUE_PARAMETERS_REVISION_1 1
3421#if NDIS_SUPPORT_NDIS630
3422#define NDIS_RSS_PROCESSOR_INFO_REVISION_2 2
3423#endif
3424
3425#define NDIS_SIZEOF_RSS_PROCESSOR_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR, PreferenceIndex)
3426#define NDIS_SIZEOF_RSS_PROCESSOR_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR_INFO, RssProcessorEntrySize)
3427#define NDIS_SIZEOF_SYSTEM_PROCESSOR_INFO_EX_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SYSTEM_PROCESSOR_INFO_EX, ProcessorInfoEntrySize)
3428#define NDIS_SIZEOF_HYPERVISOR_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HYPERVISOR_INFO, PartitionType)
3429#define NDIS_SIZEOF_WMI_RECEIVE_QUEUE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_RECEIVE_QUEUE_PARAMETERS, QueueName)
3430#define NDIS_SIZEOF_WMI_RECEIVE_QUEUE_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_RECEIVE_QUEUE_INFO, QueueName)
3431#if NDIS_SUPPORT_NDIS630
3432#define NDIS_SIZEOF_RSS_PROCESSOR_INFO_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR_INFO, RssProfile)
3433#endif
3434
3435 typedef struct _NDIS_RSS_PROCESSOR {
3436 PROCESSOR_NUMBER ProcNum;
3437 USHORT PreferenceIndex;
3438 USHORT Reserved;
3439 } NDIS_RSS_PROCESSOR, *PNDIS_RSS_PROCESSOR;
3440
3441#if NDIS_SUPPORT_NDIS630
3442 typedef enum _NDIS_RSS_PROFILE {
3443 NdisRssProfileClosest = 1,
3444 NdisRssProfileClosestStatic,
3445 NdisRssProfileNuma,
3446 NdisRssProfileNumaStatic,
3447 NdisRssProfileConservative,
3448 NdisRssProfileMaximum,
3449 } NDIS_RSS_PROFILE, *PNDIS_RSS_PROFILE;
3450#endif
3451
3452 typedef struct _NDIS_RSS_PROCESSOR_INFO {
3453 NDIS_OBJECT_HEADER Header;
3454 ULONG Flags;
3455 PROCESSOR_NUMBER RssBaseProcessor;
3456 ULONG MaxNumRssProcessors;
3457 USHORT PreferredNumaNode;
3458 ULONG RssProcessorArrayOffset;
3459 ULONG RssProcessorCount;
3460 ULONG RssProcessorEntrySize;
3461#if NDIS_SUPPORT_NDIS630
3462 PROCESSOR_NUMBER RssMaxProcessor;
3463 NDIS_RSS_PROFILE RssProfile;
3464#endif
3465 } NDIS_RSS_PROCESSOR_INFO, *PNDIS_RSS_PROCESSOR_INFO;
3466
3467 typedef struct _NDIS_PROCESSOR_INFO_EX {
3468 PROCESSOR_NUMBER ProcNum;
3469 ULONG SocketId;
3470 ULONG CoreId;
3471 ULONG HyperThreadId;
3472 USHORT NodeId;
3473 USHORT NodeDistance;
3474 } NDIS_PROCESSOR_INFO_EX, *PNDIS_PROCESSOR_INFO_EX;
3475
3476 typedef struct _NDIS_SYSTEM_PROCESSOR_INFO_EX {
3477 NDIS_OBJECT_HEADER Header;
3478 ULONG Flags;
3479 NDIS_PROCESSOR_VENDOR ProcessorVendor;
3480 ULONG NumSockets;
3481 ULONG NumCores;
3482 ULONG NumCoresPerSocket;
3483 ULONG MaxHyperThreadingProcsPerCore;
3484 ULONG ProcessorInfoOffset;
3485 ULONG NumberOfProcessors;
3486 ULONG ProcessorInfoEntrySize;
3487 } NDIS_SYSTEM_PROCESSOR_INFO_EX, *PNDIS_SYSTEM_PROCESSOR_INFO_EX;
3488
3489 typedef enum _NDIS_HYPERVISOR_PARTITION_TYPE {
3490 NdisHypervisorPartitionTypeUnknown,
3491 NdisHypervisorPartitionTypeMsHvParent,
3492 NdisHypervisorPartitionMsHvChild,
3493 NdisHypervisorPartitionTypeMax
3494 } NDIS_HYPERVISOR_PARTITION_TYPE, *PNDIS_HYPERVISOR_PARTITION_TYPE;
3495
3496 typedef struct _NDIS_HYPERVISOR_INFO {
3497 NDIS_OBJECT_HEADER Header;
3498 ULONG Flags;
3499 NDIS_HYPERVISOR_PARTITION_TYPE PartitionType;
3500 } NDIS_HYPERVISOR_INFO, *PNDIS_HYPERVISOR_INFO;
3501
3502 typedef struct _NDIS_WMI_GROUP_AFFINITY {
3503 ULONG64 Mask;
3504 USHORT Group;
3505 USHORT Reserved[3];
3506 } NDIS_WMI_GROUP_AFFINITY, *PNDIS_WMI_GROUP_AFFINITY;
3507
3508 typedef struct _NDIS_WMI_RECEIVE_QUEUE_PARAMETERS {
3509 NDIS_OBJECT_HEADER Header;
3510 ULONG Flags;
3511 NDIS_RECEIVE_QUEUE_TYPE QueueType;
3512 NDIS_RECEIVE_QUEUE_ID QueueId;
3513 NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
3514 NDIS_WMI_GROUP_AFFINITY ProcessorAffinity;
3515 ULONG NumSuggestedReceiveBuffers;
3516 ULONG MSIXTableEntry;
3517 ULONG LookaheadSize;
3518 NDIS_VM_NAME VmName;
3519 NDIS_QUEUE_NAME QueueName;
3520 } NDIS_WMI_RECEIVE_QUEUE_PARAMETERS, *PNDIS_WMI_RECEIVE_QUEUE_PARAMETERS;
3521
3522 typedef struct _NDIS_WMI_RECEIVE_QUEUE_INFO {
3523 NDIS_OBJECT_HEADER Header;
3524 ULONG Flags;
3525 NDIS_RECEIVE_QUEUE_TYPE QueueType;
3526 NDIS_RECEIVE_QUEUE_ID QueueId;
3527 NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
3528 NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE QueueState;
3529 NDIS_WMI_GROUP_AFFINITY ProcessorAffinity;
3530 ULONG NumSuggestedReceiveBuffers;
3531 ULONG MSIXTableEntry;
3532 ULONG LookaheadSize;
3533 NDIS_VM_NAME VmName;
3534 NDIS_QUEUE_NAME QueueName;
3535 } NDIS_WMI_RECEIVE_QUEUE_INFO, *PNDIS_WMI_RECEIVE_QUEUE_INFO;
3536#endif
3537
3538#if NDIS_SUPPORT_NDIS630
3539
3540#define NDIS_NDK_PERFORMANCE_COUNTER_MASK(CNTFIELD) (((ULONG64) 1) << (FIELD_OFFSET (NDIS_NDK_PERFORMANCE_COUNTERS, CNTFIELD) / sizeof (ULONG64)))
3541
3542#define OID_NDK_SET_STATE 0xfc040201
3543#define OID_NDK_STATISTICS 0xfc040202
3544#define OID_NDK_CONNECTIONS 0xfc040203
3545#define OID_NDK_LOCAL_ENDPOINTS 0xfc040204
3546
3547#define OID_QOS_HARDWARE_CAPABILITIES 0xfc050001
3548#define OID_QOS_CURRENT_CAPABILITIES 0xfc050002
3549#define OID_QOS_PARAMETERS 0xfc050003
3550#define OID_QOS_OPERATIONAL_PARAMETERS 0xfc050004
3551#define OID_QOS_REMOTE_PARAMETERS 0xfc050005
3552
3553#define NDIS_QOS_MAXIMUM_PRIORITIES 8
3554#define NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES 8
3555
3556#define NDIS_QOS_CAPABILITIES_STRICT_TSA_SUPPORTED 0x00000001
3557#define NDIS_QOS_CAPABILITIES_MACSEC_BYPASS_SUPPORTED 0x00000002
3558#define NDIS_QOS_CAPABILITIES_CEE_DCBX_SUPPORTED 0x00000004
3559#define NDIS_QOS_CAPABILITIES_IEEE_DCBX_SUPPORTED 0x00000008
3560
3561#define NDIS_QOS_CLASSIFICATION_SET_BY_MINIPORT_MASK 0xff000000
3562#define NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT 0x01000000
3563
3564#define NDIS_QOS_CONDITION_RESERVED 0x0
3565#define NDIS_QOS_CONDITION_DEFAULT 0x1
3566#define NDIS_QOS_CONDITION_TCP_PORT 0x2
3567#define NDIS_QOS_CONDITION_UDP_PORT 0x3
3568#define NDIS_QOS_CONDITION_TCP_OR_UDP_PORT 0x4
3569#define NDIS_QOS_CONDITION_ETHERTYPE 0x5
3570#define NDIS_QOS_CONDITION_NETDIRECT_PORT 0x6
3571#define NDIS_QOS_CONDITION_MAXIMUM 0x7
3572
3573#define NDIS_QOS_ACTION_PRIORITY 0x0
3574#define NDIS_QOS_ACTION_MAXIMUM 0x1
3575
3576#define NDIS_QOS_PARAMETERS_ETS_CHANGED 0x00000001
3577#define NDIS_QOS_PARAMETERS_ETS_CONFIGURED 0x00000002
3578#define NDIS_QOS_PARAMETERS_PFC_CHANGED 0x00000100
3579#define NDIS_QOS_PARAMETERS_PFC_CONFIGURED 0x00000200
3580#define NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED 0x00010000
3581#define NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED 0x00020000
3582#define NDIS_QOS_PARAMETERS_WILLING 0x80000000
3583
3584#define NDIS_QOS_TSA_STRICT 0x0
3585#define NDIS_QOS_TSA_CBS 0x1
3586#define NDIS_QOS_TSA_ETS 0x2
3587#define NDIS_QOS_TSA_MAXIMUM 0x3
3588
3589#define NDIS_PF_FUNCTION_ID (USHORT) -1
3590#define NDIS_INVALID_VF_FUNCTION_ID (USHORT) -1
3591#define NDIS_INVALID_RID (ULONG) -1
3592#define NDIS_DEFAULT_VPORT_ID 0
3593#define NDIS_DEFAULT_SWITCH_ID 0
3594#define NDIS_INVALID_SWITCH_ID (ULONG) -1
3595
3596#define NDIS_NIC_SWITCH_PARAMETERS_CHANGE_MASK 0xffff0000
3597#define NDIS_NIC_SWITCH_PARAMETERS_SWITCH_NAME_CHANGED 0x00010000
3598
3599#define NDIS_SRIOV_CAPS_SRIOV_SUPPORTED 0x00000001
3600#define NDIS_SRIOV_CAPS_PF_MINIPORT 0x00000002
3601#define NDIS_SRIOV_CAPS_VF_MINIPORT 0x00000004
3602
3603#define NDIS_NIC_SWITCH_VF_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH 0x00000001
3604
3605#define NDIS_NIC_SWITCH_VPORT_PARAMS_LOOKAHEAD_SPLIT_ENABLED 0x00000001
3606#define NDIS_NIC_SWITCH_VPORT_PARAMS_CHANGE_MASK 0xffff0000
3607#define NDIS_NIC_SWITCH_VPORT_PARAMS_FLAGS_CHANGED 0x00010000
3608#define NDIS_NIC_SWITCH_VPORT_PARAMS_NAME_CHANGED 0x00020000
3609#define NDIS_NIC_SWITCH_VPORT_PARAMS_INT_MOD_CHANGED 0x00040000
3610#define NDIS_NIC_SWITCH_VPORT_PARAMS_STATE_CHANGED 0x00080000
3611#define NDIS_NIC_SWITCH_VPORT_PARAMS_PROCESSOR_AFFINITY_CHANGED 0x00100000
3612
3613#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION 0x00000001
3614#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH 0x00000002
3615
3616#define NDIS_NIC_SWITCH_VPORT_INFO_LOOKAHEAD_SPLIT_ENABLED 0x00000001
3617
3618 DEFINE_GUID (GUID_NDIS_NDK_CAPABILITIES, 0x7969ba4d, 0xdd80, 0x4bc7, 0xb3, 0xe6, 0x68, 0x04, 0x39, 0x97, 0xe5, 0x19);
3619 DEFINE_GUID (GUID_NDIS_NDK_STATE, 0x530c69c9, 0x2f51, 0x49de, 0xa1, 0xaf, 0x08, 0x8d, 0x54, 0xff, 0xa4, 0x74);
3620
3621#define NDIS_NDK_CAPABILITIES_REVISION_1 1
3622#define NDIS_NDK_STATISTICS_INFO_REVISION_1 1
3623#define NDIS_NDK_CONNECTIONS_REVISION_1 1
3624#define NDIS_NDK_LOCAL_ENDPOINTS_REVISION_1 1
3625#define NDIS_QOS_CAPABILITIES_REVISION_1 1
3626#define NDIS_QOS_CLASSIFICATION_ELEMENT_REVISION_1 1
3627#define NDIS_QOS_PARAMETERS_REVISION_1 1
3628#define NDIS_NIC_SWITCH_PARAMETERS_REVISION_1 1
3629#define NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS_REVISION_1 1
3630#define NDIS_NIC_SWITCH_INFO_REVISION_1 1
3631#define NDIS_NIC_SWITCH_INFO_ARRAY_REVISION_1 1
3632#define NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_1 1
3633#define NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS_REVISION_1 1
3634#define NDIS_NIC_SWITCH_VPORT_INFO_REVISION_1 1
3635#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_REVISION_1 1
3636#define NDIS_NIC_SWITCH_VF_PARAMETERS_REVISION_1 1
3637#define NDIS_NIC_SWITCH_FREE_VF_PARAMETERS_REVISION_1 1
3638#define NDIS_NIC_SWITCH_VF_INFO_REVISION_1 1
3639#define NDIS_NIC_SWITCH_VF_INFO_ARRAY_REVISION_1 1
3640#define NDIS_SRIOV_CAPABILITIES_REVISION_1 1
3641#define NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 1
3642#define NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 1
3643#define NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 1
3644#define NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 1
3645#define NDIS_SRIOV_RESET_VF_PARAMETERS_REVISION_1 1
3646#define NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS_REVISION_1 1
3647#define NDIS_SRIOV_CONFIG_STATE_PARAMETERS_REVISION_1 1
3648#define NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO_REVISION_1 1
3649#define NDIS_SRIOV_PROBED_BARS_INFO_REVISION_1 1
3650#define NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS_REVISION_1 1
3651#define NDIS_SRIOV_BAR_RESOURCES_INFO_REVISION_1 1
3652#define NDIS_SRIOV_PF_LUID_INFO_REVISION_1 1
3653#define NDIS_SRIOV_VF_SERIAL_NUMBER_INFO_REVISION_1 1
3654#define NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO_REVISION_1 1
3655#define NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION_1 1
3656#define NDIS_SWITCH_PORT_PROPERTY_SECURITY_REVISION_1 1
3657#define NDIS_SWITCH_PORT_PROPERTY_VLAN_REVISION_1 1
3658#define NDIS_SWITCH_PORT_PROPERTY_PROFILE_REVISION_1 1
3659#define NDIS_SWITCH_PORT_PROPERTY_CUSTOM_REVISION_1 1
3660#define NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_REVISION_1 1
3661#define NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS_REVISION_1 1
3662#define NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_REVISION_1 1
3663#define NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_REVISION_1 1
3664#define NDIS_SWITCH_PROPERTY_PARAMETERS_REVISION_1 1
3665#define NDIS_SWITCH_PROPERTY_CUSTOM_REVISION_1 1
3666#define NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS_REVISION_1 1
3667#define NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM_REVISION_1 1
3668#define NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS_REVISION_1 1
3669#define NDIS_SWITCH_PROPERTY_ENUM_INFO_REVISION_1 1
3670#define NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_REVISION_1 1
3671#define NDIS_SWITCH_FEATURE_STATUS_CUSTOM_REVISION_1 1
3672#define NDIS_SWITCH_PORT_PARAMETERS_REVISION_1 1
3673#define NDIS_SWITCH_PORT_ARRAY_REVISION_1 1
3674#define NDIS_SWITCH_PARAMETERS_REVISION_1 1
3675#define NDIS_SWITCH_NIC_PARAMETERS_REVISION_1 1
3676#define NDIS_SWITCH_NIC_ARRAY_REVISION_1 1
3677#define NDIS_SWITCH_NIC_OID_REQUEST_REVISION_1 1
3678#define NDIS_SWITCH_FEATURE_STATUS_PARAMETERS_REVISION_1 1
3679#define NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 1
3680
3681#define NDIS_SIZEOF_NDK_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NDK_CAPABILITIES, NdkInfo)
3682#define NDIS_SIZEOF_NDK_STATISTICS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NDK_STATISTICS_INFO, CounterSet)
3683#define NDIS_SIZEOF_NDK_CONNECTIONS_REVISION_1(n) FIELD_OFFSET (NDIS_NDK_CONNECTIONS, Connections[n])
3684#define NDIS_SIZEOF_NDK_LOCAL_ENDPOINTS_REVISION_1(n) FIELD_OFFSET (NDIS_NDK_LOCAL_ENDPOINTS, LocalEndpoints[n])
3685#define NDIS_SIZEOF_QOS_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_CAPABILITIES, MaxNumPfcEnabledTrafficClasses)
3686#define NDIS_SIZEOF_QOS_CLASSIFICATION_ELEMENT_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_CLASSIFICATION_ELEMENT, ActionField)
3687#define NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_PARAMETERS, FirstClassificationElementOffset)
3688#define NDIS_SIZEOF_NIC_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_PARAMETERS, NdisReserved3)
3689#define NDIS_SIZEOF_NIC_SWITCH_DELETE_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS, SwitchId)
3690#define NDIS_SIZEOF_NIC_SWITCH_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_INFO, NumActiveNonDefaultVPortVlanIds)
3691#define NDIS_SIZEOF_NIC_SWITCH_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_INFO_ARRAY, ElementSize)
3692#define NDIS_SIZEOF_NIC_SWITCH_VPORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_PARAMETERS, LookaheadSize)
3693#define NDIS_SIZEOF_NIC_SWITCH_DELETE_VPORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS, VPortId)
3694#define NDIS_SIZEOF_NIC_SWITCH_VPORT_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_INFO, NumFilters)
3695#define NDIS_SIZEOF_NIC_SWITCH_VPORT_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_INFO_ARRAY, ElementSize)
3696#define NDIS_SIZEOF_NIC_SWITCH_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_PARAMETERS, RequestorId)
3697#define NDIS_SIZEOF_NIC_SWITCH_FREE_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_FREE_VF_PARAMETERS, VFId)
3698#define NDIS_SIZEOF_NIC_SWITCH_VF_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_INFO, RequestorId)
3699#define NDIS_SIZEOF_NIC_SWITCH_VF_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_INFO_ARRAY, ElementSize)
3700#define NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_CAPABILITIES, SriovCapabilities)
3701#define NDIS_SIZEOF_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS, BufferOffset)
3702#define NDIS_SIZEOF_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS, BufferOffset)
3703#define NDIS_SIZEOF_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS, BufferOffset)
3704#define NDIS_SIZEOF_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS, BufferOffset)
3705#define NDIS_SIZEOF_SRIOV_RESET_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_RESET_VF_PARAMETERS, VFId)
3706#define NDIS_SIZEOF_SRIOV_SET_VF_POWER_STATE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS, WakeEnable)
3707#define NDIS_SIZEOF_SRIOV_CONFIG_STATE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_CONFIG_STATE_PARAMETERS, Length)
3708#define NDIS_SIZEOF_SRIOV_VF_VENDOR_DEVICE_ID_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO, DeviceId)
3709#define NDIS_SIZEOF_SRIOV_PROBED_BARS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_PROBED_BARS_INFO, BaseRegisterValuesOffset)
3710#define NDIS_SIZEOF_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS, DestVPortId)
3711#define NDIS_SIZEOF_SRIOV_BAR_RESOURCES_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_BAR_RESOURCES_INFO, BarResourcesOffset)
3712#define NDIS_SIZEOF_SRIOV_PF_LUID_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_PF_LUID_INFO, Luid)
3713#define NDIS_SIZEOF_SRIOV_VF_SERIAL_NUMBER_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_SERIAL_NUMBER_INFO, SerialNumber)
3714#define NDIS_SIZEOF_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO, BlockMask)
3715#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_SECURITY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_SECURITY, AllowTeaming)
3716#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_VLAN_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_VLAN, VlanProperties)
3717#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_PROFILE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_PROFILE, CdnLabel)
3718#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_CUSTOM, PropertyBufferOffset)
3719#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_PARAMETERS, Reserved)
3720#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS, Reserved)
3721#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO, PropertyBufferOffset)
3722#define NDIS_SIZEOF_NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS, Reserved)
3723#define NDIS_SIZEOF_NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM, FeatureStatusBufferOffset)
3724#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_CUSTOM, PropertyBufferOffset)
3725#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS, PropertyInstanceId)
3726#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_PARAMETERS, PropertyBufferOffset)
3727#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_ENUM_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_ENUM_INFO, PropertyBufferOffset)
3728#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS, NumProperties)
3729#define NDIS_SIZEOF_NDIS_SWITCH_FEATURE_STATUS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_FEATURE_STATUS_PARAMETERS, FeatureStatusBufferLength)
3730#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS, PropertyInstanceId)
3731#define NDIS_SIZEOF_NDIS_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PARAMETERS, IsActive)
3732#define NDIS_SIZEOF_NDIS_SWITCH_FEATURE_STATUS_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_FEATURE_STATUS_CUSTOM, FeatureStatusCustomBufferOffset)
3733#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PARAMETERS, PortState)
3734#define NDIS_SIZEOF_NDIS_SWITCH_PORT_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_ARRAY, ElementSize)
3735#define NDIS_SIZEOF_NDIS_SWITCH_NIC_OID_REQUEST_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_OID_REQUEST, OidRequest)
3736#define NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_SAVE_STATE, SaveDataOffset)
3737#define NDIS_SIZEOF_NDIS_SWITCH_NIC_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_PARAMETERS, VFAssigned)
3738#define NDIS_SIZEOF_NDIS_SWITCH_NIC_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_ARRAY, ElementSize)
3739
3740#define NDIS_SWITCH_PORT_PROPERTY_CUSTOM_GET_BUFFER(PPROPC) ((PVOID) ((PUCHAR) (PPROPC) + (PPROPC)->PropertyBufferOffset))
3741#define NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_GET_PROPERTY(PPARM) ((PVOID) ((PUCHAR) (PPARM) + (PPARM)->PropertyBufferOffset))
3742#define NDIS_SWITCH_CREATE_PROPERTY_VERSION(VMAJOR, VMINOR) (((VMAJOR) << 8) + (VMINOR))
3743#define NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_GET_FIRST_INFO(PEPARM) ((PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO) ((PUCHAR) (PEPARM) + (PEPARM)->FirstPropertyOffset))
3744#define NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_GET_NEXT(PEINFO) ((PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO) ((ULONG_PTR) (PEINFO) + (PEINFO)->QwordAlignedPropertyBufferLength + sizeof (NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO)))
3745#define NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_GET_PROPERTY(PEINFO) ((PVOID) ((PUCHAR) (PEINFO) + (PEINFO)->PropertyBufferOffset))
3746#define NDIS_SWITCH_CREATE_FEATURE_STATUS_VERSION(VMAJOR, VMINOR) (((VMAJOR) << 8) + (VMINOR))
3747#define NDIS_SWITCH_PROPERTY_CUSTOM_GET_BUFFER(SWPROPC) ((PVOID) ((PUCHAR) (SWPROPC) + (SWPROPC)->PropertyBufferOffset))
3748#define NDIS_SWITCH_PROPERTY_PARAMETERS_GET_PROPERTY(SWPARA) ((PVOID) ((PUCHAR) (SWPARA) + (SWPARA)->PropertyBufferOffset))
3749#define NDIS_SWITCH_PROPERTY_ENUM_INFO_GET_NEXT(SWEINFO) ((PNDIS_SWITCH_PROPERTY_ENUM_INFO) ((ULONG_PTR) (SWEINFO) + (SWEINFO)->QwordAlignedPropertyBufferLength + sizeof (NDIS_SWITCH_PROPERTY_ENUM_INFO)))
3750#define NDIS_SWITCH_PROPERTY_ENUM_INFO_GET_PROPERTY(SWEINFO) ((PVOID) ((PUCHAR) (SWEINFO) + (SWEINFO)->PropertyBufferOffset))
3751#define NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_GET_FIRST_INFO(SWEPARM) ((PNDIS_SWITCH_PROPERTY_ENUM_INFO) ((PUCHAR) (SWEPARM) + (SWEPARM)->FirstPropertyOffset))
3752#define NDIS_SWITCH_PORT_AT_ARRAY_INDEX(PA, IDX) ((PNDIS_SWITCH_PORT_PARAMETERS) ((PUCHAR) (PA) + (PA)->FirstElementOffset + ((PA)->ElementSize * (IDX))))
3753#define NDIS_SWITCH_NIC_AT_ARRAY_INDEX(NA, IDX) ((PNDIS_SWITCH_NIC_PARAMETERS) ((PUCHAR) (NA) + (NA)->FirstElementOffset + ((NA)->ElementSize * (IDX))))
3754
3755#include <ndkinfo.h>
3756#include <ws2def.h>
3757#ifndef __CYGWIN__
3758#include <ws2ipdef.h>
3759#endif
3760
3761 typedef struct _NDIS_NDK_PERFORMANCE_COUNTERS {
3762 ULONG64 Connect;
3763 ULONG64 Accept;
3764 ULONG64 ConnectFailure;
3765 ULONG64 ConnectionError;
3766 ULONG64 ActiveConnection;
3767 ULONG64 Reserved01;
3768 ULONG64 Reserved02;
3769 ULONG64 Reserved03;
3770 ULONG64 Reserved04;
3771 ULONG64 Reserved05;
3772 ULONG64 Reserved06;
3773 ULONG64 Reserved07;
3774 ULONG64 Reserved08;
3775 ULONG64 Reserved09;
3776 ULONG64 Reserved10;
3777 ULONG64 Reserved11;
3778 ULONG64 Reserved12;
3779 ULONG64 Reserved13;
3780 ULONG64 Reserved14;
3781 ULONG64 Reserved15;
3782 ULONG64 Reserved16;
3783 ULONG64 Reserved17;
3784 ULONG64 Reserved18;
3785 ULONG64 Reserved19;
3786 ULONG64 Reserved20;
3787 ULONG64 CQError;
3788 ULONG64 RDMAInOctets;
3789 ULONG64 RDMAOutOctets;
3790 ULONG64 RDMAInFrames;
3791 ULONG64 RDMAOutFrames;
3792 } NDIS_NDK_PERFORMANCE_COUNTERS, *PNDIS_NDK_PERFORMANCE_COUNTERS;
3793
3794 typedef struct _NDIS_NDK_CAPABILITIES {
3795 NDIS_OBJECT_HEADER Header;
3796 ULONG Flags;
3797 ULONG MaxQpCount;
3798 ULONG MaxCqCount;
3799 ULONG MaxMrCount;
3800 ULONG MaxPdCount;
3801 ULONG MaxInboundReadLimit;
3802 ULONG MaxOutboundReadLimit;
3803 ULONG MaxMwCount;
3804 ULONG MaxSrqCount;
3805 ULONG64 MissingCounterMask;
3806 NDK_ADAPTER_INFO *NdkInfo;
3807 } NDIS_NDK_CAPABILITIES, *PNDIS_NDK_CAPABILITIES;
3808
3809 typedef struct _NDK_WMI_ADAPTER_INFO {
3810 NDK_VERSION Version;
3811 UINT32 VendorId;
3812 UINT32 DeviceId;
3813 ULONGLONG MaxRegistrationSize;
3814 ULONGLONG MaxWindowSize;
3815 ULONG FRMRPageCount;
3816 ULONG MaxInitiatorRequestSge;
3817 ULONG MaxReceiveRequestSge;
3818 ULONG MaxReadRequestSge;
3819 ULONG MaxTransferLength;
3820 ULONG MaxInlineDataSize;
3821 ULONG MaxInboundReadLimit;
3822 ULONG MaxOutboundReadLimit;
3823 ULONG MaxReceiveQueueDepth;
3824 ULONG MaxInitiatorQueueDepth;
3825 ULONG MaxSrqDepth;
3826 ULONG MaxCqDepth;
3827 ULONG LargeRequestThreshold;
3828 ULONG MaxCallerData;
3829 ULONG MaxCalleeData;
3830 ULONG AdapterFlags;
3831 } NDK_WMI_ADAPTER_INFO, *PNDK_WMI_ADAPTER_INFO;
3832
3833 typedef struct _NDIS_WMI_NDK_CAPABILITIES {
3834 ULONG MaxQpCount;
3835 ULONG MaxCqCount;
3836 ULONG MaxMrCount;
3837 ULONG MaxPdCount;
3838 ULONG MaxInboundReadLimit;
3839 ULONG MaxOutboundReadLimit;
3840 ULONG MaxMwCount;
3841 ULONG MaxSrqCount;
3842 ULONG64 MissingCounterMask;
3843 NDK_WMI_ADAPTER_INFO NdkInfo;
3844 } NDIS_WMI_NDK_CAPABILITIES, *PNDIS_WMI_NDK_CAPABILITIES;
3845
3846 typedef struct _NDIS_NDK_STATISTICS_INFO {
3847 NDIS_OBJECT_HEADER Header;
3848 ULONG Flags;
3849 NDIS_NDK_PERFORMANCE_COUNTERS CounterSet;
3850 } NDIS_NDK_STATISTICS_INFO;
3851
3852 typedef struct _NDIS_NDK_CONNECTION_ENTRY {
3853 SOCKADDR_INET Local;
3854 SOCKADDR_INET Remote;
3855 BOOLEAN UserModeOwner;
3856 ULONG OwnerPid;
3857 } NDIS_NDK_CONNECTION_ENTRY;
3858
3859 typedef struct _NDIS_NDK_CONNECTIONS {
3860 NDIS_OBJECT_HEADER Header;
3861 ULONG Flags;
3862 ULONG Count;
3863 BOOLEAN NDConnectionsMappedtoTCPConnections;
3864 NDIS_NDK_CONNECTION_ENTRY Connections[1];
3865 } NDIS_NDK_CONNECTIONS;
3866
3867 typedef struct _NDIS_NDK_LOCAL_ENDPOINT_ENTRY {
3868 SOCKADDR_INET Local;
3869 BOOLEAN UserModeOwner;
3870 BOOLEAN Listener;
3871 ULONG OwnerPid;
3872 } NDIS_NDK_LOCAL_ENDPOINT_ENTRY;
3873
3874 typedef struct _NDIS_NDK_LOCAL_ENDPOINTS {
3875 NDIS_OBJECT_HEADER Header;
3876 ULONG Flags;
3877 ULONG Count;
3878 BOOLEAN NDLocalEndpointsMappedtoTCPLocalEndpoints;
3879 NDIS_NDK_LOCAL_ENDPOINT_ENTRY LocalEndpoints[1];
3880 } NDIS_NDK_LOCAL_ENDPOINTS;
3881
3882 typedef struct _NDIS_QOS_CAPABILITIES {
3883 NDIS_OBJECT_HEADER Header;
3884 ULONG Flags;
3885 ULONG MaxNumTrafficClasses;
3886 ULONG MaxNumEtsCapableTrafficClasses;
3887 ULONG MaxNumPfcEnabledTrafficClasses;
3888 } NDIS_QOS_CAPABILITIES, *PNDIS_QOS_CAPABILITIES;
3889
3890 typedef struct _NDIS_QOS_CLASSIFICATION_ELEMENT {
3891 NDIS_OBJECT_HEADER Header;
3892 ULONG Flags;
3893 USHORT ConditionSelector;
3894 USHORT ConditionField;
3895 USHORT ActionSelector;
3896 USHORT ActionField;
3897 } NDIS_QOS_CLASSIFICATION_ELEMENT, *PNDIS_QOS_CLASSIFICATION_ELEMENT;
3898
3899 typedef struct _NDIS_QOS_PARAMETERS {
3900 NDIS_OBJECT_HEADER Header;
3901 ULONG Flags;
3902 ULONG NumTrafficClasses;
3903 UCHAR PriorityAssignmentTable[NDIS_QOS_MAXIMUM_PRIORITIES];
3904 UCHAR TcBandwidthAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
3905 UCHAR TsaAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
3906 ULONG PfcEnable;
3907 ULONG NumClassificationElements;
3908 ULONG ClassificationElementSize;
3909 ULONG FirstClassificationElementOffset;
3910 } NDIS_QOS_PARAMETERS, *PNDIS_QOS_PARAMETERS;
3911
3912 typedef NDIS_IF_COUNTED_STRING NDIS_NIC_SWITCH_FRIENDLYNAME, *PNDIS_NIC_SWITCH_FRIENDLYNAME;
3913 typedef NDIS_IF_COUNTED_STRING NDIS_VPORT_NAME, *PNDIS_VPORT_NAME;
3914 typedef ULONG NDIS_NIC_SWITCH_ID, *PNDIS_NIC_SWITCH_ID;
3915 typedef USHORT NDIS_SRIOV_FUNCTION_ID, *PNDIS_SRIOV_FUNCTION_ID;
3916 typedef ULONG NDIS_VF_RID, *PNDIS_VF_RID;
3917
3918 typedef enum _NDIS_NIC_SWITCH_TYPE {
3919 NdisNicSwitchTypeUnspecified,
3920 NdisNicSwitchTypeExternal,
3921 NdisNicSwitchTypeMax
3922 } NDIS_NIC_SWITCH_TYPE, *PNDIS_NIC_SWITCH_TYPE;
3923
3924 typedef struct _NDIS_NIC_SWITCH_PARAMETERS {
3925 NDIS_OBJECT_HEADER Header;
3926 ULONG Flags;
3927 NDIS_NIC_SWITCH_TYPE SwitchType;
3928 NDIS_NIC_SWITCH_ID SwitchId;
3929 NDIS_NIC_SWITCH_FRIENDLYNAME SwitchFriendlyName;
3930 ULONG NumVFs;
3931 ULONG NdisReserved1;
3932 ULONG NdisReserved2;
3933 ULONG NdisReserved3;
3934 } NDIS_NIC_SWITCH_PARAMETERS, *PNDIS_NIC_SWITCH_PARAMETERS;
3935
3936 typedef struct _NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS {
3937 NDIS_OBJECT_HEADER Header;
3938 ULONG Flags;
3939 NDIS_NIC_SWITCH_ID SwitchId;
3940 } NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS, *PNDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS;
3941
3942 typedef struct _NDIS_NIC_SWITCH_INFO {
3943 NDIS_OBJECT_HEADER Header;
3944 ULONG Flags;
3945 NDIS_NIC_SWITCH_TYPE SwitchType;
3946 NDIS_NIC_SWITCH_ID SwitchId;
3947 NDIS_NIC_SWITCH_FRIENDLYNAME SwitchFriendlyName;
3948 ULONG NumVFs;
3949 ULONG NumAllocatedVFs;
3950 ULONG NumVPorts;
3951 ULONG NumActiveVPorts;
3952 ULONG NumQueuePairsForDefaultVPort;
3953 ULONG NumQueuePairsForNonDefaultVPorts;
3954 ULONG NumActiveDefaultVPortMacAddresses;
3955 ULONG NumActiveNonDefaultVPortMacAddresses;
3956 ULONG NumActiveDefaultVPortVlanIds;
3957 ULONG NumActiveNonDefaultVPortVlanIds;
3958 } NDIS_NIC_SWITCH_INFO, *PNDIS_NIC_SWITCH_INFO;
3959
3960 typedef struct _NDIS_NIC_SWITCH_INFO_ARRAY {
3961 NDIS_OBJECT_HEADER Header;
3962 ULONG FirstElementOffset;
3963 ULONG NumElements;
3964 ULONG ElementSize;
3965 } NDIS_NIC_SWITCH_INFO_ARRAY, *PNDIS_NIC_SWITCH_INFO_ARRAY;
3966
3967 typedef enum _NDIS_NIC_SWITCH_VPORT_STATE {
3968 NdisNicSwitchVPortStateUndefined,
3969 NdisNicSwitchVPortStateActivated,
3970 NdisNicSwitchVPortStateDeactivated,
3971 NdisNicSwitchVPortStateMaximum
3972 } NDIS_NIC_SWITCH_VPORT_STATE, *PNDIS_NIC_SWITCH_VPORT_STATE;
3973
3974 typedef enum _NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION {
3975 NdisNicSwitchVPortInterruptModerationUndefined = 0,
3976 NdisNicSwitchVPortInterruptModerationAdaptive = 1,
3977 NdisNicSwitchVPortInterruptModerationOff = 2,
3978 NdisNicSwitchVPortInterruptModerationLow = 100,
3979 NdisNicSwitchVPortInterruptModerationMedium = 200,
3980 NdisNicSwitchVPortInterruptModerationHigh = 300,
3981 } NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION, *PNDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION;
3982
3983 typedef struct _NDIS_NIC_SWITCH_VPORT_PARAMETERS {
3984 NDIS_OBJECT_HEADER Header;
3985 ULONG Flags;
3986 NDIS_NIC_SWITCH_ID SwitchId;
3987 NDIS_NIC_SWITCH_VPORT_ID VPortId;
3988 NDIS_VPORT_NAME VPortName;
3989 NDIS_SRIOV_FUNCTION_ID AttachedFunctionId;
3990 ULONG NumQueuePairs;
3991 NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION InterruptModeration;
3992 NDIS_NIC_SWITCH_VPORT_STATE VPortState;
3993 GROUP_AFFINITY ProcessorAffinity;
3994 ULONG LookaheadSize;
3995 } NDIS_NIC_SWITCH_VPORT_PARAMETERS, *PNDIS_NIC_SWITCH_VPORT_PARAMETERS;
3996
3997 typedef struct _NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS {
3998 NDIS_OBJECT_HEADER Header;
3999 ULONG Flags;
4000 NDIS_NIC_SWITCH_VPORT_ID VPortId;
4001 } NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS, *PNDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS;
4002
4003 typedef struct _NDIS_NIC_SWITCH_VPORT_INFO {
4004 NDIS_OBJECT_HEADER Header;
4005 NDIS_NIC_SWITCH_VPORT_ID VPortId;
4006 ULONG Flags;
4007 NDIS_NIC_SWITCH_ID SwitchId;
4008 NDIS_VPORT_NAME VPortName;
4009 NDIS_SRIOV_FUNCTION_ID AttachedFunctionId;
4010 ULONG NumQueuePairs;
4011 NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION InterruptModeration;
4012 NDIS_NIC_SWITCH_VPORT_STATE VPortState;
4013 GROUP_AFFINITY ProcessorAffinity;
4014 ULONG LookaheadSize;
4015 ULONG NumFilters;
4016 } NDIS_NIC_SWITCH_VPORT_INFO, *PNDIS_NIC_SWITCH_VPORT_INFO;
4017
4018 typedef struct _NDIS_NIC_SWITCH_VPORT_INFO_ARRAY {
4019 NDIS_OBJECT_HEADER Header;
4020 ULONG Flags;
4021 NDIS_NIC_SWITCH_ID SwitchId;
4022 NDIS_SRIOV_FUNCTION_ID AttachedFunctionId;
4023 ULONG FirstElementOffset;
4024 ULONG NumElements;
4025 ULONG ElementSize;
4026 } NDIS_NIC_SWITCH_VPORT_INFO_ARRAY, *PNDIS_NIC_SWITCH_VPORT_INFO_ARRAY;
4027
4028 typedef struct _NDIS_NIC_SWITCH_VF_PARAMETERS {
4029 NDIS_OBJECT_HEADER Header;
4030 ULONG Flags;
4031 NDIS_NIC_SWITCH_ID SwitchId;
4032 NDIS_VM_NAME VMName;
4033 NDIS_VM_FRIENDLYNAME VMFriendlyName;
4034 NDIS_SWITCH_NIC_NAME NicName;
4035 USHORT MacAddressLength;
4036 UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
4037 UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
4038 NDIS_SRIOV_FUNCTION_ID VFId;
4039 NDIS_VF_RID RequestorId;
4040 } NDIS_NIC_SWITCH_VF_PARAMETERS, *PNDIS_NIC_SWITCH_VF_PARAMETERS;
4041
4042 typedef struct _NDIS_NIC_SWITCH_FREE_VF_PARAMETERS {
4043 NDIS_OBJECT_HEADER Header;
4044 ULONG Flags;
4045 NDIS_SRIOV_FUNCTION_ID VFId;
4046 } NDIS_NIC_SWITCH_FREE_VF_PARAMETERS, *PNDIS_NIC_SWITCH_FREE_VF_PARAMETERS;
4047
4048 typedef struct _NDIS_NIC_SWITCH_VF_INFO {
4049 NDIS_OBJECT_HEADER Header;
4050 ULONG Flags;
4051 NDIS_NIC_SWITCH_ID SwitchId;
4052 NDIS_VM_NAME VMName;
4053 NDIS_VM_FRIENDLYNAME VMFriendlyName;
4054 NDIS_SWITCH_NIC_NAME NicName;
4055 USHORT MacAddressLength;
4056 UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
4057 UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
4058 NDIS_SRIOV_FUNCTION_ID VFId;
4059 NDIS_VF_RID RequestorId;
4060 } NDIS_NIC_SWITCH_VF_INFO, *PNDIS_NIC_SWITCH_VF_INFO;
4061
4062 typedef struct _NDIS_NIC_SWITCH_VF_INFO_ARRAY {
4063 NDIS_OBJECT_HEADER Header;
4064 ULONG Flags;
4065 NDIS_NIC_SWITCH_ID SwitchId;
4066 ULONG FirstElementOffset;
4067 ULONG NumElements;
4068 ULONG ElementSize;
4069 } NDIS_NIC_SWITCH_VF_INFO_ARRAY, *PNDIS_NIC_SWITCH_VF_INFO_ARRAY;
4070
4071 typedef struct _NDIS_SRIOV_CAPABILITIES {
4072 NDIS_OBJECT_HEADER Header;
4073 ULONG Flags;
4074 ULONG SriovCapabilities;
4075 } NDIS_SRIOV_CAPABILITIES, *PNDIS_SRIOV_CAPABILITIES;
4076
4077 typedef struct _NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS {
4078 NDIS_OBJECT_HEADER Header;
4079 NDIS_SRIOV_FUNCTION_ID VFId;
4080 ULONG Offset;
4081 ULONG Length;
4082 ULONG BufferOffset;
4083 } NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS, *PNDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS;
4084
4085 typedef struct _NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS {
4086 NDIS_OBJECT_HEADER Header;
4087 NDIS_SRIOV_FUNCTION_ID VFId;
4088 ULONG Offset;
4089 ULONG Length;
4090 ULONG BufferOffset;
4091 } NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS, *PNDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS;
4092
4093 typedef struct _NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS {
4094 NDIS_OBJECT_HEADER Header;
4095 NDIS_SRIOV_FUNCTION_ID VFId;
4096 ULONG BlockId;
4097 ULONG Length;
4098 ULONG BufferOffset;
4099 } NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS, *PNDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS;
4100
4101 typedef struct _NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS {
4102 NDIS_OBJECT_HEADER Header;
4103 NDIS_SRIOV_FUNCTION_ID VFId;
4104 ULONG BlockId;
4105 ULONG Length;
4106 ULONG BufferOffset;
4107 } NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS, *PNDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS;
4108
4109 typedef struct _NDIS_SRIOV_RESET_VF_PARAMETERS {
4110 NDIS_OBJECT_HEADER Header;
4111 NDIS_SRIOV_FUNCTION_ID VFId;
4112 } NDIS_SRIOV_RESET_VF_PARAMETERS, *PNDIS_SRIOV_RESET_VF_PARAMETERS;
4113
4114 typedef struct _NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS {
4115 NDIS_OBJECT_HEADER Header;
4116 NDIS_SRIOV_FUNCTION_ID VFId;
4117 NDIS_DEVICE_POWER_STATE PowerState;
4118 BOOLEAN WakeEnable;
4119 } NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS, *PNDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS;
4120
4121 typedef struct _NDIS_SRIOV_CONFIG_STATE_PARAMETERS {
4122 NDIS_OBJECT_HEADER Header;
4123 ULONG BlockId;
4124 ULONG Length;
4125 } NDIS_SRIOV_CONFIG_STATE_PARAMETERS, *PNDIS_SRIOV_CONFIG_STATE_PARAMETERS;
4126
4127 typedef struct _NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO {
4128 NDIS_OBJECT_HEADER Header;
4129 NDIS_SRIOV_FUNCTION_ID VFId;
4130 USHORT VendorId;
4131 USHORT DeviceId;
4132 } NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO, *PNDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO;
4133
4134 typedef struct _NDIS_SRIOV_PROBED_BARS_INFO {
4135 NDIS_OBJECT_HEADER Header;
4136 ULONG BaseRegisterValuesOffset;
4137 } NDIS_SRIOV_PROBED_BARS_INFO, *PNDIS_SRIOV_PROBED_BARS_INFO;
4138
4139 typedef struct _NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS {
4140 NDIS_OBJECT_HEADER Header;
4141 NDIS_RECEIVE_FILTER_ID FilterId;
4142 NDIS_RECEIVE_QUEUE_ID SourceQueueId;
4143 NDIS_NIC_SWITCH_VPORT_ID SourceVPortId;
4144 NDIS_RECEIVE_QUEUE_ID DestQueueId;
4145 NDIS_NIC_SWITCH_VPORT_ID DestVPortId;
4146 } NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS, *PNDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS;
4147
4148 typedef struct _NDIS_SRIOV_BAR_RESOURCES_INFO {
4149 NDIS_OBJECT_HEADER Header;
4150 NDIS_SRIOV_FUNCTION_ID VFId;
4151 USHORT BarIndex;
4152 ULONG BarResourcesOffset;
4153 } NDIS_SRIOV_BAR_RESOURCES_INFO, *PNDIS_SRIOV_BAR_RESOURCES_INFO;
4154
4155 typedef struct _NDIS_SRIOV_PF_LUID_INFO {
4156 NDIS_OBJECT_HEADER Header;
4157 LUID Luid;
4158 } NDIS_SRIOV_PF_LUID_INFO, *PNDIS_SRIOV_PF_LUID_INFO;
4159
4160 typedef struct _NDIS_SRIOV_VF_SERIAL_NUMBER_INFO {
4161 NDIS_OBJECT_HEADER Header;
4162 ULONG SerialNumber;
4163 } NDIS_SRIOV_VF_SERIAL_NUMBER_INFO, *PNDIS_SRIOV_VF_SERIAL_NUMBER_INFO;
4164
4165 typedef struct _NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO {
4166 NDIS_OBJECT_HEADER Header;
4167 ULONG64 BlockMask;
4168 } NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO, *PNDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO;
4169
4170 typedef GUID NDIS_SWITCH_OBJECT_INSTANCE_ID, *PNDIS_SWITCH_OBJECT_INSTANCE_ID;
4171 typedef GUID NDIS_SWITCH_OBJECT_ID, *PNDIS_SWITCH_OBJECT_ID;
4172 typedef USHORT NDIS_SWITCH_OBJECT_VERSION, *PNDIS_SWITCH_OBJECT_VERSION;
4173 typedef USHORT NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION, *PNDIS_SWITCH_OBJECT_SERIALIZATION_VERSION;
4174#ifndef _NDIS_SWITCH_PORT_ID
4175#define _NDIS_SWITCH_PORT_ID NDIS_SWITCH_PORT_ID
4176 typedef UINT32 NDIS_SWITCH_PORT_ID, *PNDIS_SWITCH_PORT_ID;
4177 typedef USHORT NDIS_SWITCH_NIC_INDEX, *PNDIS_SWITCH_NIC_INDEX;
4178#endif
4179
4180 typedef enum _NDIS_SWITCH_PORT_PROPERTY_TYPE {
4181 NdisSwitchPortPropertyTypeUndefined,
4182 NdisSwitchPortPropertyTypeCustom,
4183 NdisSwitchPortPropertyTypeSecurity,
4184 NdisSwitchPortPropertyTypeVlan,
4185 NdisSwitchPortPropertyTypeProfile,
4186 NdisSwitchPortPropertyTypeMaximum
4187 } NDIS_SWITCH_PORT_PROPERTY_TYPE, *PNDIS_SWITCH_PORT_PROPERTY_TYPE;
4188
4189 typedef struct _NDIS_SWITCH_PORT_PROPERTY_SECURITY {
4190 NDIS_OBJECT_HEADER Header;
4191 ULONG Flags;
4192 BOOLEAN AllowMacSpoofing;
4193 BOOLEAN AllowIeeePriorityTag;
4194 UINT32 VirtualSubnetId;
4195 BOOLEAN AllowTeaming;
4196 } NDIS_SWITCH_PORT_PROPERTY_SECURITY, *PNDIS_SWITCH_PORT_PROPERTY_SECURITY;
4197
4198 typedef enum _NDIS_SWITCH_PORT_VLAN_MODE {
4199 NdisSwitchPortVlanModeUnknown = 0,
4200 NdisSwitchPortVlanModeAccess = 1,
4201 NdisSwitchPortVlanModeTrunk = 2,
4202 NdisSwitchPortVlanModePrivate = 3,
4203 NdisSwitchPortVlanModeMax = 4
4204 } NDIS_SWITCH_PORT_VLAN_MODE, *PNDIS_SWITCH_PORT_VLAN_MODE;
4205
4206 typedef enum _NDIS_SWITCH_PORT_PVLAN_MODE {
4207 NdisSwitchPortPvlanModeUndefined = 0,
4208 NdisSwitchPortPvlanModeIsolated,
4209 NdisSwitchPortPvlanModeCommunity,
4210 NdisSwitchPortPvlanModePromiscuous
4211 } NDIS_SWITCH_PORT_PVLAN_MODE, *PNDIS_SWITCH_PORT_PVLAN_MODE;
4212
4213 typedef struct _NDIS_SWITCH_PORT_PROPERTY_VLAN {
4214 NDIS_OBJECT_HEADER Header;
4215 ULONG Flags;
4216 NDIS_SWITCH_PORT_VLAN_MODE OperationMode;
4217 __C89_NAMELESS union {
4218 struct {
4219 UINT16 AccessVlanId;
4220 UINT16 NativeVlanId;
4221 UINT64 PruneVlanIdArray[64];
4222 UINT64 TrunkVlanIdArray[64];
4223 } VlanProperties;
4224 struct {
4225 NDIS_SWITCH_PORT_PVLAN_MODE PvlanMode;
4226 UINT16 PrimaryVlanId;
4227 __C89_NAMELESS union {
4228 UINT16 SecondaryVlanId;
4229 UINT64 SecondaryVlanIdArray[64];
4230 };
4231 } PvlanProperties;
4232 };
4233 } NDIS_SWITCH_PORT_PROPERTY_VLAN, *PNDIS_SWITCH_PORT_PROPERTY_VLAN;
4234
4235 typedef struct _NDIS_SWITCH_PORT_PROPERTY_PROFILE {
4236 NDIS_OBJECT_HEADER Header;
4237 ULONG Flags;
4238 NDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME ProfileName;
4239 GUID ProfileId;
4240 NDIS_VENDOR_NAME VendorName;
4241 GUID VendorId;
4242 UINT32 ProfileData;
4243 GUID NetCfgInstanceId;
4244 struct {
4245 UINT32 PciSegmentNumber:16;
4246 UINT32 PciBusNumber:8;
4247 UINT32 PciDeviceNumber:5;
4248 UINT32 PciFunctionNumber:3;
4249 } PciLocation;
4250 UINT32 CdnLabelId;
4251 NDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL CdnLabel;
4252 } NDIS_SWITCH_PORT_PROPERTY_PROFILE, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE;
4253
4254 typedef struct _NDIS_SWITCH_PORT_PROPERTY_CUSTOM {
4255 NDIS_OBJECT_HEADER Header;
4256 ULONG Flags;
4257 ULONG PropertyBufferLength;
4258 ULONG PropertyBufferOffset;
4259 } NDIS_SWITCH_PORT_PROPERTY_CUSTOM, *PNDIS_SWITCH_PORT_PROPERTY_CUSTOM;
4260
4261 typedef struct _NDIS_SWITCH_PORT_PROPERTY_PARAMETERS {
4262 NDIS_OBJECT_HEADER Header;
4263 ULONG Flags;
4264 NDIS_SWITCH_PORT_ID PortId;
4265 NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType;
4266 NDIS_SWITCH_OBJECT_ID PropertyId;
4267 NDIS_SWITCH_OBJECT_VERSION PropertyVersion;
4268 NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
4269 NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
4270 ULONG PropertyBufferLength;
4271 ULONG PropertyBufferOffset;
4272 ULONG Reserved;
4273 } NDIS_SWITCH_PORT_PROPERTY_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_PARAMETERS;
4274
4275 typedef struct _NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS {
4276 NDIS_OBJECT_HEADER Header;
4277 ULONG Flags;
4278 NDIS_SWITCH_PORT_ID PortId;
4279 NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType;
4280 NDIS_SWITCH_OBJECT_ID PropertyId;
4281 NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
4282 } NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS;
4283
4284 typedef struct _NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS {
4285 NDIS_OBJECT_HEADER Header;
4286 ULONG Flags;
4287 NDIS_SWITCH_PORT_ID PortId;
4288 NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType;
4289 NDIS_SWITCH_OBJECT_ID PropertyId;
4290 NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
4291 ULONG FirstPropertyOffset;
4292 ULONG NumProperties;
4293 USHORT Reserved;
4294 } NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS;
4295
4296 typedef struct _NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO {
4297 NDIS_OBJECT_HEADER Header;
4298 ULONG Flags;
4299 NDIS_SWITCH_OBJECT_VERSION PropertyVersion;
4300 NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
4301 ULONG QwordAlignedPropertyBufferLength;
4302 ULONG PropertyBufferLength;
4303 ULONG PropertyBufferOffset;
4304 } NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO, *PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO;
4305
4306 typedef enum _NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE {
4307 NdisSwitchPortFeatureStatusTypeUndefined,
4308 NdisSwitchPortFeatureStatusTypeCustom,
4309 NdisSwitchPortFeatureStatusTypeMaximum
4310 } NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE, *PNDIS_SWITCH_PORT_FEATURE_STATUS_TYPE;
4311
4312 typedef struct _NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS {
4313 NDIS_OBJECT_HEADER Header;
4314 ULONG Flags;
4315 NDIS_SWITCH_PORT_ID PortId;
4316 NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE FeatureStatusType;
4317 NDIS_SWITCH_OBJECT_ID FeatureStatusId;
4318 NDIS_SWITCH_OBJECT_VERSION FeatureStatusVersion;
4319 NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
4320 NDIS_SWITCH_OBJECT_INSTANCE_ID FeatureStatusInstanceId;
4321 ULONG FeatureStatusBufferLength;
4322 ULONG FeatureStatusBufferOffset;
4323 ULONG Reserved;
4324 } NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS, *PNDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS;
4325
4326 typedef struct _NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM {
4327 NDIS_OBJECT_HEADER Header;
4328 ULONG Flags;
4329 ULONG FeatureStatusBufferLength;
4330 ULONG FeatureStatusBufferOffset;
4331 } NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM, *PNDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM;
4332
4333 typedef enum _NDIS_SWITCH_PROPERTY_TYPE {
4334 NdisSwitchPropertyTypeUndefined,
4335 NdisSwitchPropertyTypeCustom,
4336 NdisSwitchPropertyTypeMaximum
4337 } NDIS_SWITCH_PROPERTY_TYPE, *PNDIS_SWITCH_PROPERTY_TYPE;
4338
4339 typedef struct _NDIS_SWITCH_PROPERTY_CUSTOM {
4340 NDIS_OBJECT_HEADER Header;
4341 ULONG Flags;
4342 ULONG PropertyBufferLength;
4343 ULONG PropertyBufferOffset;
4344 } NDIS_SWITCH_PROPERTY_CUSTOM, *PNDIS_SWITCH_PROPERTY_CUSTOM;
4345
4346 typedef struct _NDIS_SWITCH_PROPERTY_PARAMETERS {
4347 NDIS_OBJECT_HEADER Header;
4348 ULONG Flags;
4349 NDIS_SWITCH_PROPERTY_TYPE PropertyType;
4350 NDIS_SWITCH_OBJECT_ID PropertyId;
4351 NDIS_SWITCH_OBJECT_VERSION PropertyVersion;
4352 NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
4353 NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
4354 ULONG PropertyBufferLength;
4355 ULONG PropertyBufferOffset;
4356 } NDIS_SWITCH_PROPERTY_PARAMETERS, *PNDIS_SWITCH_PROPERTY_PARAMETERS;
4357
4358 typedef struct _NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS {
4359 NDIS_OBJECT_HEADER Header;
4360 ULONG Flags;
4361 NDIS_SWITCH_PROPERTY_TYPE PropertyType;
4362 NDIS_SWITCH_OBJECT_ID PropertyId;
4363 NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
4364 } NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS, *PNDIS_SWITCH_PROPERTY_DELETE_PARAMETERS;
4365
4366 typedef struct _NDIS_SWITCH_PROPERTY_ENUM_INFO {
4367 NDIS_OBJECT_HEADER Header;
4368 ULONG Flags;
4369 NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
4370 NDIS_SWITCH_OBJECT_VERSION PropertyVersion;
4371 ULONG QwordAlignedPropertyBufferLength;
4372 ULONG PropertyBufferLength;
4373 ULONG PropertyBufferOffset;
4374 } NDIS_SWITCH_PROPERTY_ENUM_INFO, *PNDIS_SWITCH_PROPERTY_ENUM_INFO;
4375
4376 typedef struct _NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS {
4377 NDIS_OBJECT_HEADER Header;
4378 ULONG Flags;
4379 NDIS_SWITCH_PROPERTY_TYPE PropertyType;
4380 NDIS_SWITCH_OBJECT_ID PropertyId;
4381 NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
4382 ULONG FirstPropertyOffset;
4383 ULONG NumProperties;
4384 } NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS, *PNDIS_SWITCH_PROPERTY_ENUM_PARAMETERS;
4385
4386 typedef enum _NDIS_SWITCH_FEATURE_STATUS_TYPE {
4387 NdisSwitchFeatureStatusTypeUndefined,
4388 NdisSwitchFeatureStatusTypeCustom,
4389 NdisSwitchFeatureStatusTypeMaximum
4390 } NDIS_SWITCH_FEATURE_STATUS_TYPE, *PNDIS_SWITCH_FEATURE_STATUS_TYPE;
4391
4392 typedef struct _NDIS_SWITCH_FEATURE_STATUS_PARAMETERS {
4393 NDIS_OBJECT_HEADER Header;
4394 ULONG Flags;
4395 NDIS_SWITCH_FEATURE_STATUS_TYPE FeatureStatusType;
4396 NDIS_SWITCH_OBJECT_ID FeatureStatusId;
4397 NDIS_SWITCH_OBJECT_INSTANCE_ID FeatureStatusInstanceId;
4398 NDIS_SWITCH_OBJECT_VERSION FeatureStatusVersion;
4399 NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
4400 ULONG FeatureStatusBufferOffset;
4401 ULONG FeatureStatusBufferLength;
4402 } NDIS_SWITCH_FEATURE_STATUS_PARAMETERS, *PNDIS_SWITCH_FEATURE_STATUS_PARAMETERS;
4403
4404 typedef struct _NDIS_SWITCH_FEATURE_STATUS_CUSTOM {
4405 NDIS_OBJECT_HEADER Header;
4406 ULONG Flags;
4407 ULONG FeatureStatusCustomBufferLength;
4408 ULONG FeatureStatusCustomBufferOffset;
4409 } NDIS_SWITCH_FEATURE_STATUS_CUSTOM, *PNDIS_SWITCH_FEATURE_STATUS_CUSTOM;
4410
4411 typedef struct _NDIS_SWITCH_PARAMETERS {
4412 NDIS_OBJECT_HEADER Header;
4413 ULONG Flags;
4414 NDIS_SWITCH_NAME SwitchName;
4415 NDIS_SWITCH_FRIENDLYNAME SwitchFriendlyName;
4416 UINT32 NumSwitchPorts;
4417 BOOLEAN IsActive;
4418 } NDIS_SWITCH_PARAMETERS, *PNDIS_SWITCH_PARAMETERS;
4419
4420 typedef enum _NDIS_SWITCH_PORT_TYPE {
4421 NdisSwitchPortTypeGeneric = 0,
4422 NdisSwitchPortTypeExternal = 1,
4423 NdisSwitchPortTypeSynthetic = 2,
4424 NdisSwitchPortTypeEmulated = 3,
4425 NdisSwitchPortTypeInternal = 4
4426 } NDIS_SWITCH_PORT_TYPE;
4427
4428 typedef enum _NDIS_SWITCH_PORT_STATE {
4429 NdisSwitchPortStateUnknown = 0,
4430 NdisSwitchPortStateCreated = 1,
4431 NdisSwitchPortStateTeardown = 2,
4432 NdisSwitchPortStateDeleted = 3
4433 } NDIS_SWITCH_PORT_STATE;
4434
4435 typedef struct _NDIS_SWITCH_PORT_PARAMETERS {
4436 NDIS_OBJECT_HEADER Header;
4437 ULONG Flags;
4438 NDIS_SWITCH_PORT_ID PortId;
4439 NDIS_SWITCH_PORT_NAME PortName;
4440 NDIS_SWITCH_PORT_FRIENDLYNAME PortFriendlyName;
4441 NDIS_SWITCH_PORT_TYPE PortType;
4442 BOOLEAN IsValidationPort;
4443 NDIS_SWITCH_PORT_STATE PortState;
4444 } NDIS_SWITCH_PORT_PARAMETERS, *PNDIS_SWITCH_PORT_PARAMETERS;
4445
4446 typedef struct _NDIS_SWITCH_PORT_ARRAY {
4447 NDIS_OBJECT_HEADER Header;
4448 ULONG Flags;
4449 USHORT FirstElementOffset;
4450 ULONG NumElements;
4451 ULONG ElementSize;
4452 } NDIS_SWITCH_PORT_ARRAY, *PNDIS_SWITCH_PORT_ARRAY;
4453
4454 typedef enum _NDIS_SWITCH_NIC_TYPE {
4455 NdisSwitchNicTypeExternal = 0,
4456 NdisSwitchNicTypeSynthetic = 1,
4457 NdisSwitchNicTypeEmulated = 2,
4458 NdisSwitchNicTypeInternal = 3
4459 } NDIS_SWITCH_NIC_TYPE;
4460
4461 typedef enum _NDIS_SWITCH_NIC_STATE {
4462 NdisSwitchNicStateUnknown = 0,
4463 NdisSwitchNicStateCreated = 1,
4464 NdisSwitchNicStateConnected = 2,
4465 NdisSwitchNicStateDisconnected = 3,
4466 NdisSwitchNicStateDeleted = 4
4467 } NDIS_SWITCH_NIC_STATE;
4468
4469 typedef struct _NDIS_SWITCH_NIC_PARAMETERS {
4470 NDIS_OBJECT_HEADER Header;
4471 ULONG Flags;
4472 NDIS_SWITCH_NIC_NAME NicName;
4473 NDIS_SWITCH_NIC_FRIENDLYNAME NicFriendlyName;
4474 NDIS_SWITCH_PORT_ID PortId;
4475 NDIS_SWITCH_NIC_INDEX NicIndex;
4476 NDIS_SWITCH_NIC_TYPE NicType;
4477 NDIS_SWITCH_NIC_STATE NicState;
4478 NDIS_VM_NAME VmName;
4479 NDIS_VM_FRIENDLYNAME VmFriendlyName;
4480 GUID NetCfgInstanceId;
4481 ULONG MTU;
4482 USHORT NumaNodeId;
4483 UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
4484 UCHAR VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
4485 UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
4486 BOOLEAN VFAssigned;
4487 } NDIS_SWITCH_NIC_PARAMETERS, *PNDIS_SWITCH_NIC_PARAMETERS;
4488
4489 typedef struct _NDIS_SWITCH_NIC_ARRAY {
4490 NDIS_OBJECT_HEADER Header;
4491 ULONG Flags;
4492 USHORT FirstElementOffset;
4493 ULONG NumElements;
4494 ULONG ElementSize;
4495 } NDIS_SWITCH_NIC_ARRAY, *PNDIS_SWITCH_NIC_ARRAY;
4496
4497 typedef struct _NDIS_OID_REQUEST NDIS_OID_REQUEST, *PNDIS_OID_REQUEST;
4498
4499 typedef struct _NDIS_SWITCH_NIC_OID_REQUEST {
4500 NDIS_OBJECT_HEADER Header;
4501 ULONG Flags;
4502 NDIS_SWITCH_PORT_ID SourcePortId;
4503 NDIS_SWITCH_NIC_INDEX SourceNicIndex;
4504 NDIS_SWITCH_PORT_ID DestinationPortId;
4505 NDIS_SWITCH_NIC_INDEX DestinationNicIndex;
4506 PNDIS_OID_REQUEST OidRequest;
4507 } NDIS_SWITCH_NIC_OID_REQUEST, *PNDIS_SWITCH_NIC_OID_REQUEST;
4508
4509 typedef struct _NDIS_SWITCH_NIC_SAVE_STATE {
4510 NDIS_OBJECT_HEADER Header;
4511 ULONG Flags;
4512 NDIS_SWITCH_PORT_ID PortId;
4513 NDIS_SWITCH_NIC_INDEX NicIndex;
4514 GUID ExtensionId;
4515 NDIS_SWITCH_EXTENSION_FRIENDLYNAME ExtensionFriendlyName;
4516 GUID FeatureClassId;
4517 USHORT SaveDataSize;
4518 USHORT SaveDataOffset;
4519 } NDIS_SWITCH_NIC_SAVE_STATE, *PNDIS_SWITCH_NIC_SAVE_STATE;
4520#endif
4521
4522 typedef struct _NDIS_PORT_STATE {
4523 NDIS_OBJECT_HEADER Header;
4524 NDIS_MEDIA_CONNECT_STATE MediaConnectState;
4525 ULONG64 XmitLinkSpeed;
4526 ULONG64 RcvLinkSpeed;
4527 NET_IF_DIRECTION_TYPE Direction;
4528 NDIS_PORT_CONTROL_STATE SendControlState;
4529 NDIS_PORT_CONTROL_STATE RcvControlState;
4530 NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState;
4531 NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState;
4532 ULONG Flags;
4533 } NDIS_PORT_STATE, *PNDIS_PORT_STATE;
4534
4535 typedef struct _NDIS_PORT_CHARACTERISTICS {
4536 NDIS_OBJECT_HEADER Header;
4537 NDIS_PORT_NUMBER PortNumber;
4538 ULONG Flags;
4539 NDIS_PORT_TYPE Type;
4540 NDIS_MEDIA_CONNECT_STATE MediaConnectState;
4541 ULONG64 XmitLinkSpeed;
4542 ULONG64 RcvLinkSpeed;
4543 NET_IF_DIRECTION_TYPE Direction;
4544 NDIS_PORT_CONTROL_STATE SendControlState;
4545 NDIS_PORT_CONTROL_STATE RcvControlState;
4546 NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState;
4547 NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState;
4548 } NDIS_PORT_CHARACTERISTICS, *PNDIS_PORT_CHARACTERISTICS;
4549
4550 typedef struct _NDIS_PORT NDIS_PORT, *PNDIS_PORT;
4551
4552 struct _NDIS_PORT {
4553 PNDIS_PORT Next;
4554 PVOID NdisReserved;
4555 PVOID MiniportReserved;
4556 PVOID ProtocolReserved;
4557 NDIS_PORT_CHARACTERISTICS PortCharacteristics;
4558 };
4559
4560 typedef struct _NDIS_PORT_ARRAY {
4561 NDIS_OBJECT_HEADER Header;
4562 ULONG NumberOfPorts;
4563 ULONG OffsetFirstPort;
4564 ULONG ElementSize;
4565 NDIS_PORT_CHARACTERISTICS Ports[1];
4566 } NDIS_PORT_ARRAY, *PNDIS_PORT_ARRAY;
4567#endif
4568#endif
4569
4570#ifdef __cplusplus
4571}
4572#endif
4573
4574#endif
4575#endif
Note: See TracBrowser for help on using the repository browser.