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 14 extern "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 4576