]> git.pld-linux.org Git - packages/crossmingw32-w32api.git/blame - crossmingw32-w32api-winapi-update.patch
- more winreg.h API updates (>=Vista, required by pango); release 6
[packages/crossmingw32-w32api.git] / crossmingw32-w32api-winapi-update.patch
CommitLineData
85d1e559
JB
1--- w32api-5.0.2/include/winbase.h.orig 2017-11-09 02:35:48.000000000 +0100
2+++ w32api-5.0.2/include/winbase.h 2018-09-16 12:54:28.225409121 +0200
3@@ -270,6 +270,7 @@
4 #define FILE_FLAG_DELETE_ON_CLOSE 67108864
5 #define FILE_FLAG_BACKUP_SEMANTICS 33554432
6 #define FILE_FLAG_POSIX_SEMANTICS 16777216
7+#define FILE_FLAG_SESSION_AWARE 0x800000
8 #define FILE_FLAG_OPEN_REPARSE_POINT 2097152
9 #define FILE_FLAG_OPEN_NO_RECALL 1048576
10
11@@ -453,6 +453,10 @@
12 #define DONT_RESOLVE_DLL_REFERENCES 1
13 #define LOAD_LIBRARY_AS_DATAFILE 2
14 #define LOAD_WITH_ALTERED_SEARCH_PATH 8
15+#define LOAD_IGNORE_CODE_AUTHZ_LEVEL 0x10
16+#define LOAD_LIBRARY_AS_IMAGE_RESOURCE 0x20
17+#define LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE 0x40
18+#define LOAD_LIBRARY_REQUIRE_SIGNED_TARGET 0x80
19
20 #define LMEM_FIXED 0
21 #define LMEM_MOVEABLE 2
22@@ -486,6 +487,8 @@
23 #define MOVEFILE_COPY_ALLOWED 2
24 #define MOVEFILE_DELAY_UNTIL_REBOOT 4
25 #define MOVEFILE_WRITE_THROUGH 8
26+#define MOVEFILE_CREATE_HARDLINK 0x10
27+#define MOVEFILE_FAIL_IF_NOT_TRACKABLE 0x20
28
29 #define MAXIMUM_WAIT_OBJECTS 64
30 #define MAXIMUM_SUSPEND_COUNT 0x7F
31@@ -598,11 +601,13 @@
32 #define BACKUP_OBJECT_ID 7
33 #define BACKUP_REPARSE_DATA 8
34 #define BACKUP_SPARSE_BLOCK 9
35+#define BACKUP_TXFS_DATA 10
36
37 #define STREAM_NORMAL_ATTRIBUTE 0
38 #define STREAM_MODIFIED_WHEN_READ 1
39 #define STREAM_CONTAINS_SECURITY 2
40 #define STREAM_CONTAINS_PROPERTIES 4
41+#define STREAM_SPARSE_ATTRIBUTE 8
42
43 #define STARTF_USESHOWWINDOW 1
44 #define STARTF_USESIZE 2
45@@ -614,6 +619,9 @@
46 #define STARTF_FORCEOFFFEEDBACK 128
47 #define STARTF_USESTDHANDLES 256
48 #define STARTF_USEHOTKEY 512
49+#define STARTF_TITLEISLINKNAME 0x000800
50+#define STARTF_TITLEISAPPID 0x001000
51+#define STARTF_PREVENTPINNING 0x002000
52
53 #define TC_NORMAL 0
54 #define TC_HARDERR 1
55@@ -637,6 +645,8 @@
56 #define DDD_RAW_TARGET_PATH 1
57 #define DDD_REMOVE_DEFINITION 2
58 #define DDD_EXACT_MATCH_ON_REMOVE 4
59+#define DDD_NO_BROADCAST_SYSTEM 8
60+#define DDD_LUID_BROADCAST_DRIVE 0x10
61
62 #define HINSTANCE_ERROR 32
63
64@@ -698,6 +708,8 @@
65 #define REPLACEFILE_WRITE_THROUGH 0x00000001
66 #define REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002
67
68+#define EVENTLOG_FULL_INFO 0
69+
70 #if (_WIN32_WINNT > 0x0501)
71 /* FIXME: Once again, what does this mean? Should use >= comparator, for
72 * clarity. 0x0501 is WinXP, but does > WinXP mean Server-2003 (0x0502)?
73@@ -723,6 +735,7 @@
74 #define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX 0x00000004
75 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE 0x00000008
76 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS 0x00000010
77+#define QUERY_ACTCTX_FLAG_NO_ADDREF 0x80000000
78
79 #if _WIN32_WINNT >= _WIN32_WINNT_VISTA
80 /* Constants associated with features supported only on Vista and later.
81@@ -742,12 +755,85 @@
82 #define VOLUME_NAME_NONE 0x4
83 #define VOLUME_NAME_NT 0x2
84
85+#define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS 0x1
86+#define FILE_SKIP_SET_EVENT_ON_HANDLE 0x2
87+
88+#define PROCESS_NAME_NATIVE 0x1
89+
90+#define PROC_THREAD_ATTRIBUTE_NUMBER 0x00ffff
91+#define PROC_THREAD_ATTRIBUTE_THREAD 0x010000
92+#define PROC_THREAD_ATTRIBUTE_INPUT 0x020000
93+#define PROC_THREAD_ATTRIBUTE_ADDITIVE 0x040000
94+
95+#define ATOM_FLAG_GLOBAL 0x2
96+
97+#define LOGON32_PROVIDER_VIRTUAL 4
98+
99+#define RESTART_MAX_CMD_LINE 1024
100+
101+#define RESTART_NO_CRASH 1
102+#define RESTART_NO_HANG 2
103+#define RESTART_NO_PATCH 4
104+#define RESTART_NO_REBOOT 8
105+
106+#define RECOVERY_DEFAULT_PING_INTERVAL 5000
107+#define RECOVERY_MAX_PING_INTERVAL (5 *60 *1000)
108+
109 #if _WIN32_WINNT >= _WIN32_WINNT_WIN7
110 /* Constants associated with features supported only on Win7 and later.
111 */
112 #define PROCESS_DEP_ENABLE 1
113 #define PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION 2
114
115+#define BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE 0x1
116+#define BASE_SEARCH_PATH_PERMANENT 0x8000
117+#define BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE 0x10000
118+#define BASE_SEARCH_PATH_INVALID_FLAGS ~0x18001
119+
120+#define REMOTE_PROTOCOL_INFO_FLAG_LOOPBACK 0x00000001
121+#define REMOTE_PROTOCOL_INFO_FLAG_OFFLINE 0x00000002
122+
123+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
124+
125+#define FILE_FLAG_OPEN_REQUIRING_OPLOCK 0x40000
126+
127+#define COPY_FILE_REQUEST_SECURITY_PRIVILEGES 0x2000
128+#define COPY_FILE_RESUME_FROM_PAUSE 0x4000
129+#define COPY_FILE_NO_OFFLOAD 0x40000
130+
131+#define MEMORY_PRIORITY_LOWEST 0
132+#define MEMORY_PRIORITY_VERY_LOW 1
133+#define MEMORY_PRIORITY_LOW 2
134+#define MEMORY_PRIORITY_MEDIUM 3
135+#define MEMORY_PRIORITY_BELOW_NORMAL 4
136+#define MEMORY_PRIORITY_NORMAL 5
137+
138+#define OPERATION_API_VERSION 1
139+#define OPERATION_START_TRACE_CURRENT_THREAD 1
140+#define OPERATION_END_DISCARD 1
141+
142+#define MEHC_PATROL_SCRUBBER_PRESENT 0x1
143+
144+#define STORAGE_INFO_FLAGS_ALIGNED_DEVICE 0x00000001
145+#define STORAGE_INFO_FLAGS_PARTITION_ALIGNED_ON_DEVICE 0x00000002
146+#define STORAGE_INFO_OFFSET_UNKNOWN 0xffffffff
147+
148+#define REMOTE_PROTOCOL_INFO_FLAG_PERSISTENT_HANDLE 0x00000004
149+
150+#define RPI_FLAG_SMB2_SHARECAP_TIMEWARP 0x00000002
151+#define RPI_FLAG_SMB2_SHARECAP_DFS 0x00000008
152+#define RPI_FLAG_SMB2_SHARECAP_CONTINUOUS_AVAILABILITY 0x00000010
153+#define RPI_FLAG_SMB2_SHARECAP_SCALEOUT 0x00000020
154+#define RPI_FLAG_SMB2_SHARECAP_CLUSTER 0x00000040
155+
156+#define RPI_SMB2_FLAG_SERVERCAP_DFS 0x00000001
157+#define RPI_SMB2_FLAG_SERVERCAP_LEASING 0x00000002
158+#define RPI_SMB2_FLAG_SERVERCAP_LARGEMTU 0x00000004
159+#define RPI_SMB2_FLAG_SERVERCAP_MULTICHANNEL 0x00000008
160+#define RPI_SMB2_FLAG_SERVERCAP_PERSISTENT_HANDLES 0x00000010
161+#define RPI_SMB2_FLAG_SERVERCAP_DIRECTORY_LEASING 0x00000020
162+
163+#endif /* Win8 and later */
164 #endif /* Win7 and later */
165 #endif /* WinVista and later */
166 #endif /* WinXP and later */
167@@ -1346,6 +1432,7 @@
168 WINBASEAPI BOOL WINAPI CallNamedPipeW
169 (LPCWSTR, PVOID, DWORD, PVOID, DWORD, PDWORD, DWORD);
170
171+WINBASEAPI BOOL WINAPI RequestDeviceWakeup (HANDLE hDevice);
172 WINBASEAPI BOOL WINAPI CancelDeviceWakeupRequest (HANDLE);
173 WINBASEAPI BOOL WINAPI CancelIo (HANDLE);
174 WINBASEAPI BOOL WINAPI CancelWaitableTimer (HANDLE);
175@@ -1691,6 +1778,8 @@
176
177 WINBASEAPI BOOL WINAPI GetDevicePowerState (HANDLE, BOOL *);
178
179+WINBASEAPI BOOL WINAPI SetMessageWaitingIndicator (HANDLE hMsgIndicator, ULONG ulMsgCount);
180+
181 #define GetDiskFreeSpace __AW_SUFFIXED__(GetDiskFreeSpace)
182 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceA
183 (LPCSTR, PDWORD, PDWORD, PDWORD, PDWORD);
184@@ -2034,6 +2123,7 @@
185 WINBASEAPI BOOL WINAPI IsBadWritePtr (PVOID, UINT);
186 WINBASEAPI BOOL WINAPI IsDebuggerPresent (void);
187 WINBASEAPI BOOL WINAPI IsProcessorFeaturePresent (DWORD);
188+WINBASEAPI BOOL WINAPI RequestWakeupLatency (LATENCY_TIME latency);
189 WINBASEAPI BOOL WINAPI IsSystemResumeAutomatic (void);
190 WINBASEAPI BOOL WINAPI IsTextUnicode (PCVOID, int, LPINT);
191 WINBASEAPI BOOL WINAPI IsValidAcl (PACL);
192@@ -2516,6 +2606,8 @@
193 WINBASEAPI BOOL WINAPI ConvertFiberToThread (void);
194 WINBASEAPI LPVOID WINAPI CreateFiberEx
195 (SIZE_T, SIZE_T, DWORD, LPFIBER_START_ROUTINE, LPVOID);
196+#define FIBER_FLAG_FLOAT_SWITCH 0x1
197+WINBASEAPI LPVOID WINAPI ConvertThreadToFiberEx(LPVOID lpParameter,DWORD dwFlags);
198 #endif /* Win9x, but not WinNT until NT4 */
199
200 #if _WIN32_WINDOWS >= _WIN32_WINDOWS_98 || _WIN32_WINNT >= _WIN32_WINNT_WIN2K
201@@ -2597,6 +2689,7 @@
202 );
203 #define LOGON_WITH_PROFILE 0x00000001
204 #define LOGON_NETCREDENTIALS_ONLY 0x00000002
205+#define LOGON_ZERO_PASSWORD_BUFFER 0x80000000
206
207 WINBASEAPI BOOL WINAPI CreateRestrictedToken
208 ( HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES,
209@@ -2615,6 +2708,10 @@
210 WINBASEAPI BOOL WINAPI DeleteTimerQueueEx (HANDLE, HANDLE);
211 WINBASEAPI BOOL WINAPI DeleteTimerQueueTimer (HANDLE, HANDLE, HANDLE);
212
213+WINBASEAPI HANDLE WINAPI SetTimerQueueTimer (HANDLE TimerQueue, WAITORTIMERCALLBACK Callback, PVOID Parameter, DWORD DueTime, DWORD Period, BOOL PreferIo);
214+WINBASEAPI BOOL WINAPI CancelTimerQueueTimer (HANDLE TimerQueue, HANDLE Timer);
215+WINBASEAPI BOOL WINAPI DeleteTimerQueue (HANDLE TimerQueue);
216+
217 #define DeleteVolumeMountPoint __AW_SUFFIXED__(DeleteVolumeMountPoint)
218 WINBASEAPI BOOL WINAPI DeleteVolumeMountPointA (LPCSTR);
219 WINBASEAPI BOOL WINAPI DeleteVolumeMountPointW (LPCWSTR);
220@@ -2711,6 +2808,12 @@
221 WINBASEAPI BOOL WINAPI MapUserPhysicalPagesScatter
222 (PVOID *, ULONG_PTR, PULONG_PTR);
223
224+typedef struct _EVENTLOG_FULL_INFORMATION {
225+ DWORD dwFull;
226+} EVENTLOG_FULL_INFORMATION,*LPEVENTLOG_FULL_INFORMATION;
227+
228+WINADVAPI BOOL WINAPI GetEventLogInformation (HANDLE hEventLog, DWORD dwInfoLevel, LPVOID lpBuffer, DWORD cbBufSize, LPDWORD pcbBytesNeeded);
229+
230 #if _WIN32_WINNT >= _WIN32_WINNT_WINXP
231 /* New features, implemented for WinXP; not available in Win9x.
232 */
233@@ -2845,6 +2948,29 @@
234
235 WINBASEAPI BOOL WINAPI ZombifyActCtx (HANDLE);
236
237+#define OpenEncryptedFileRaw __AW_SUFFIXED__(OpenEncryptedFileRaw)
238+WINADVAPI DWORD WINAPI OpenEncryptedFileRawA (LPCSTR lpFileName, ULONG ulFlags, PVOID *pvContext);
239+WINADVAPI DWORD WINAPI OpenEncryptedFileRawW (LPCWSTR lpFileName, ULONG ulFlags, PVOID *pvContext);
240+
241+typedef DWORD (WINAPI *PFE_EXPORT_FUNC) (PBYTE pbData, PVOID pvCallbackContext, ULONG ulLength);
242+typedef DWORD (WINAPI *PFE_IMPORT_FUNC) (PBYTE pbData, PVOID pvCallbackContext, PULONG ulLength);
243+WINADVAPI DWORD WINAPI ReadEncryptedFileRaw (PFE_EXPORT_FUNC pfExportCallback, PVOID pvCallbackContext, PVOID pvContext);
244+WINADVAPI DWORD WINAPI WriteEncryptedFileRaw (PFE_IMPORT_FUNC pfImportCallback, PVOID pvCallbackContext, PVOID pvContext);
245+WINADVAPI VOID WINAPI CloseEncryptedFileRaw (PVOID pvContext);
246+
247+/* TODO: requires includes for AUDIT_EVENT_TYPE and POBJECT_TYPE_LIST
248+WINADVAPI BOOL WINAPI AccessCheckByTypeAndAuditAlarmA (LPCSTR SubsystemName, LPVOID HandleId, LPCSTR ObjectTypeName, LPCSTR ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, PSID PrincipalSelfSid, DWORD DesiredAccess, AUDIT_EVENT_TYPE AuditType, DWORD Flags, POBJECT_TYPE_LIST ObjectTypeList, DWORD ObjectTypeListLength, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPBOOL AccessStatus, LPBOOL pfGenerateOnClose);
249+WINADVAPI BOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmA (LPCSTR SubsystemName, LPVOID HandleId, LPCSTR ObjectTypeName, LPCSTR ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, PSID PrincipalSelfSid, DWORD DesiredAccess, AUDIT_EVENT_TYPE AuditType, DWORD Flags, POBJECT_TYPE_LIST ObjectTypeList, DWORD ObjectTypeListLength, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPDWORD AccessStatusList, LPBOOL pfGenerateOnClose);
250+WINADVAPI BOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmByHandleA (LPCSTR SubsystemName, LPVOID HandleId, HANDLE ClientToken, LPCSTR ObjectTypeName, LPCSTR ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, PSID PrincipalSelfSid, DWORD DesiredAccess, AUDIT_EVENT_TYPE AuditType, DWORD Flags, POBJECT_TYPE_LIST ObjectTypeList, DWORD ObjectTypeListLength, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPDWORD AccessStatusList, LPBOOL pfGenerateOnClose);
251+ */
252+
253+#define LogonUserEx __AW_SUFFIXED__(LogonUserEx)
254+WINADVAPI BOOL WINAPI LogonUserExA (LPCSTR lpszUsername, LPCSTR lpszDomain, LPCSTR lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken, PSID *ppLogonSid, PVOID *ppProfileBuffer, LPDWORD pdwProfileLength, PQUOTA_LIMITS pQuotaLimits);
255+WINADVAPI BOOL WINAPI LogonUserExW (LPCWSTR lpszUsername, LPCWSTR lpszDomain, LPCWSTR lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken, PSID *ppLogonSid, PVOID *ppProfileBuffer, LPDWORD pdwProfileLength, PQUOTA_LIMITS pQuotaLimits);
256+
257+WINADVAPI BOOL WINAPI IsTokenUntrusted (HANDLE TokenHandle);
258+WINBASEAPI BOOL WINAPI BindIoCompletionCallback (HANDLE FileHandle, LPOVERLAPPED_COMPLETION_ROUTINE Function, ULONG Flags);
259+
260 #if _WIN32_WINNT >= _WIN32_WINNT_WS03
261 /* Further added features, which became available on the WinNT platform
262 * from Windows Server-2003; these were never made available in Win9x.
263@@ -2902,6 +3023,21 @@
264 WCHAR FileName[1];
265 } FILE_NAME_INFO, *PFILE_NAME_INFO, *LPFILE_NAME_INFO;
266
267+typedef struct _FILE_RENAME_INFO {
268+ BOOLEAN ReplaceIfExists;
269+ HANDLE RootDirectory;
270+ DWORD FileNameLength;
271+ WCHAR FileName[1];
272+} FILE_RENAME_INFO,*PFILE_RENAME_INFO;
273+
274+typedef struct _FILE_ALLOCATION_INFO {
275+ LARGE_INTEGER AllocationSize;
276+} FILE_ALLOCATION_INFO,*PFILE_ALLOCATION_INFO;
277+
278+typedef struct _FILE_END_OF_FILE_INFO {
279+ LARGE_INTEGER EndOfFile;
280+} FILE_END_OF_FILE_INFO,*PFILE_END_OF_FILE_INFO;
281+
282 typedef struct _FILE_STREAM_INFO
283 /* http://msdn.microsoft.com/en-us/library/aa364406%28v=VS.85%29.aspx */
284 { DWORD NextEntryOffset;
285@@ -2927,6 +3063,10 @@
286 DWORD ReparseTag;
287 } FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO, *LPFILE_ATTRIBUTE_TAG_INFO;
288
289+typedef struct _FILE_DISPOSITION_INFO {
290+ BOOLEAN DeleteFile;
291+} FILE_DISPOSITION_INFO,*PFILE_DISPOSITION_INFO;
292+
293 typedef struct _FILE_ID_BOTH_DIR_INFO
294 /* http://msdn.microsoft.com/en-us/library/aa364226%28v=VS.85%29.aspx */
295 { DWORD NextEntryOffset;
296@@ -2946,6 +3086,32 @@
297 WCHAR FileName[1];
298 } FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO, *LPFILE_ID_BOTH_DIR_INFO;
299
300+typedef struct _FILE_FULL_DIR_INFO {
301+ ULONG NextEntryOffset;
302+ ULONG FileIndex;
303+ LARGE_INTEGER CreationTime;
304+ LARGE_INTEGER LastAccessTime;
305+ LARGE_INTEGER LastWriteTime;
306+ LARGE_INTEGER ChangeTime;
307+ LARGE_INTEGER EndOfFile;
308+ LARGE_INTEGER AllocationSize;
309+ ULONG FileAttributes;
310+ ULONG FileNameLength;
311+ ULONG EaSize;
312+ WCHAR FileName[1];
313+} FILE_FULL_DIR_INFO,*PFILE_FULL_DIR_INFO;
314+
315+typedef enum _PRIORITY_HINT {
316+ IoPriorityHintVeryLow = 0,
317+ IoPriorityHintLow,
318+ IoPriorityHintNormal,
319+ MaximumIoPriorityHintType
320+} PRIORITY_HINT;
321+
322+typedef struct _FILE_IO_PRIORITY_HINT_INFO {
323+ PRIORITY_HINT PriorityHint;
324+} FILE_IO_PRIORITY_HINT_INFO,*PFILE_IO_PRIORITY_HINT_INFO;
325+
326 typedef struct _FILE_REMOTE_PROTOCOL_INFO
327 /* http://msdn.microsoft.com/en-us/library/dd979524%28v=VS.85%29.aspx */
328 { USHORT StructureVersion;
329@@ -2959,9 +3125,24 @@
330 struct
331 { ULONG Reserved[8];
332 } GenericReserved;
333+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
334+ union {
335+ struct {
336+ struct {
337+ ULONG Capabilities;
338+ } Server;
339+ struct {
340+ ULONG Capabilities;
341+ ULONG CachingFlags;
342+ } Share;
343+ } Smb2;
344+ ULONG Reserved[16];
345+ } ProtocolSpecific;
346+#else
347 struct
348 { ULONG Reserved[16];
349 } ProtocolSpecificReserved;
350+#endif
351 } FILE_REMOTE_PROTOCOL_INFO, *PFILE_REMOTE_PROTOCOL_INFO, *LPFILE_REMOTE_PROTOCOL_INFO;
352
353 typedef enum _DEP_SYSTEM_POLICY_TYPE
354@@ -2994,6 +3175,10 @@
355 WINBASEAPI BOOL WINAPI CreateSymbolicLinkA (LPCSTR, LPCSTR, DWORD);
356 WINBASEAPI BOOL WINAPI CreateSymbolicLinkW (LPCWSTR, LPCWSTR, DWORD);
357
358+#define CreateSymbolicLinkTransacted __AW_SUFFIXED__(CreateSymbolicLinkTransacted)
359+WINBASEAPI BOOLEAN APIENTRY CreateSymbolicLinkTransactedA (LPCSTR lpSymlinkFileName, LPCSTR lpTargetFileName, DWORD dwFlags, HANDLE hTransaction);
360+WINBASEAPI BOOLEAN APIENTRY CreateSymbolicLinkTransactedW (LPCWSTR lpSymlinkFileName, LPCWSTR lpTargetFileName, DWORD dwFlags, HANDLE hTransaction);
361+
362 /* http://msdn.microsoft.com/en-us/library/aa364953%28VS.85%29.aspx */
363 WINBASEAPI BOOL WINAPI GetFileInformationByHandleEx
364 (HANDLE, FILE_INFO_BY_HANDLE_CLASS, LPVOID, DWORD);
365@@ -3029,6 +3214,200 @@
366 void WINAPI WakeAllConditionVariable (PCONDITION_VARIABLE);
367 void WINAPI WakeConditionVariable (PCONDITION_VARIABLE);
368
369+WINBASEAPI LPVOID WINAPI VirtualAllocExNuma (HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect, DWORD nndPreferred);
370+
371+#define GetLongPathNameTransacted __AW_SUFFIXED__(GetLongPathNameTransacted)
372+WINBASEAPI DWORD WINAPI GetLongPathNameTransactedA (LPCSTR lpszShortPath, LPSTR lpszLongPath, DWORD cchBuffer, HANDLE hTransaction);
373+WINBASEAPI DWORD WINAPI GetLongPathNameTransactedW (LPCWSTR lpszShortPath, LPWSTR lpszLongPath, DWORD cchBuffer, HANDLE hTransaction);
374+
375+WINBASEAPI BOOL WINAPI SetFileCompletionNotificationModes (HANDLE FileHandle, UCHAR Flags);
376+WINBASEAPI BOOL WINAPI SetFileIoOverlappedRange (HANDLE FileHandle, PUCHAR OverlappedRangeStart, ULONG Length);
377+
378+/* PWOW64_CONTEXT type not defined in MinGW32
379+WINBASEAPI BOOL WINAPI Wow64GetThreadContext (HANDLE hThread, PWOW64_CONTEXT lpContext);
380+WINBASEAPI BOOL WINAPI Wow64SetThreadContext (HANDLE hThread, CONST WOW64_CONTEXT *lpContext);
381+ */
382+
383+WINBASEAPI DWORD WINAPI Wow64SuspendThread (HANDLE hThread);
384+
385+/* LPPROC_THREAD_ATTRIBUTE_LIST not defined
386+typedef struct _STARTUPINFOEXA {
387+ STARTUPINFOA StartupInfo;
388+ LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
389+} STARTUPINFOEXA,*LPSTARTUPINFOEXA;
390+
391+typedef struct _STARTUPINFOEXW {
392+ STARTUPINFOW StartupInfo;
393+ LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
394+} STARTUPINFOEXW,*LPSTARTUPINFOEXW;
395+
396+typedef __AW_ALIAS__(STARTUPINFOEX), *LPSTARTUPINFOEX;
397+ */
398+
399+#define CreateSemaphoreEx __AW_SUFFIXED__(CreateSemaphoreEx)
400+WINBASEAPI HANDLE WINAPI CreateSemaphoreExA (LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCSTR lpName, DWORD dwFlags, DWORD dwDesiredAccess);
401+WINBASEAPI HANDLE WINAPI CreateSemaphoreExW (LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCWSTR lpName, DWORD dwFlags, DWORD dwDesiredAccess);
402+
403+#define CreateWaitableTimerEx __AW_SUFFIXED__(CreateWaitableTimerEx)
404+WINBASEAPI HANDLE WINAPI CreateWaitableTimerExA (LPSECURITY_ATTRIBUTES lpTimerAttributes, LPCSTR lpTimerName, DWORD dwFlags, DWORD dwDesiredAccess);
405+WINBASEAPI HANDLE WINAPI CreateWaitableTimerExW (LPSECURITY_ATTRIBUTES lpTimerAttributes, LPCWSTR lpTimerName, DWORD dwFlags, DWORD dwDesiredAccess);
406+
407+#define CreateFileMappingNuma __AW_SUFFIXED__(CreateFileMappingNuma)
408+WINBASEAPI HANDLE WINAPI CreateFileMappingNumaA (HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCSTR lpName, DWORD nndPreferred);
409+WINBASEAPI HANDLE WINAPI CreateFileMappingNumaW (HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCWSTR lpName, DWORD nndPreferred);
410+
411+#define QueryFullProcessImageName __AW_SUFFIXED__(QueryFullProcessImageName)
412+WINBASEAPI BOOL WINAPI QueryFullProcessImageNameA (HANDLE hProcess, DWORD dwFlags, LPSTR lpExeName, PDWORD lpdwSize);
413+WINBASEAPI BOOL WINAPI QueryFullProcessImageNameW (HANDLE hProcess, DWORD dwFlags, LPWSTR lpExeName, PDWORD lpdwSize);
414+
415+#ifndef _USE_FULL_PROC_THREAD_ATTRIBUTE
416+ typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
417+ ProcThreadAttributeParentProcess = 0,
418+ ProcThreadAttributeHandleList = 2
419+#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
420+ ,ProcThreadAttributeGroupAffinity = 3,
421+ ProcThreadAttributePreferredNode = 4,
422+ ProcThreadAttributeIdealProcessor = 5,
423+ ProcThreadAttributeUmsThread = 6,
424+ ProcThreadAttributeMitigationPolicy = 7
425+#endif
426+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
427+ ,ProcThreadAttributeSecurityCapabilities = 9
428+#endif
429+ } PROC_THREAD_ATTRIBUTE_NUM;
430+#endif
431+
432+WINBASEAPI BOOLEAN WINAPI Wow64EnableWow64FsRedirection (BOOLEAN Wow64FsEnableRedirection);
433+
434+#define CreateDirectoryTransacted __AW_SUFFIXED__(CreateDirectoryTransacted)
435+WINBASEAPI BOOL WINAPI CreateDirectoryTransactedA (LPCSTR lpTemplateDirectory, LPCSTR lpNewDirectory, LPSECURITY_ATTRIBUTES lpSecurityAttributes, HANDLE hTransaction);
436+WINBASEAPI BOOL WINAPI CreateDirectoryTransactedW (LPCWSTR lpTemplateDirectory, LPCWSTR lpNewDirectory, LPSECURITY_ATTRIBUTES lpSecurityAttributes, HANDLE hTransaction);
437+
438+#define RemoveDirectoryTransacted __AW_SUFFIXED__(RemoveDirectoryTransacted)
439+WINBASEAPI BOOL WINAPI RemoveDirectoryTransactedA (LPCSTR lpPathName, HANDLE hTransaction);
440+WINBASEAPI BOOL WINAPI RemoveDirectoryTransactedW (LPCWSTR lpPathName, HANDLE hTransaction);
441+
442+#define GetFullPathNameTransacted __AW_SUFFIXED__(GetFullPathNameTransacted)
443+WINBASEAPI DWORD WINAPI GetFullPathNameTransactedA (LPCSTR lpFileName, DWORD nBufferLength, LPSTR lpBuffer, LPSTR *lpFilePart, HANDLE hTransaction);
444+WINBASEAPI DWORD WINAPI GetFullPathNameTransactedW (LPCWSTR lpFileName, DWORD nBufferLength, LPWSTR lpBuffer, LPWSTR *lpFilePart, HANDLE hTransaction);
445+
446+#define CreateFileTransacted __AW_SUFFIXED__(CreateFileTransacted)
447+WINBASEAPI HANDLE WINAPI CreateFileTransactedA (LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile, HANDLE hTransaction, PUSHORT pusMiniVersion, PVOID lpExtendedParameter);
448+WINBASEAPI HANDLE WINAPI CreateFileTransactedW (LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile, HANDLE hTransaction, PUSHORT pusMiniVersion, PVOID lpExtendedParameter);
449+
450+#define SetFileAttributesTransacted __AW_SUFFIXED__(SetFileAttributesTransacted)
451+WINBASEAPI BOOL WINAPI SetFileAttributesTransactedA (LPCSTR lpFileName, DWORD dwFileAttributes, HANDLE hTransaction);
452+WINBASEAPI BOOL WINAPI SetFileAttributesTransactedW (LPCWSTR lpFileName, DWORD dwFileAttributes, HANDLE hTransaction);
453+
454+#define GetFileAttributesTransacted __AW_SUFFIXED__(GetFileAttributesTransacted)
455+WINBASEAPI BOOL WINAPI GetFileAttributesTransactedA (LPCSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation, HANDLE hTransaction);
456+WINBASEAPI BOOL WINAPI GetFileAttributesTransactedW (LPCWSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation, HANDLE hTransaction);
457+
458+#define GetCompressedFileSizeTransacted __AW_SUFFIXED__(GetCompressedFileSizeTransacted)
459+WINBASEAPI DWORD WINAPI GetCompressedFileSizeTransactedA (LPCSTR lpFileName, LPDWORD lpFileSizeHigh, HANDLE hTransaction);
460+WINBASEAPI DWORD WINAPI GetCompressedFileSizeTransactedW (LPCWSTR lpFileName, LPDWORD lpFileSizeHigh, HANDLE hTransaction);
461+
462+#define DeleteFileTransacted __AW_SUFFIXED__(DeleteFileTransacted)
463+WINBASEAPI BOOL WINAPI DeleteFileTransactedA (LPCSTR lpFileName, HANDLE hTransaction);
464+WINBASEAPI BOOL WINAPI DeleteFileTransactedW (LPCWSTR lpFileName, HANDLE hTransaction);
465+
466+#define FindFirstFileTransacted __AW_SUFFIXED__(FindFirstFileTransacted)
467+WINBASEAPI HANDLE WINAPI FindFirstFileTransactedA (LPCSTR lpFileName, FINDEX_INFO_LEVELS fInfoLevelId, LPVOID lpFindFileData, FINDEX_SEARCH_OPS fSearchOp, LPVOID lpSearchFilter, DWORD dwAdditionalFlags, HANDLE hTransaction);
468+WINBASEAPI HANDLE WINAPI FindFirstFileTransactedW (LPCWSTR lpFileName, FINDEX_INFO_LEVELS fInfoLevelId, LPVOID lpFindFileData, FINDEX_SEARCH_OPS fSearchOp, LPVOID lpSearchFilter, DWORD dwAdditionalFlags, HANDLE hTransaction);
469+
470+#define CopyFileTransacted __AW_SUFFIXED__(CopyFileTransacted)
471+WINBASEAPI BOOL WINAPI CopyFileTransactedA (LPCSTR lpExistingFileName, LPCSTR lpNewFileName, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, LPBOOL pbCancel, DWORD dwCopyFlags, HANDLE hTransaction);
472+WINBASEAPI BOOL WINAPI CopyFileTransactedW (LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, LPBOOL pbCancel, DWORD dwCopyFlags, HANDLE hTransaction);
473+
474+#define MoveFileTransacted __AW_SUFFIXED__(MoveFileTransacted)
475+WINBASEAPI BOOL WINAPI MoveFileTransactedA (LPCSTR lpExistingFileName, LPCSTR lpNewFileName, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, DWORD dwFlags, HANDLE hTransaction);
476+WINBASEAPI BOOL WINAPI MoveFileTransactedW (LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, DWORD dwFlags, HANDLE hTransaction);
477+
478+#define CreateHardLinkTransacted __AW_SUFFIXED__(CreateHardLinkTransacted)
479+WINBASEAPI BOOL WINAPI CreateHardLinkTransactedA (LPCSTR lpFileName, LPCSTR lpExistingFileName, LPSECURITY_ATTRIBUTES lpSecurityAttributes, HANDLE hTransaction);
480+WINBASEAPI BOOL WINAPI CreateHardLinkTransactedW (LPCWSTR lpFileName, LPCWSTR lpExistingFileName, LPSECURITY_ATTRIBUTES lpSecurityAttributes, HANDLE hTransaction);
481+
482+typedef enum _STREAM_INFO_LEVELS {
483+ FindStreamInfoStandard,
484+ FindStreamInfoMaxInfoLevel
485+} STREAM_INFO_LEVELS;
486+
487+typedef struct _WIN32_FIND_STREAM_DATA {
488+ LARGE_INTEGER StreamSize;
489+ WCHAR cStreamName[MAX_PATH + 36];
490+} WIN32_FIND_STREAM_DATA,*PWIN32_FIND_STREAM_DATA;
491+
492+WINBASEAPI HANDLE WINAPI FindFirstStreamW (LPCWSTR lpFileName, STREAM_INFO_LEVELS InfoLevel, LPVOID lpFindStreamData, DWORD dwFlags);
493+WINBASEAPI BOOL APIENTRY FindNextStreamW (HANDLE hFindStream, LPVOID lpFindStreamData);
494+WINBASEAPI HANDLE WINAPI FindFirstStreamTransactedW (LPCWSTR lpFileName, STREAM_INFO_LEVELS InfoLevel, LPVOID lpFindStreamData, DWORD dwFlags, HANDLE hTransaction);
495+WINBASEAPI HANDLE WINAPI FindFirstFileNameW (LPCWSTR lpFileName, DWORD dwFlags, LPDWORD StringLength, PWSTR LinkName);
496+WINBASEAPI BOOL APIENTRY FindNextFileNameW (HANDLE hFindStream, LPDWORD StringLength, PWSTR LinkName);
497+WINBASEAPI HANDLE WINAPI FindFirstFileNameTransactedW (LPCWSTR lpFileName, DWORD dwFlags, LPDWORD StringLength, PWSTR LinkName, HANDLE hTransaction);
498+WINBASEAPI BOOL WINAPI GetNamedPipeClientComputerNameA (HANDLE Pipe, LPSTR ClientComputerName, ULONG ClientComputerNameLength);
499+WINBASEAPI BOOL WINAPI GetNamedPipeClientProcessId (HANDLE Pipe, PULONG ClientProcessId);
500+WINBASEAPI BOOL WINAPI GetNamedPipeClientSessionId (HANDLE Pipe, PULONG ClientSessionId);
501+WINBASEAPI BOOL WINAPI GetNamedPipeServerProcessId (HANDLE Pipe, PULONG ServerProcessId);
502+WINBASEAPI BOOL WINAPI GetNamedPipeServerSessionId (HANDLE Pipe, PULONG ServerSessionId);
503+WINBASEAPI BOOL WINAPI SetFileBandwidthReservation (HANDLE hFile, DWORD nPeriodMilliseconds, DWORD nBytesPerPeriod, BOOL bDiscardable, LPDWORD lpTransferSize, LPDWORD lpNumOutstandingRequests);
504+WINBASEAPI BOOL WINAPI GetFileBandwidthReservation (HANDLE hFile, LPDWORD lpPeriodMilliseconds, LPDWORD lpBytesPerPeriod, LPBOOL pDiscardable, LPDWORD lpTransferSize, LPDWORD lpNumOutstandingRequests);
505+
506+WINBASEAPI LPVOID WINAPI MapViewOfFileExNuma (HANDLE hFileMappingObject, DWORD dwDesiredAccess, DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, SIZE_T dwNumberOfBytesToMap, LPVOID lpBaseAddress, DWORD nndPreferred);
507+
508+WINADVAPI BOOL WINAPI CreateProcessWithTokenW (HANDLE hToken, DWORD dwLogonFlags, LPCWSTR lpApplicationName, LPWSTR lpCommandLine, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation);
509+
510+WINBASEAPI HANDLE WINAPI CreatePrivateNamespaceA (LPSECURITY_ATTRIBUTES lpPrivateNamespaceAttributes, LPVOID lpBoundaryDescriptor, LPCSTR lpAliasPrefix);
511+WINBASEAPI HANDLE WINAPI OpenPrivateNamespaceA (LPVOID lpBoundaryDescriptor, LPCSTR lpAliasPrefix);
512+WINBASEAPI HANDLE APIENTRY CreateBoundaryDescriptorA (LPCSTR Name, ULONG Flags);
513+WINBASEAPI BOOL WINAPI AddIntegrityLabelToBoundaryDescriptor (HANDLE *BoundaryDescriptor, PSID IntegrityLabel);
514+
515+WINBASEAPI BOOL WINAPI AllocateUserPhysicalPagesNuma (HANDLE hProcess, PULONG_PTR NumberOfPages, PULONG_PTR PageArray, DWORD nndPreferred);
516+
517+WINBASEAPI DWORD WINAPI WTSGetActiveConsoleSessionId (VOID);
518+
519+WINBASEAPI BOOL WINAPI GetNumaProcessorNode (UCHAR Processor, PUCHAR NodeNumber);
520+WINBASEAPI BOOL WINAPI GetNumaNodeProcessorMask (UCHAR Node, PULONGLONG ProcessorMask);
521+WINBASEAPI BOOL WINAPI GetNumaAvailableMemoryNode (UCHAR Node, PULONGLONG AvailableBytes);
522+WINBASEAPI BOOL WINAPI GetNumaProximityNode (ULONG ProximityId, PUCHAR NodeNumber);
523+
524+typedef DWORD (WINAPI *APPLICATION_RECOVERY_CALLBACK) (PVOID pvParameter);
525+
526+WINBASEAPI HRESULT WINAPI RegisterApplicationRecoveryCallback (APPLICATION_RECOVERY_CALLBACK pRecoveyCallback, PVOID pvParameter, DWORD dwPingInterval, DWORD dwFlags);
527+WINBASEAPI HRESULT WINAPI UnregisterApplicationRecoveryCallback (void);
528+WINBASEAPI HRESULT WINAPI RegisterApplicationRestart (PCWSTR pwzCommandline, DWORD dwFlags);
529+WINBASEAPI HRESULT WINAPI UnregisterApplicationRestart (void);
530+WINBASEAPI HRESULT WINAPI GetApplicationRecoveryCallback (HANDLE hProcess, APPLICATION_RECOVERY_CALLBACK *pRecoveryCallback, PVOID *ppvParameter, PDWORD pdwPingInterval, PDWORD pdwFlags);
531+WINBASEAPI HRESULT WINAPI GetApplicationRestartSettings (HANDLE hProcess, PWSTR pwzCommandline, PDWORD pcchSize, PDWORD pdwFlags);
532+WINBASEAPI HRESULT WINAPI ApplicationRecoveryInProgress (PBOOL pbCancelled);
533+WINBASEAPI VOID WINAPI ApplicationRecoveryFinished (BOOL bSuccess);
534+
535+typedef enum _FILE_ID_TYPE {
536+ FileIdType,
537+ ObjectIdType,
538+ ExtendedFileIdType,
539+ MaximumFileIdType
540+} FILE_ID_TYPE,*PFILE_ID_TYPE;
541+
542+typedef struct FILE_ID_DESCRIPTOR {
543+ DWORD dwSize;
544+ FILE_ID_TYPE Type;
545+ __GNUC_EXTENSION union {
546+ LARGE_INTEGER FileId;
547+ GUID ObjectId;
548+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
549+ FILE_ID_128 ExtendedFileId;
550+#endif
551+ };
552+} FILE_ID_DESCRIPTOR,*LPFILE_ID_DESCRIPTOR;
553+
554+WINBASEAPI HANDLE WINAPI OpenFileById (HANDLE hVolumeHint, LPFILE_ID_DESCRIPTOR lpFileId, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwFlagsAndAttributes);
555+
556+WINBASEAPI BOOL WINAPI QueryActCtxSettingsW (DWORD dwFlags, HANDLE hActCtx, PCWSTR settingsNameSpace, PCWSTR settingName, PWSTR pvBuffer, SIZE_T dwBuffer, SIZE_T *pdwWrittenOrRequired);
557+WINBASEAPI BOOL WINAPI ReplacePartitionUnit (PWSTR TargetPartition, PWSTR SparePartition, ULONG Flags);
558+/* PSECURE_MEMORY_CACHE_CALLBACK not defined
559+WINBASEAPI BOOL WINAPI AddSecureMemoryCacheCallback (PSECURE_MEMORY_CACHE_CALLBACK pfnCallBack);
560+WINBASEAPI BOOL WINAPI RemoveSecureMemoryCacheCallback (PSECURE_MEMORY_CACHE_CALLBACK pfnCallBack);
561+ */
562+
563 #if _WIN32_WINNT >= _WIN32_WINNT_WIN7
564 /* Additional features, available only on the WinNT series platforms, from
565 * the release of Windows-7 onwards.
566@@ -3042,6 +3417,161 @@
567 BOOLEAN WINAPI TryAcquireSRWLockExclusive (PSRWLOCK);
568 BOOLEAN WINAPI TryAcquireSRWLockShared (PSRWLOCK);
569
570+/* PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION not defined
571+WINBASEAPI BOOL WINAPI GetProcessorSystemCycleTime (USHORT Group, PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION Buffer, PDWORD ReturnedLength);
572+ */
573+WINBASEAPI BOOL WINAPI GetPhysicallyInstalledSystemMemory (PULONGLONG TotalMemoryInKilobytes);
574+
575+/* REASON_CONTEXT type not defined in MinGW32
576+typedef REASON_CONTEXT POWER_REQUEST_CONTEXT,*PPOWER_REQUEST_CONTEXT,*LPPOWER_REQUEST_CONTEXT;
577+
578+WINBASEAPI HANDLE WINAPI PowerCreateRequest (PREASON_CONTEXT Context);
579+WINBASEAPI BOOL WINAPI PowerSetRequest (HANDLE PowerRequest, POWER_REQUEST_TYPE RequestType);
580+WINBASEAPI BOOL WINAPI PowerClearRequest (HANDLE PowerRequest, POWER_REQUEST_TYPE RequestType);
581+ */
582+
583+WINBASEAPI DWORD WINAPI GetThreadErrorMode (VOID);
584+WINBASEAPI BOOL WINAPI SetThreadErrorMode (DWORD dwNewMode, LPDWORD lpOldMode);
585+
586+/* PWOW64_LDT_ENTRY type not defined in MinGW32
587+WINBASEAPI BOOL WINAPI Wow64GetThreadSelectorEntry (HANDLE hThread, DWORD dwSelector, PWOW64_LDT_ENTRY lpSelectorEntry);
588+ */
589+
590+WINBASEAPI BOOL WINAPI SetSearchPathMode (DWORD Flags);
591+
592+WINADVAPI BOOL WINAPI AddConditionalAce (PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, UCHAR AceType, DWORD AccessMask, PSID pSid, PWCHAR ConditionStr, DWORD *ReturnLength);
593+
594+#define LookupAccountNameLocal __AW_SUFFIXED__(LookupAccountNameLocal)
595+WINADVAPI BOOL WINAPI LookupAccountNameLocalA (LPCSTR lpAccountName, PSID Sid, LPDWORD cbSid, LPSTR ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse);
596+WINADVAPI BOOL WINAPI LookupAccountNameLocalW (LPCWSTR lpAccountName, PSID Sid, LPDWORD cbSid, LPWSTR ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse);
597+
598+#define LookupAccountSidLocal __AW_SUFFIXED__(LookupAccountSidLocal)
599+WINADVAPI BOOL WINAPI LookupAccountSidLocalA (PSID Sid, LPSTR Name, LPDWORD cchName, LPSTR ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse);
600+WINADVAPI BOOL WINAPI LookupAccountSidLocalW (PSID Sid, LPWSTR Name, LPDWORD cchName, LPWSTR ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse);
601+
602+WINBASEAPI WORD WINAPI GetActiveProcessorGroupCount (VOID);
603+WINBASEAPI WORD WINAPI GetMaximumProcessorGroupCount (VOID);
604+WINBASEAPI DWORD WINAPI GetActiveProcessorCount (WORD GroupNumber);
605+WINBASEAPI DWORD WINAPI GetMaximumProcessorCount (WORD GroupNumber);
606+WINBASEAPI BOOL WINAPI GetNumaNodeNumberFromHandle (HANDLE hFile, PUSHORT NodeNumber);
607+/* PPROCESSOR_NUMBER not defined
608+WINBASEAPI BOOL WINAPI GetNumaProcessorNodeEx (PPROCESSOR_NUMBER Processor, PUSHORT NodeNumber);
609+ */
610+WINBASEAPI BOOL WINAPI GetNumaAvailableMemoryNodeEx (USHORT Node, PULONGLONG AvailableBytes);
611+WINBASEAPI BOOL WINAPI GetNumaProximityNodeEx (ULONG ProximityId, PUSHORT NodeNumber);
612+
613+WINBASEAPI BOOL WINAPI CopyContext (PCONTEXT Destination, DWORD ContextFlags, PCONTEXT Source);
614+WINBASEAPI BOOL WINAPI InitializeContext (PVOID Buffer, DWORD ContextFlags, PCONTEXT *Context, PDWORD ContextLength);
615+
616+#if defined (__x86_64__) || defined (__i386__)
617+WINBASEAPI DWORD64 WINAPI GetEnabledXStateFeatures (VOID);
618+WINBASEAPI BOOL WINAPI GetXStateFeaturesMask (PCONTEXT Context, PDWORD64 FeatureMask);
619+WINBASEAPI PVOID WINAPI LocateXStateFeature (PCONTEXT Context, DWORD FeatureId, PDWORD Length);
620+WINBASEAPI BOOL WINAPI SetXStateFeaturesMask (PCONTEXT Context, DWORD64 FeatureMask);
621+#endif
622+
623+WINBASEAPI DWORD APIENTRY EnableThreadProfiling (HANDLE ThreadHandle, DWORD Flags, DWORD64 HardwareCounters, HANDLE *PerformanceDataHandle);
624+WINBASEAPI DWORD APIENTRY DisableThreadProfiling (HANDLE PerformanceDataHandle);
625+WINBASEAPI DWORD APIENTRY QueryThreadProfiling (HANDLE ThreadHandle, PBOOLEAN Enabled);
626+/* PPERFORMANCE_DATA not defined
627+WINBASEAPI DWORD APIENTRY ReadThreadProfilingData (HANDLE PerformanceDataHandle, DWORD Flags, PPERFORMANCE_DATA PerformanceData);
628+ */
629+
630+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
631+
632+typedef enum _THREAD_INFORMATION_CLASS {
633+ ThreadMemoryPriority,
634+ ThreadAbsoluteCpuPriority,
635+ ThreadInformationClassMax
636+} THREAD_INFORMATION_CLASS;
637+
638+typedef enum _PROCESS_INFORMATION_CLASS {
639+ ProcessMemoryPriority,
640+ ProcessInformationClassMax
641+} PROCESS_INFORMATION_CLASS;
642+
643+
644+WINBASEAPI BOOL WINAPI GetThreadInformation (HANDLE hThread, THREAD_INFORMATION_CLASS ThreadInformationClass, LPVOID ThreadInformation, DWORD ThreadInformationSize);
645+WINBASEAPI BOOL WINAPI SetThreadInformation (HANDLE hThread, THREAD_INFORMATION_CLASS ThreadInformationClass, LPVOID ThreadInformation, DWORD ThreadInformationSize);
646+WINBASEAPI BOOL WINAPI GetProcessInformation (HANDLE hProcess, PROCESS_INFORMATION_CLASS ProcessInformationClass, LPVOID ProcessInformation, DWORD ProcesInformationSize);
647+WINBASEAPI BOOL WINAPI SetProcessInformation (HANDLE hProcess, PROCESS_INFORMATION_CLASS ProcessInformationClass, LPVOID ProcessInformation, DWORD ProcesInformationSize);
648+
649+typedef struct _MEMORY_PRIORITY_INFORMATION {
650+ ULONG MemoryPriority;
651+} MEMORY_PRIORITY_INFORMATION,*PMEMORY_PRIORITY_INFORMATION;
652+
653+#define GetFirmwareEnvironmentVariableEx __AW_SUFFIXED__(GetFirmwareEnvironmentVariableEx)
654+WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableExA (LPCSTR lpName, LPCSTR lpGuid, PVOID pBuffer, DWORD nSize, PDWORD pdwAttribubutes);
655+WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableExW (LPCWSTR lpName, LPCWSTR lpGuid, PVOID pBuffer, DWORD nSize, PDWORD pdwAttribubutes);
656+
657+#define SetFirmwareEnvironmentVariableEx __AW_SUFFIXED__(SetFirmwareEnvironmentVariableEx)
658+WINBASEAPI BOOL WINAPI SetFirmwareEnvironmentVariableExA (LPCSTR lpName, LPCSTR lpGuid, PVOID pValue, DWORD nSize, DWORD dwAttributes);
659+WINBASEAPI BOOL WINAPI SetFirmwareEnvironmentVariableExW (LPCWSTR lpName, LPCWSTR lpGuid, PVOID pValue, DWORD nSize, DWORD dwAttributes);
660+
661+WINBASEAPI BOOL WINAPI GetFirmwareType (PFIRMWARE_TYPE FirmwareType);
662+WINBASEAPI BOOL WINAPI IsNativeVhdBoot (PBOOL NativeVhdBoot);
663+
664+typedef ULONG OPERATION_ID;
665+
666+typedef struct _OPERATION_START_PARAMETERS {
667+ ULONG Version;
668+ OPERATION_ID OperationId;
669+ ULONG Flags;
670+} OPERATION_START_PARAMETERS,*POPERATION_START_PARAMETERS;
671+
672+typedef struct _OPERATION_END_PARAMETERS {
673+ ULONG Version;
674+ OPERATION_ID OperationId;
675+ ULONG Flags;
676+} OPERATION_END_PARAMETERS,*POPERATION_END_PARAMETERS;
677+
678+WINADVAPI BOOL WINAPI OperationStart (OPERATION_START_PARAMETERS *OperationStartParams);
679+WINADVAPI BOOL WINAPI OperationEnd (OPERATION_END_PARAMETERS *OperationEndParams);
680+
681+typedef VOID WINAPI BAD_MEMORY_CALLBACK_ROUTINE (VOID);
682+typedef BAD_MEMORY_CALLBACK_ROUTINE *PBAD_MEMORY_CALLBACK_ROUTINE;
683+
684+WINBASEAPI PVOID WINAPI RegisterBadMemoryNotification (PBAD_MEMORY_CALLBACK_ROUTINE Callback);
685+WINBASEAPI BOOL WINAPI UnregisterBadMemoryNotification (PVOID RegistrationHandle);
686+WINBASEAPI BOOL WINAPI GetMemoryErrorHandlingCapabilities (PULONG Capabilities);
687+
688+typedef struct _FILE_ALIGNMENT_INFO {
689+ ULONG AlignmentRequirement;
690+} FILE_ALIGNMENT_INFO,*PFILE_ALIGNMENT_INFO;
691+
692+typedef struct _FILE_STORAGE_INFO {
693+ ULONG LogicalBytesPerSector;
694+ ULONG PhysicalBytesPerSectorForAtomicity;
695+ ULONG PhysicalBytesPerSectorForPerformance;
696+ ULONG FileSystemEffectivePhysicalBytesPerSectorForAtomicity;
697+ ULONG Flags;
698+ ULONG ByteOffsetForSectorAlignment;
699+ ULONG ByteOffsetForPartitionAlignment;
700+} FILE_STORAGE_INFO,*PFILE_STORAGE_INFO;
701+
702+typedef struct _FILE_ID_INFO {
703+ ULONGLONG VolumeSerialNumber;
704+ FILE_ID_128 FileId;
705+} FILE_ID_INFO,*PFILE_ID_INFO;
706+
707+typedef struct _FILE_ID_EXTD_DIR_INFO {
708+ ULONG NextEntryOffset;
709+ ULONG FileIndex;
710+ LARGE_INTEGER CreationTime;
711+ LARGE_INTEGER LastAccessTime;
712+ LARGE_INTEGER LastWriteTime;
713+ LARGE_INTEGER ChangeTime;
714+ LARGE_INTEGER EndOfFile;
715+ LARGE_INTEGER AllocationSize;
716+ ULONG FileAttributes;
717+ ULONG FileNameLength;
718+ ULONG EaSize;
719+ ULONG ReparsePointTag;
720+ FILE_ID_128 FileId;
721+ WCHAR FileName[1];
722+} FILE_ID_EXTD_DIR_INFO,*PFILE_ID_EXTD_DIR_INFO;
723+
724+#endif /* Win8 and later */
725 #endif /* Win7 and later */
726 #endif /* Windows Vista and later */
727 #endif /* Windows Server-2003 and later */
b145a83e
JB
728--- w32api-5.0.2/include/winnt.h.orig 2017-11-28 19:03:04.000000000 +0100
729+++ w32api-5.0.2/include/winnt.h 2019-04-27 18:17:44.580734108 +0200
730@@ -2716,6 +2716,11 @@
731 ULONGLONG OtherTransferCount;
732 } IO_COUNTERS, *PIO_COUNTERS;
733
734+typedef struct FILE_ID_128
735+{ ULONGLONG LowPart;
736+ ULONGLONG HighPart;
737+} FILE_ID_128, *PFILE_ID_128;
738+
739 typedef struct _FILE_NOTIFY_INFORMATION
740 { DWORD NextEntryOffset;
741 DWORD Action;
742@@ -3765,6 +3770,13 @@
743 { DWORD MemberLevel;
744 } JOBOBJECT_JOBSET_INFORMATION, *PJOBOBJECT_JOBSET_INFORMATION;
745
746+typedef enum _FIRMWARE_TYPE
747+{ FirmwareTypeUnknown,
748+ FirmwareTypeBios,
749+ FirmwareTypeUefi,
750+ FirmwareTypeMax
751+} FIRMWARE_TYPE,*PFIRMWARE_TYPE;
752+
753 /* Fixme: Making these defines conditional on WINVER will break ddk includes */
754 #if 1 /* (WINVER >= 0x0500) */
755 #include <pshpack4.h>
85d1e559
JB
756--- w32api-5.0.2/include/ws2tcpip.h.orig 2017-11-09 02:35:48.000000000 +0100
757+++ w32api-5.0.2/include/ws2tcpip.h 2018-09-17 05:43:14.524718024 +0200
758@@ -356,6 +356,41 @@
759 sockaddr_gen iiNetmask;
760 } INTERFACE_INFO, *LPINTERFACE_INFO;
761
762+typedef enum _MULTICAST_MODE_TYPE {
763+ MCAST_INCLUDE = 0,
764+ MCAST_EXCLUDE
765+} MULTICAST_MODE_TYPE;
766+
767+typedef struct _sockaddr_in6_pair {
768+ PSOCKADDR_IN6 SourceAddress;
769+ PSOCKADDR_IN6 DestinationAddress;
770+} SOCKADDR_IN6_PAIR, *PSOCKADDR_IN6_PAIR;
771+
772+typedef union _SOCKADDR_INET {
773+ SOCKADDR_IN Ipv4;
774+ SOCKADDR_IN6 Ipv6;
775+ ADDRESS_FAMILY si_family;
776+} SOCKADDR_INET, *PSOCKADDR_INET;
777+
778+typedef struct group_filter {
779+ ULONG gf_interface;
780+ SOCKADDR_STORAGE gf_group;
781+ MULTICAST_MODE_TYPE gf_fmode;
782+ ULONG gf_numsrc;
783+ SOCKADDR_STORAGE gf_slist[1];
784+} GROUP_FILTER, *PGROUP_FILTER;
785+
786+typedef struct group_req {
787+ ULONG gr_interface;
788+ SOCKADDR_STORAGE gr_group;
789+} GROUP_REQ, *PGROUP_REQ;
790+
791+typedef struct group_source_req {
792+ ULONG gsr_interface;
793+ SOCKADDR_STORAGE gsr_group;
794+ SOCKADDR_STORAGE gsr_source;
795+} GROUP_SOURCE_REQ, *PGROUP_SOURCE_REQ;
796+
797 /*
798 The definition above can cause problems on NT4,prior to sp4.
799 To workaround, include the following struct and typedef and
800@@ -373,6 +373,152 @@
801 } OLD_INTERFACE_INFO;
802 */
803
804+#if _WIN32_WINNT >= _WIN32_WINNT_VISTA
805+
806+#define addrinfoEx __AW_SUFFIXED__(addrinfoEx)
807+typedef struct addrinfoExA {
808+ int ai_flags;
809+ int ai_family;
810+ int ai_socktype;
811+ int ai_protocol;
812+ size_t ai_addrlen;
813+ LPCSTR ai_canonname;
814+ struct sockaddr *ai_addr;
815+ void *ai_blob;
816+ size_t ai_bloblen;
817+ LPGUID ai_provider;
818+ struct addrinfoexA *ai_next;
819+} ADDRINFOEXA, *PADDRINFOEXA;
820+
821+typedef struct addrinfoExW {
822+ int ai_flags;
823+ int ai_family;
824+ int ai_socktype;
825+ int ai_protocol;
826+ size_t ai_addrlen;
827+ LPCWSTR ai_canonname;
828+ struct sockaddr *ai_addr;
829+ void *ai_blob;
830+ size_t ai_bloblen;
831+ LPGUID ai_provider;
832+ struct addrinfoexW *ai_next;
833+} ADDRINFOEXW, *PADDRINFOEXW;
834+
835+typedef __AW_ALIAS__(ADDRINFOEX), *PADDRINFOEX;
836+
837+typedef PVOID LPLOOKUPSERVICE_COMPLETION_ROUTINE; /*reserved*/
838+
839+#define GetAddrInfoEx __AW_SUFFIXED__(GetAddrInfoEx)
840+WINSOCK_API_LINKAGE int WSAAPI GetAddrInfoExA(PCSTR pName, PCSTR pServiceName, DWORD dwNameSpace,
841+ LPGUID lpNspId,const ADDRINFOEXA *pHints,PADDRINFOEXA *ppResult,
842+ PTIMEVAL timeout,LPOVERLAPPED lpOverlapped,
843+ LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
844+ LPHANDLE lpNameHandle);
845+WINSOCK_API_LINKAGE int WSAAPI GetAddrInfoExW(PCWSTR pName,PCWSTR pServiceName,DWORD dwNameSpace,
846+ LPGUID lpNspId,const ADDRINFOEXW *pHints,PADDRINFOEXW *ppResult,
847+ PTIMEVAL timeout,LPOVERLAPPED lpOverlapped,
848+ LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
849+ LPHANDLE lpNameHandle);
850+
851+#define SetAddrInfoEx __AW_SUFFIXED__(SetAddrInfoEx)
852+WINSOCK_API_LINKAGE int WSAAPI SetAddrInfoExA(PCSTR pName, PCSTR pServiceName, SOCKET_ADDRESS *pAddresses,
853+ DWORD dwAddressCount,LPBLOB lpBlob,DWORD dwFlags,DWORD dwNameSpace,
854+ LPGUID lpNspId,PTIMEVAL timeout,LPOVERLAPPED lpOverlapped,
855+ LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
856+ LPHANDLE lpNameHandle);
857+WINSOCK_API_LINKAGE int WSAAPI SetAddrInfoExW(PCWSTR pName,PCWSTR pServiceName,SOCKET_ADDRESS *pAddresses,
858+ DWORD dwAddressCount,LPBLOB lpBlob,DWORD dwFlags,DWORD dwNameSpace,
859+ LPGUID lpNspId,PTIMEVAL timeout,LPOVERLAPPED lpOverlapped,
860+ LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
861+ LPHANDLE lpNameHandle);
862+
863+#define FreeAddrInfoEx __AW_SUFFIXED__(FreeAddrInfoEx)
864+WINSOCK_API_LINKAGE void WSAAPI FreeAddrInfoExA(PADDRINFOEXA pAddrInfo);
865+WINSOCK_API_LINKAGE void WSAAPI FreeAddrInfoExW(PADDRINFOEXW pAddrInfo);
866+
867+#if INCL_WINSOCK_API_TYPEDEFS
868+#define LPFN_GETADDRINFOEX __AW_SUFFIXED__(LPFN_GETADDRINFOEX)
869+ typedef int (WSAAPI *LPFN_GETADDRINFOEXA)(PCSTR pName, PCSTR pServiceName, DWORD dwNameSpace,
870+ LPGUID lpNspId,const ADDRINFOEXA *pHints,PADDRINFOEXA *ppResult,
871+ PTIMEVAL timeout,LPOVERLAPPED lpOverlapped,
872+ LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
873+ LPHANDLE lpNameHandle);
874+ typedef int (WSAAPI *LPFN_GETADDRINFOEXW)(PCWSTR pName,PCWSTR pServiceName,DWORD dwNameSpace,
875+ LPGUID lpNspId,const ADDRINFOEXW *pHints,PADDRINFOEXW *ppResult,
876+ PTIMEVAL timeout,LPOVERLAPPED lpOverlapped,
877+ LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
878+ LPHANDLE lpNameHandle);
879+
880+#define LPFN_SETADDRINFOEX __AW_SUFFIXED__(LPFN_SETADDRINFOEX)
881+ typedef int (WSAAPI *LPFN_SETADDRINFOEXA)(PCSTR pName, PCSTR pServiceName, SOCKET_ADDRESS *pAddresses,
882+ DWORD dwAddressCount,LPBLOB lpBlob,DWORD dwFlags,DWORD dwNameSpace,
883+ LPGUID lpNspId,PTIMEVAL timeout,LPOVERLAPPED lpOverlapped,
884+ LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
885+ LPHANDLE lpNameHandle);
886+ typedef int (WSAAPI *LPFN_SETADDRINFOEXW)(PCWSTR pName,PCWSTR pServiceName,SOCKET_ADDRESS *pAddresses,
887+ DWORD dwAddressCount,LPBLOB lpBlob,DWORD dwFlags,DWORD dwNameSpace,
888+ LPGUID lpNspId,PTIMEVAL timeout,LPOVERLAPPED lpOverlapped,
889+ LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
890+ LPHANDLE lpNameHandle);
891+
892+#define LPFN_FREEADDRINFOEX __AW_SUFFIXED__(LPFN_FREEADDRINFOEX)
893+ typedef void (WSAAPI *LPFN_FREEADDRINFOEXA)(PADDRINFOEXA pAddrInfo);
894+ typedef void (WSAAPI *LPFN_FREEADDRINFOEXW)(PADDRINFOEXW pAddrInfo);
895+#endif /* INCL_WINSOCK_API_TYPEDEFS */
896+
897+
898+WINSOCK_API_LINKAGE int WSAAPI WSAImpersonateSocketPeer(
899+ SOCKET Socket,
900+ const struct sockaddr *PeerAddress,
901+ ULONG peerAddressLen
902+);
903+
904+/* SOCKET_SECURITY_* not defined
905+WINSOCK_API_LINKAGE int WSAAPI WSAQuerySocketSecurity(
906+ SOCKET Socket,
907+ const SOCKET_SECURITY_QUERY_TEMPLATE *SecurityQueryTemplate,
908+ ULONG SecurityQueryTemplateLen,
909+ SOCKET_SECURITY_QUERY_INFO *SecurityQueryInfo,
910+ ULONG *SecurityQueryInfoLen,
911+ LPWSAOVERLAPPED Overlapped,
912+ LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
913+);
914+
915+WINSOCK_API_LINKAGE int WSAAPI WSARevertImpersonation(void);
916+
917+WINSOCK_API_LINKAGE int WSAAPI WSASetSocketPeerTargetName(
918+ SOCKET Socket,
919+ const SOCKET_PEER_TARGET_NAME *PeerTargetName,
920+ ULONG PeerTargetNameLen,
921+ LPWSAOVERLAPPED Overlapped,
922+ LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
923+);
924+
925+WINSOCK_API_LINKAGE int WSAAPI WSASetSocketSecurity(
926+ SOCKET Socket,
927+ const SOCKET_SECURITY_SETTINGS *SecuritySettings,
928+ ULONG SecuritySettingsLen,
929+ LPWSAOVERLAPPED Overlapped,
930+ LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
931+);
932+ */
933+
934+#define InetNtopA inet_ntop
935+
936+WINSOCK_API_LINKAGE LPCWSTR WSAAPI InetNtopW(INT Family, PVOID pAddr, LPWSTR pStringBuf, size_t StringBufSIze);
937+WINSOCK_API_LINKAGE LPCSTR WSAAPI InetNtopA(INT Family, PVOID pAddr, LPSTR pStringBuf, size_t StringBufSize);
938+
939+#define InetNtop __AW_SUFFIXED__(InetNtop)
940+
941+#define InetPtonA inet_pton
942+
943+WINSOCK_API_LINKAGE INT WSAAPI InetPtonW(INT Family, LPCWSTR pStringBuf, PVOID pAddr);
944+WINSOCK_API_LINKAGE INT WSAAPI InetPtonA(INT Family, LPCSTR pStringBuf, PVOID pAddr);
945+
946+#define InetPton __AW_SUFFIXED__(InetPton)
947+
948+#endif /* Vista */
949+
950 #ifdef __cplusplus
951 }
952 #endif
953--- w32api-5.0.2/include/ifdef.h.orig 1970-01-01 01:00:00.000000000 +0100
954+++ w32api-5.0.2/include/ifdef.h 2018-09-18 18:11:18.793218987 +0200
955@@ -0,0 +1,118 @@
956+/* https://github.com/Alexpux/mingw-w64/raw/master/mingw-w64-headers/include/ifdef.h
957+ with IF_OPER_STATUS definition (already defined in mingw32 iptypes.h) replaced by iptypes.h include */
958+/**
959+ * This file has no copyright assigned and is placed in the Public Domain.
960+ * This file is part of the mingw-w64 runtime package.
961+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
962+ */
963+#ifndef _INC_IFDEF
964+#define _INC_IFDEF
965+
966+#include <ipifcons.h>
967+#include <iptypes.h>
968+
969+#ifdef __cplusplus
970+extern "C" {
971+#endif
972+
973+#define IF_MAX_STRING_SIZE 256
974+#define IF_MAX_PHYS_ADDRESS_LENGTH 32
975+
976+typedef UINT32 NET_IF_COMPARTMENT_ID, *PNET_IF_COMPARTMENT_ID;
977+
978+typedef ULONG NET_IFINDEX, *PNET_IFINDEX;
979+typedef UINT16 NET_IFTYPE, *PNET_IFTYPE;
980+typedef NET_IFINDEX IF_INDEX, *PIF_INDEX;
981+
982+typedef GUID NET_IF_NETWORK_GUID;
983+
984+typedef enum _NET_IF_OPER_STATUS {
985+ NET_IF_OPER_STATUS_UP = 1,
986+ NET_IF_OPER_STATUS_DOWN,
987+ NET_IF_OPER_STATUS_TESTING,
988+ NET_IF_OPER_STATUS_UNKNOWN,
989+ NET_IF_OPER_STATUS_DORMANT,
990+ NET_IF_OPER_STATUS_NOT_PRESENT,
991+ NET_IF_OPER_STATUS_LOWER_LAYER_DOWN
992+} NET_IF_OPER_STATUS, *PNET_IF_OPER_STATUS;
993+
994+typedef enum _NET_IF_ADMIN_STATUS {
995+ NET_IF_ADMIN_STATUS_UP = 1,
996+ NET_IF_ADMIN_STATUS_DOWN,
997+ NET_IF_ADMIN_STATUS_TESTING
998+} NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS;
999+
1000+typedef enum _NET_IF_MEDIA_CONNECT_STATE {
1001+ MediaConnectStateUnknown,
1002+ MediaConnectStateConnected,
1003+ MediaConnectStateDisconnected
1004+} NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE;
1005+
1006+typedef enum _NET_IF_ACCESS_TYPE {
1007+ NET_IF_ACCESS_LOOPBACK = 1,
1008+ NET_IF_ACCESS_BROADCAST,
1009+ NET_IF_ACCESS_POINT_TO_POINT,
1010+ NET_IF_ACCESS_POINT_TO_MULTI_POINT,
1011+ NET_IF_ACCESS_MAXIMUM
1012+} NET_IF_ACCESS_TYPE, *PNET_IF_ACCESS_TYPE;
1013+
1014+typedef enum _NET_IF_CONNECTION_TYPE {
1015+ NET_IF_CONNECTION_DEDICATED = 1,
1016+ NET_IF_CONNECTION_PASSIVE,
1017+ NET_IF_CONNECTION_DEMAND,
1018+ NET_IF_CONNECTION_MAXIMUM
1019+} NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE;
1020+
1021+typedef enum _NET_IF_DIRECTION_TYPE {
1022+ NET_IF_DIRECTION_SENDRECEIVE,
1023+ NET_IF_DIRECTION_SENDONLY,
1024+ NET_IF_DIRECTION_RECEIVEONLY,
1025+ NET_IF_DIRECTION_MAXIMUM
1026+} NET_IF_DIRECTION_TYPE, *PNET_IF_DIRECTION_TYPE;
1027+
1028+typedef enum _NET_IF_MEDIA_DUPLEX_STATE {
1029+ MediaDuplexStateUnknown,
1030+ MediaDuplexStateHalf,
1031+ MediaDuplexStateFull
1032+} NET_IF_MEDIA_DUPLEX_STATE, *PNET_IF_MEDIA_DUPLEX_STATE;
1033+
1034+typedef enum _TUNNEL_TYPE {
1035+ TUNNEL_TYPE_NONE = 0,
1036+ TUNNEL_TYPE_OTHER = 1,
1037+ TUNNEL_TYPE_DIRECT = 2,
1038+ TUNNEL_TYPE_6TO4 = 11,
1039+ TUNNEL_TYPE_ISATAP = 13,
1040+ TUNNEL_TYPE_TEREDO = 14,
1041+ TUNNEL_TYPE_IPHTTPS = 15
1042+} TUNNEL_TYPE, *PTUNNEL_TYPE;
1043+
1044+typedef union _NET_LUID {
1045+ ULONG64 Value;
1046+ _ANONYMOUS_STRUCT struct { /* bitfield with 64 bit types. */
1047+ ULONG64 Reserved :24;
1048+ ULONG64 NetLuidIndex :24;
1049+ ULONG64 IfType :16;
1050+ } Info;
1051+} NET_LUID, *PNET_LUID;
1052+
1053+typedef NET_LUID IF_LUID, *PIF_LUID;
1054+
1055+typedef struct _IF_COUNTED_STRING_LH {
1056+ USHORT Length;
1057+ WCHAR String[IF_MAX_STRING_SIZE + 1];
1058+} IF_COUNTED_STRING_LH, *PIF_COUNTED_STRING_LH;
1059+typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING;
1060+typedef IF_COUNTED_STRING *PIF_COUNTED_STRING;
1061+
1062+typedef struct _IF_PHYSICAL_ADDRESS_LH {
1063+ USHORT Length;
1064+ UCHAR Address[IF_MAX_PHYS_ADDRESS_LENGTH];
1065+} IF_PHYSICAL_ADDRESS_LH, *PIF_PHYSICAL_ADDRESS_LH;
1066+typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS;
1067+typedef IF_PHYSICAL_ADDRESS *PIF_PHYSICAL_ADDRESS;
1068+
1069+#ifdef __cplusplus
1070+}
1071+#endif
1072+
1073+#endif /* _INC_IFDEF */
1074--- w32api-5.0.2/include/iphlpapi.h.orig 2017-11-28 19:03:04.000000000 +0100
1075+++ w32api-5.0.2/include/iphlpapi.h 2018-09-18 17:20:54.629920182 +0200
1076@@ -7,6 +7,8 @@
1077 #include <iprtrmib.h>
1078 #include <ipexport.h>
1079 #include <iptypes.h>
1080+#include <ifdef.h>
1081+
1082 #ifdef __cplusplus
1083 extern "C" {
1084 #endif
1085@@ -71,6 +73,10 @@
1086 DWORD WINAPI SetTcpEntry(PMIB_TCPROW);
1087 DWORD WINAPI UnenableRouter(OVERLAPPED*, LPDWORD);
1088
1089+#if NTDDI_VERSION >= __NTDDI_VISTA
1090+#include <netioapi.h>
1091+#endif
1092+
1093 #ifdef __cplusplus
1094 }
1095 #endif
1096--- w32api-5.0.2/include/winreg.h.orig 2017-11-28 19:03:04.000000000 +0100
2c1a691b
JB
1097+++ w32api-5.0.2/include/winreg.h 2019-08-02 17:36:50.006055240 +0200
1098@@ -11,6 +11,24 @@
1099 #ifdef __cplusplus
1100 extern "C" {
1101 #endif
1102+
1103+#if (WINVER >= _WIN32_WINNT_VISTA)
1104+#define RRF_RT_REG_NONE 0x00000001
1105+#define RRF_RT_REG_SZ 0x00000002
1106+#define RRF_RT_REG_EXPAND_SZ 0x00000004
1107+#define RRF_RT_REG_BINARY 0x00000008
1108+#define RRF_RT_REG_DWORD 0x00000010
1109+#define RRF_RT_REG_MULTI_SZ 0x00000020
1110+#define RRF_RT_REG_QWORD 0x00000040
1111+
1112+#define RRF_RT_DWORD (RRF_RT_REG_BINARY | RRF_RT_REG_DWORD)
1113+#define RRF_RT_QWORD (RRF_RT_REG_BINARY | RRF_RT_REG_QWORD)
1114+#define RRF_RT_ANY 0x0000ffff
1115+
1116+#define RRF_NOEXPAND 0x10000000
1117+#define RRF_ZEROONFAILURE 0x20000000
1118+#endif
1119+
1120 #define HKEY_CLASSES_ROOT ((HKEY)0x80000000)
1121 #define HKEY_CURRENT_USER ((HKEY)0x80000001)
1122 #define HKEY_LOCAL_MACHINE ((HKEY)0x80000002)
1123@@ -18,6 +36,9 @@
85d1e559
JB
1124 #define HKEY_PERFORMANCE_DATA ((HKEY)0x80000004)
1125 #define HKEY_CURRENT_CONFIG ((HKEY)0x80000005)
1126 #define HKEY_DYN_DATA ((HKEY)0x80000006)
1127+#define HKEY_PERFORMANCE_TEXT ((HKEY)0x80000050)
1128+#define HKEY_PERFORMANCE_NLSTEXT ((HKEY)0x80000060)
1129+
1130 #define REG_OPTION_VOLATILE 1
1131 #define REG_OPTION_NON_VOLATILE 0
1132 #define REG_CREATED_NEW_KEY 1
2c1a691b
JB
1133@@ -110,6 +131,11 @@
1134 WINADVAPI LONG WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
1135 WINADVAPI LONG WINAPI RegUnLoadKeyA(HKEY,LPCSTR);
1136 WINADVAPI LONG WINAPI RegUnLoadKeyW(HKEY,LPCWSTR);
1137+#if (WINVER >= _WIN32_WINNT_VISTA)
1138+typedef LONG LSTATUS;
1139+WINADVAPI LONG WINAPI RegGetValueA(HKEY hkey,LPCSTR lpSubKey,LPCSTR lpValue,DWORD dwFlags,LPDWORD pdwType,PVOID pvData,LPDWORD pcbData);
1140+WINADVAPI LONG WINAPI RegGetValueW(HKEY hkey,LPCWSTR lpSubKey,LPCWSTR lpValue,DWORD dwFlags,LPDWORD pdwType,PVOID pvData,LPDWORD pcbData);
1141+#endif
1142
1143 #ifdef UNICODE
1144 typedef VALENTW VALENT,*PVALENT;
1145@@ -139,6 +165,9 @@
1146 #define RegSetValue RegSetValueW
1147 #define RegSetValueEx RegSetValueExW
1148 #define RegUnLoadKey RegUnLoadKeyW
1149+#if (WINVER >= _WIN32_WINNT_VISTA)
1150+#define RegGetValue RegGetValueW
1151+#endif
1152 #else
1153 typedef VALENTA VALENT,*PVALENT;
1154 #define AbortSystemShutdown AbortSystemShutdownA
1155@@ -167,6 +196,9 @@
1156 #define RegSetValue RegSetValueA
1157 #define RegSetValueEx RegSetValueExA
1158 #define RegUnLoadKey RegUnLoadKeyA
1159+#if (WINVER >= _WIN32_WINNT_VISTA)
1160+#define RegGetValue RegGetValueA
1161+#endif
1162 #endif
1163 #endif
1164 #ifdef __cplusplus
85d1e559
JB
1165--- w32api-5.0.2/include/nldef.h.orig 1970-01-01 01:00:00.000000000 +0100
1166+++ w32api-5.0.2/include/nldef.h 2018-09-19 20:48:36.358791357 +0200
1167@@ -0,0 +1,193 @@
1168+/* https://github.com/Alexpux/mingw-w64/raw/master/mingw-w64-headers/include/nldef.h */
1169+/**
1170+ * This file is part of the mingw-w64 runtime package.
1171+ * No warranty is given; refer to the file DISCLAIMER within this package.
1172+ */
1173+
1174+#ifndef _NLDEF_
1175+#define _NLDEF_
1176+
1177+#include <iptypes.h>
1178+/*
1179+#include <winapifamily.h>
1180+
1181+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT >= 0x0A00
1182+ */
1183+
1184+typedef enum {
1185+ NldsInvalid,
1186+ NldsTentative,
1187+ NldsDuplicate,
1188+ NldsDeprecated,
1189+ NldsPreferred,
1190+/*IpDadStateInvalid = 0,
1191+ IpDadStateTentative,
1192+ IpDadStateDuplicate,
1193+ IpDadStateDeprecated,
1194+ IpDadStatePreferred, */
1195+} NL_DAD_STATE;
1196+
1197+#define MAKE_ROUTE_PROTOCOL(N, V) MIB_IPPROTO_ ## N = V, PROTO_IP_ ## N = V
1198+
1199+typedef enum {
1200+ RouteProtocolOther = 1,
1201+ RouteProtocolLocal = 2,
1202+ RouteProtocolNetMgmt = 3,
1203+ RouteProtocolIcmp = 4,
1204+ RouteProtocolEgp = 5,
1205+ RouteProtocolGgp = 6,
1206+ RouteProtocolHello = 7,
1207+ RouteProtocolRip = 8,
1208+ RouteProtocolIsIs = 9,
1209+ RouteProtocolEsIs = 10,
1210+ RouteProtocolCisco = 11,
1211+ RouteProtocolBbn = 12,
1212+ RouteProtocolOspf = 13,
1213+ RouteProtocolBgp = 14,
1214+
1215+ MAKE_ROUTE_PROTOCOL (OTHER, 1),
1216+ MAKE_ROUTE_PROTOCOL (LOCAL, 2),
1217+ MAKE_ROUTE_PROTOCOL (NETMGMT, 3),
1218+ MAKE_ROUTE_PROTOCOL (ICMP, 4),
1219+ MAKE_ROUTE_PROTOCOL (EGP, 5),
1220+ MAKE_ROUTE_PROTOCOL (GGP, 6),
1221+ MAKE_ROUTE_PROTOCOL (HELLO, 7),
1222+ MAKE_ROUTE_PROTOCOL (RIP, 8),
1223+ MAKE_ROUTE_PROTOCOL (IS_IS, 9),
1224+ MAKE_ROUTE_PROTOCOL (ES_IS, 10),
1225+ MAKE_ROUTE_PROTOCOL (CISCO, 11),
1226+ MAKE_ROUTE_PROTOCOL (BBN, 12),
1227+ MAKE_ROUTE_PROTOCOL (OSPF, 13),
1228+ MAKE_ROUTE_PROTOCOL (BGP, 14),
1229+ MAKE_ROUTE_PROTOCOL (NT_AUTOSTATIC, 10002),
1230+ MAKE_ROUTE_PROTOCOL (NT_STATIC, 10006),
1231+ MAKE_ROUTE_PROTOCOL (NT_STATIC_NON_DOD, 10007)
1232+} NL_ROUTE_PROTOCOL,*PNL_ROUTE_PROTOCOL;
1233+
1234+typedef IP_PREFIX_ORIGIN /* enum {
1235+ IpPrefixOriginOther = 0,
1236+ IpPrefixOriginManual,
1237+ IpPrefixOriginWellKnown,
1238+ IpPrefixOriginDhcp,
1239+ IpPrefixOriginRouterAdvertisement,
1240+ IpPrefixOriginUnchanged = 16
1241+}*/ NL_PREFIX_ORIGIN;
1242+
1243+typedef enum {
1244+ NlsoOther = 0,
1245+ NlsoManual,
1246+ NlsoWellKnown,
1247+ NlsoDhcp,
1248+ NlsoLinkLayerAddress,
1249+ NlsoRandom,
1250+/*IpSuffixOriginOther = 0,
1251+ IpSuffixOriginManual,
1252+ IpSuffixOriginWellKnown,
1253+ IpSuffixOriginDhcp,
1254+ IpSuffixOriginLinkLayerAddress,
1255+ IpSuffixOriginRandom,
1256+ IpSuffixOriginUnchanged = 16*/
1257+} NL_SUFFIX_ORIGIN;
1258+
1259+typedef enum {
1260+ NlatUnspecified,
1261+ NlatUnicast,
1262+ NlatAnycast,
1263+ NlatMulticast,
1264+ NlatBroadcast,
1265+ NlatInvalid
1266+} NL_ADDRESS_TYPE, *PNL_ADDRESS_TYPE;
1267+
1268+typedef enum _NL_ROUTE_ORIGIN {
1269+ NlroManual,
1270+ NlroWellKnown,
1271+ NlroDHCP,
1272+ NlroRouterAdvertisement,
1273+ Nlro6to4,
1274+} NL_ROUTE_ORIGIN, *PNL_ROUTE_ORIGIN;
1275+
1276+typedef enum _NL_NEIGHBOR_STATE {
1277+ NlnsUnreachable,
1278+ NlnsIncomplete,
1279+ NlnsProbe,
1280+ NlnsDelay,
1281+ NlnsStale,
1282+ NlnsReachable,
1283+ NlnsPermanent,
1284+ NlnsMaximum,
1285+} NL_NEIGHBOR_STATE, *PNL_NEIGHBOR_STATE;
1286+
1287+typedef enum _NL_LINK_LOCAL_ADDRESS_BEHAVIOR {
1288+ LinkLocalAlwaysOff = 0,
1289+ LinkLocalDelayed,
1290+ LinkLocalAlwaysOn,
1291+ LinkLocalUnchanged = -1
1292+} NL_LINK_LOCAL_ADDRESS_BEHAVIOR;
1293+
1294+typedef enum _NL_ROUTER_DISCOVERY_BEHAVIOR {
1295+ RouterDiscoveryDisabled = 0,
1296+ RouterDiscoveryEnabled,
1297+ RouterDiscoveryDhcp,
1298+ RouterDiscoveryUnchanged = -1
1299+} NL_ROUTER_DISCOVERY_BEHAVIOR;
1300+
1301+typedef enum _NL_BANDWIDTH_FLAG {
1302+ NlbwDisabled = 0,
1303+ NlbwEnabled,
1304+ NlbwUnchanged = -1
1305+} NL_BANDWIDTH_FLAG, *PNL_BANDWIDTH_FLAG;
1306+
1307+typedef enum _NL_INTERFACE_NETWORK_CATEGORY_STATE {
1308+ NlincCategoryUnknown = 0,
1309+ NlincPublic = 1,
1310+ NlincPrivate = 2,
1311+ NlincDomainAuthenticated = 3,
1312+ NlincCategoryStateMax
1313+} NL_INTERFACE_NETWORK_CATEGORY_STATE, *PNL_INTERFACE_NETWORK_CATEGORY_STATE;
1314+
1315+typedef struct _NL_INTERFACE_OFFLOAD_ROD {
1316+ BOOLEAN NlChecksumSupported : 1;
1317+ BOOLEAN NlOptionsSupported : 1;
1318+ BOOLEAN TlDatagramChecksumSupported : 1;
1319+ BOOLEAN TlStreamChecksumSupported : 1;
1320+ BOOLEAN TlStreamOptionsSupported : 1;
1321+ BOOLEAN FastPathCompatible : 1;
1322+ BOOLEAN TlLargeSendOffloadSupported : 1;
1323+ BOOLEAN TlGiantSendOffloadSupported : 1;
1324+} NL_INTERFACE_OFFLOAD_ROD, *PNL_INTERFACE_OFFLOAD_ROD;
1325+
1326+typedef struct _NL_PATH_BANDWIDTH_ROD {
1327+ ULONG64 Bandwidth;
1328+ ULONG64 Instability;
1329+ BOOLEAN BandwidthPeaked;
1330+} NL_PATH_BANDWIDTH_ROD, *PNL_PATH_BANDWIDTH_ROD;
1331+
1332+typedef enum _NL_NETWORK_CATEGORY {
1333+ NetworkCategoryPublic,
1334+ NetworkCategoryPrivate,
1335+ NetworkCategoryDomainAuthenticated,
1336+ NetworkCategoryUnchanged = -1,
1337+ NetworkCategoryUnknown = -1
1338+} NL_NETWORK_CATEGORY,*PNL_NETWORK_CATEGORY;
1339+
1340+typedef struct _NL_BANDWIDTH_INFORMATION {
1341+ ULONG64 Bandwidth;
1342+ ULONG64 Instability;
1343+ BOOLEAN BandwidthPeaked;
1344+} NL_BANDWIDTH_INFORMATION, *PNL_BANDWIDTH_INFORMATION;
1345+
1346+#define NlpoOther IpPrefixOriginOther
1347+#define NlpoManual IpPrefixOriginManual
1348+#define NlpoWellKnown IpPrefixOriginWellKnown
1349+#define NlpoDhcp IpPrefixOriginDhcp
1350+#define NlpoRouterAdvertisement IpPrefixOriginRouterAdvertisement
1351+
1352+#define NL_MAX_METRIC_COMPONENT ((((ULONG) 1) << 31) - 1)
1353+
1354+#define NET_IF_CURRENT_SESSION ((ULONG)-1)
1355+
1356+/*
1357+#endif
1358+ */
1359+
1360+#endif
1361--- w32api-5.0.2/include/netioapi.h.orig 1970-01-01 01:00:00.000000000 +0100
1362+++ w32api-5.0.2/include/netioapi.h 2018-09-19 20:50:20.355456840 +0200
1363@@ -0,0 +1,398 @@
1364+/* https://github.com/Alexpux/mingw-w64/raw/master/mingw-w64-headers/include/netioapi.h, adjusted for mingw32 */
1365+/**
1366+ * This file is part of the mingw-w64 runtime package.
1367+ * No warranty is given; refer to the file DISCLAIMER within this pack
1368+ */
1369+
1370+#ifndef _NETIOAPI_H_
1371+#define _NETIOAPI_H_
1372+
1373+/*
1374+#include <winapifamily.h>
1375+
1376+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
1377+ */
1378+
1379+#ifdef __cplusplus
1380+extern "C" {
1381+#endif
1382+
1383+#ifndef ANY_SIZE
1384+#define ANY_SIZE 1
1385+#endif
1386+
1387+#ifdef _IPHLPAPI_H
1388+#define NETIO_STATUS DWORD
1389+#define NETIO_SUCCESS(x) ((x) == NO_ERROR)
1390+#define NETIOAPI_API_ WINAPI
1391+#else
1392+#ifndef __MINGW32__
1393+#include <ws2def.h>
1394+#ifndef __CYGWIN__
1395+#include <ws2ipdef.h>
1396+#endif
1397+#endif
1398+#include <iprtrmib.h>
1399+#include <ifdef.h>
1400+#include <nldef.h>
1401+#include <ntdef.h> /* for NTSTATUS */
1402+
1403+#define NETIO_STATUS NTSTATUS
1404+#define NETIO_SUCCESS(x) NT_SUCCESS (x)
1405+#define NETIOAPI_API_ NTAPI
1406+#endif
1407+
1408+#define _NETIOAPI_SUCCESS_
1409+#define NETIOAPI_API NETIO_STATUS NETIOAPI_API_
1410+
1411+#define IF_NAMESIZE NDIS_IF_MAX_STRING_SIZE
1412+
1413+ typedef enum _MIB_NOTIFICATION_TYPE {
1414+ MibParameterNotification,
1415+ MibAddInstance,
1416+ MibDeleteInstance,
1417+ MibInitialNotification
1418+ } MIB_NOTIFICATION_TYPE,*PMIB_NOTIFICATION_TYPE;
1419+
1420+#ifdef _NLDEF_ /* _WS2IPDEF_ */
1421+#include <ntddndis.h>
1422+
1423+#define MIB_INVALID_TEREDO_PORT_NUMBER 0
1424+
1425+ typedef enum _MIB_IF_TABLE_LEVEL {
1426+ MibIfTableNormal,
1427+ MibIfTableRaw
1428+ } MIB_IF_TABLE_LEVEL, *PMIB_IF_TABLE_LEVEL;
1429+
1430+ typedef struct _MIB_IF_ROW2 {
1431+ NET_LUID InterfaceLuid;
1432+ NET_IFINDEX InterfaceIndex;
1433+ GUID InterfaceGuid;
1434+ WCHAR Alias[IF_MAX_STRING_SIZE + 1];
1435+ WCHAR Description[IF_MAX_STRING_SIZE + 1];
1436+ ULONG PhysicalAddressLength;
1437+ UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
1438+ UCHAR PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
1439+ ULONG Mtu;
1440+ IFTYPE Type;
1441+ TUNNEL_TYPE TunnelType;
1442+ NDIS_MEDIUM MediaType;
1443+ NDIS_PHYSICAL_MEDIUM PhysicalMediumType;
1444+ NET_IF_ACCESS_TYPE AccessType;
1445+ NET_IF_DIRECTION_TYPE DirectionType;
1446+ struct {
1447+ BOOLEAN HardwareInterface : 1;
1448+ BOOLEAN FilterInterface : 1;
1449+ BOOLEAN ConnectorPresent : 1;
1450+ BOOLEAN NotAuthenticated : 1;
1451+ BOOLEAN NotMediaConnected : 1;
1452+ BOOLEAN Paused : 1;
1453+ BOOLEAN LowPower : 1;
1454+ BOOLEAN EndPointInterface : 1;
1455+ } InterfaceAndOperStatusFlags;
1456+ IF_OPER_STATUS OperStatus;
1457+ NET_IF_ADMIN_STATUS AdminStatus;
1458+ NET_IF_MEDIA_CONNECT_STATE MediaConnectState;
1459+ NET_IF_NETWORK_GUID NetworkGuid;
1460+ NET_IF_CONNECTION_TYPE ConnectionType;
1461+ ULONG64 TransmitLinkSpeed;
1462+ ULONG64 ReceiveLinkSpeed;
1463+ ULONG64 InOctets;
1464+ ULONG64 InUcastPkts;
1465+ ULONG64 InNUcastPkts;
1466+ ULONG64 InDiscards;
1467+ ULONG64 InErrors;
1468+ ULONG64 InUnknownProtos;
1469+ ULONG64 InUcastOctets;
1470+ ULONG64 InMulticastOctets;
1471+ ULONG64 InBroadcastOctets;
1472+ ULONG64 OutOctets;
1473+ ULONG64 OutUcastPkts;
1474+ ULONG64 OutNUcastPkts;
1475+ ULONG64 OutDiscards;
1476+ ULONG64 OutErrors;
1477+ ULONG64 OutUcastOctets;
1478+ ULONG64 OutMulticastOctets;
1479+ ULONG64 OutBroadcastOctets;
1480+ ULONG64 OutQLen;
1481+ } MIB_IF_ROW2,*PMIB_IF_ROW2;
1482+
1483+ typedef struct _MIB_IF_TABLE2 {
1484+ ULONG NumEntries;
1485+ MIB_IF_ROW2 Table[ANY_SIZE];
1486+ } MIB_IF_TABLE2, *PMIB_IF_TABLE2;
1487+
1488+ typedef struct _MIB_IPINTERFACE_ROW {
1489+ ADDRESS_FAMILY Family;
1490+ NET_LUID InterfaceLuid;
1491+ NET_IFINDEX InterfaceIndex;
1492+ ULONG MaxReassemblySize;
1493+ ULONG64 InterfaceIdentifier;
1494+ ULONG MinRouterAdvertisementInterval;
1495+ ULONG MaxRouterAdvertisementInterval;
1496+ BOOLEAN AdvertisingEnabled;
1497+ BOOLEAN ForwardingEnabled;
1498+ BOOLEAN WeakHostSend;
1499+ BOOLEAN WeakHostReceive;
1500+ BOOLEAN UseAutomaticMetric;
1501+ BOOLEAN UseNeighborUnreachabilityDetection;
1502+ BOOLEAN ManagedAddressConfigurationSupported;
1503+ BOOLEAN OtherStatefulConfigurationSupported;
1504+ BOOLEAN AdvertiseDefaultRoute;
1505+ NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior;
1506+ ULONG DadTransmits;
1507+ ULONG BaseReachableTime;
1508+ ULONG RetransmitTime;
1509+ ULONG PathMtuDiscoveryTimeout;
1510+ NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior;
1511+ ULONG LinkLocalAddressTimeout;
1512+ ULONG ZoneIndices[ScopeLevelCount];
1513+ ULONG SitePrefixLength;
1514+ ULONG Metric;
1515+ ULONG NlMtu;
1516+ BOOLEAN Connected;
1517+ BOOLEAN SupportsWakeUpPatterns;
1518+ BOOLEAN SupportsNeighborDiscovery;
1519+ BOOLEAN SupportsRouterDiscovery;
1520+ ULONG ReachableTime;
1521+ NL_INTERFACE_OFFLOAD_ROD TransmitOffload;
1522+ NL_INTERFACE_OFFLOAD_ROD ReceiveOffload;
1523+ BOOLEAN DisableDefaultRoutes;
1524+ } MIB_IPINTERFACE_ROW,*PMIB_IPINTERFACE_ROW;
1525+
1526+ typedef struct _MIB_IPINTERFACE_TABLE {
1527+ ULONG NumEntries;
1528+ MIB_IPINTERFACE_ROW Table[ANY_SIZE];
1529+ } MIB_IPINTERFACE_TABLE,*PMIB_IPINTERFACE_TABLE;
1530+
1531+ typedef struct _MIB_IFSTACK_ROW {
1532+ NET_IFINDEX HigherLayerInterfaceIndex;
1533+ NET_IFINDEX LowerLayerInterfaceIndex;
1534+ } MIB_IFSTACK_ROW,*PMIB_IFSTACK_ROW;
1535+
1536+ typedef struct _MIB_INVERTEDIFSTACK_ROW {
1537+ NET_IFINDEX LowerLayerInterfaceIndex;
1538+ NET_IFINDEX HigherLayerInterfaceIndex;
1539+ } MIB_INVERTEDIFSTACK_ROW,*PMIB_INVERTEDIFSTACK_ROW;
1540+
1541+ typedef struct _MIB_IFSTACK_TABLE {
1542+ ULONG NumEntries;
1543+ MIB_IFSTACK_ROW Table[ANY_SIZE];
1544+ } MIB_IFSTACK_TABLE,*PMIB_IFSTACK_TABLE;
1545+
1546+ typedef struct _MIB_INVERTEDIFSTACK_TABLE {
1547+ ULONG NumEntries;
1548+ MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE];
1549+ } MIB_INVERTEDIFSTACK_TABLE,*PMIB_INVERTEDIFSTACK_TABLE;
1550+
1551+ typedef struct _MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES {
1552+ NL_BANDWIDTH_INFORMATION InboundBandwidthInformation;
1553+ NL_BANDWIDTH_INFORMATION OutboundBandwidthInformation;
1554+ } MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES, *PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES;
1555+
1556+ typedef struct _MIB_UNICASTIPADDRESS_ROW {
1557+ SOCKADDR_INET Address;
1558+ NET_LUID InterfaceLuid;
1559+ NET_IFINDEX InterfaceIndex;
1560+ NL_PREFIX_ORIGIN PrefixOrigin;
1561+ NL_SUFFIX_ORIGIN SuffixOrigin;
1562+ ULONG ValidLifetime;
1563+ ULONG PreferredLifetime;
1564+ UINT8 OnLinkPrefixLength;
1565+ BOOLEAN SkipAsSource;
1566+ NL_DAD_STATE DadState;
1567+ SCOPE_ID ScopeId;
1568+ LARGE_INTEGER CreationTimeStamp;
1569+ } MIB_UNICASTIPADDRESS_ROW,*PMIB_UNICASTIPADDRESS_ROW;
1570+
1571+ typedef struct _MIB_UNICASTIPADDRESS_TABLE {
1572+ ULONG NumEntries;
1573+ MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE];
1574+ } MIB_UNICASTIPADDRESS_TABLE,*PMIB_UNICASTIPADDRESS_TABLE;
1575+
1576+ typedef struct _MIB_ANYCASTIPADDRESS_ROW {
1577+ SOCKADDR_INET Address;
1578+ NET_LUID InterfaceLuid;
1579+ NET_IFINDEX InterfaceIndex;
1580+ SCOPE_ID ScopeId;
1581+ } MIB_ANYCASTIPADDRESS_ROW,*PMIB_ANYCASTIPADDRESS_ROW;
1582+
1583+ typedef struct _MIB_ANYCASTIPADDRESS_TABLE {
1584+ ULONG NumEntries;
1585+ MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE];
1586+ } MIB_ANYCASTIPADDRESS_TABLE,*PMIB_ANYCASTIPADDRESS_TABLE;
1587+
1588+ typedef struct _MIB_MULTICASTIPADDRESS_ROW {
1589+ SOCKADDR_INET Address;
1590+ NET_IFINDEX InterfaceIndex;
1591+ NET_LUID InterfaceLuid;
1592+ SCOPE_ID ScopeId;
1593+ } MIB_MULTICASTIPADDRESS_ROW,*PMIB_MULTICASTIPADDRESS_ROW;
1594+
1595+ typedef struct _MIB_MULTICASTIPADDRESS_TABLE {
1596+ ULONG NumEntries;
1597+ MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE];
1598+ } MIB_MULTICASTIPADDRESS_TABLE,*PMIB_MULTICASTIPADDRESS_TABLE;
1599+
1600+ typedef struct _IP_ADDRESS_PREFIX {
1601+ SOCKADDR_INET Prefix;
1602+ UINT8 PrefixLength;
1603+ } IP_ADDRESS_PREFIX,*PIP_ADDRESS_PREFIX;
1604+
1605+ typedef struct _MIB_IPFORWARD_ROW2 {
1606+ NET_LUID InterfaceLuid;
1607+ NET_IFINDEX InterfaceIndex;
1608+ IP_ADDRESS_PREFIX DestinationPrefix;
1609+ SOCKADDR_INET NextHop;
1610+ UCHAR SitePrefixLength;
1611+ ULONG ValidLifetime;
1612+ ULONG PreferredLifetime;
1613+ ULONG Metric;
1614+ NL_ROUTE_PROTOCOL Protocol;
1615+ BOOLEAN Loopback;
1616+ BOOLEAN AutoconfigureAddress;
1617+ BOOLEAN Publish;
1618+ BOOLEAN Immortal;
1619+ ULONG Age;
1620+ NL_ROUTE_ORIGIN Origin;
1621+ } MIB_IPFORWARD_ROW2,*PMIB_IPFORWARD_ROW2;
1622+
1623+ typedef struct _MIB_IPFORWARD_TABLE2 {
1624+ ULONG NumEntries;
1625+ MIB_IPFORWARD_ROW2 Table[ANY_SIZE];
1626+ } MIB_IPFORWARD_TABLE2,*PMIB_IPFORWARD_TABLE2;
1627+
1628+ typedef struct _MIB_IPPATH_ROW {
1629+ SOCKADDR_INET Source;
1630+ SOCKADDR_INET Destination;
1631+ NET_LUID InterfaceLuid;
1632+ NET_IFINDEX InterfaceIndex;
1633+ SOCKADDR_INET CurrentNextHop;
1634+ ULONG PathMtu;
1635+ ULONG RttMean;
1636+ ULONG RttDeviation;
1637+ _ANONYMOUS_UNION union {
1638+ ULONG LastReachable;
1639+ ULONG LastUnreachable;
1640+ };
1641+ BOOLEAN IsReachable;
1642+ ULONG64 LinkTransmitSpeed;
1643+ ULONG64 LinkReceiveSpeed;
1644+ } MIB_IPPATH_ROW,*PMIB_IPPATH_ROW;
1645+
1646+ typedef struct _MIB_IPPATH_TABLE {
1647+ ULONG NumEntries;
1648+ MIB_IPPATH_ROW Table[ANY_SIZE];
1649+ } MIB_IPPATH_TABLE,*PMIB_IPPATH_TABLE;
1650+
1651+ typedef struct _MIB_IPNET_ROW2 {
1652+ SOCKADDR_INET Address;
1653+ NET_IFINDEX InterfaceIndex;
1654+ NET_LUID InterfaceLuid;
1655+ UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
1656+ ULONG PhysicalAddressLength;
1657+ NL_NEIGHBOR_STATE State;
1658+ _ANONYMOUS_UNION union {
1659+ _ANONYMOUS_STRUCT struct {
1660+ BOOLEAN IsRouter : 1;
1661+ BOOLEAN IsUnreachable : 1;
1662+ };
1663+ UCHAR Flags;
1664+ };
1665+ union {
1666+ ULONG LastReachable;
1667+ ULONG LastUnreachable;
1668+ } ReachabilityTime;
1669+ } MIB_IPNET_ROW2, *PMIB_IPNET_ROW2;
1670+
1671+ typedef struct _MIB_IPNET_TABLE2 {
1672+ ULONG NumEntries;
1673+ MIB_IPNET_ROW2 Table[ANY_SIZE];
1674+ } MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2;
1675+
1676+ typedef VOID (NETIOAPI_API_ *PIPINTERFACE_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPINTERFACE_ROW Row, MIB_NOTIFICATION_TYPE NotificationType);
1677+ typedef VOID (NETIOAPI_API_ *PUNICAST_IPADDRESS_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_ROW Row, MIB_NOTIFICATION_TYPE NotificationType);
1678+ typedef VOID (NETIOAPI_API_ *PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_TABLE AddressTable);
1679+
1680+ typedef VOID (NETIOAPI_API_ *PTEREDO_PORT_CHANGE_CALLBACK) (PVOID CallerContext, USHORT Port, MIB_NOTIFICATION_TYPE NotificationType);
1681+ typedef VOID (NETIOAPI_API_ *PIPFORWARD_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPFORWARD_ROW2 Row, MIB_NOTIFICATION_TYPE NotificationType);
1682+
1683+ NETIO_STATUS NETIOAPI_API_ GetIfEntry2 (PMIB_IF_ROW2 Row);
1684+ NETIO_STATUS NETIOAPI_API_ GetIfTable2 (PMIB_IF_TABLE2 *Table);
1685+ NETIO_STATUS NETIOAPI_API_ GetIfTable2Ex (MIB_IF_TABLE_LEVEL Level, PMIB_IF_TABLE2 *Table);
1686+ NETIO_STATUS NETIOAPI_API_ GetIfStackTable (PMIB_IFSTACK_TABLE *Table);
1687+ NETIO_STATUS NETIOAPI_API_ GetInvertedIfStackTable (PMIB_INVERTEDIFSTACK_TABLE *Table);
1688+ NETIO_STATUS NETIOAPI_API_ GetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row);
1689+ NETIO_STATUS NETIOAPI_API_ GetIpInterfaceTable (ADDRESS_FAMILY Family, PMIB_IPINTERFACE_TABLE *Table);
1690+ VOID NETIOAPI_API_ InitializeIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row);
1691+ NETIO_STATUS NETIOAPI_API_ NotifyIpInterfaceChange (ADDRESS_FAMILY Family, PIPINTERFACE_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
1692+ NETIO_STATUS NETIOAPI_API_ SetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row);
1693+ NETIO_STATUS NETIOAPI_API_ GetIpNetworkConnectionBandwidthEstimates (NET_IFINDEX InterfaceIndex, ADDRESS_FAMILY AddressFamily, PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES BandwidthEstimates);
1694+ NETIO_STATUS NETIOAPI_API_ CreateUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row);
1695+ NETIO_STATUS NETIOAPI_API_ DeleteUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row);
1696+ NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row);
1697+ NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table);
1698+ VOID NETIOAPI_API_ InitializeUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row);
1699+ NETIO_STATUS NETIOAPI_API_ NotifyUnicastIpAddressChange (ADDRESS_FAMILY Family, PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
1700+ NETIO_STATUS NETIOAPI_API_ CreateAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row);
1701+ NETIO_STATUS NETIOAPI_API_ DeleteAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row);
1702+ NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressEntry (PMIB_ANYCASTIPADDRESS_ROW Row);
1703+ NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressTable (ADDRESS_FAMILY Family, PMIB_ANYCASTIPADDRESS_TABLE *Table);
1704+ NETIO_STATUS NETIOAPI_API_ NotifyStableUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table, PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, PVOID CallerContext, HANDLE *NotificationHandle);
1705+ NETIO_STATUS NETIOAPI_API_ SetUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row);
1706+ NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressEntry (PMIB_MULTICASTIPADDRESS_ROW Row);
1707+ NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressTable (ADDRESS_FAMILY Family, PMIB_MULTICASTIPADDRESS_TABLE *Table);
1708+ NETIO_STATUS NETIOAPI_API_ CreateIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row);
1709+ NETIO_STATUS NETIOAPI_API_ DeleteIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row);
1710+ NETIO_STATUS NETIOAPI_API_ GetBestRoute2 (NET_LUID *InterfaceLuid, NET_IFINDEX InterfaceIndex, CONST SOCKADDR_INET *SourceAddress, CONST SOCKADDR_INET *DestinationAddress, ULONG AddressSortOptions, PMIB_IPFORWARD_ROW2 BestRoute, SOCKADDR_INET *BestSourceAddress);
1711+ NETIO_STATUS NETIOAPI_API_ GetIpForwardEntry2 (PMIB_IPFORWARD_ROW2 Row);
1712+ NETIO_STATUS NETIOAPI_API_ GetIpForwardTable2 (ADDRESS_FAMILY Family, PMIB_IPFORWARD_TABLE2 *Table);
1713+ VOID NETIOAPI_API_ InitializeIpForwardEntry (PMIB_IPFORWARD_ROW2 Row);
1714+ NETIO_STATUS NETIOAPI_API_ NotifyRouteChange2 (ADDRESS_FAMILY AddressFamily, PIPFORWARD_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
1715+ NETIO_STATUS NETIOAPI_API_ SetIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Route);
1716+ NETIO_STATUS NETIOAPI_API_ FlushIpPathTable (ADDRESS_FAMILY Family);
1717+ NETIO_STATUS NETIOAPI_API_ GetIpPathEntry (PMIB_IPPATH_ROW Row);
1718+ NETIO_STATUS NETIOAPI_API_ GetIpPathTable (ADDRESS_FAMILY Family, PMIB_IPPATH_TABLE *Table);
1719+ NETIO_STATUS NETIOAPI_API_ CreateIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row);
1720+ NETIO_STATUS NETIOAPI_API_ DeleteIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row);
1721+ NETIO_STATUS NETIOAPI_API_ FlushIpNetTable2 (ADDRESS_FAMILY Family, NET_IFINDEX InterfaceIndex);
1722+ NETIO_STATUS NETIOAPI_API_ GetIpNetEntry2 (PMIB_IPNET_ROW2 Row);
1723+ NETIO_STATUS NETIOAPI_API_ GetIpNetTable2 (ADDRESS_FAMILY Family, PMIB_IPNET_TABLE2 *Table);
1724+ NETIO_STATUS NETIOAPI_API_ ResolveIpNetEntry2 (PMIB_IPNET_ROW2 Row, CONST SOCKADDR_INET *SourceAddress);
1725+ NETIO_STATUS NETIOAPI_API_ SetIpNetEntry2 (PMIB_IPNET_ROW2 Row);
1726+ NETIO_STATUS NETIOAPI_API_ NotifyTeredoPortChange (PTEREDO_PORT_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
1727+ NETIO_STATUS NETIOAPI_API_ GetTeredoPort (USHORT *Port);
1728+ NETIO_STATUS NETIOAPI_API_ CancelMibChangeNotify2 (HANDLE NotificationHandle);
1729+ VOID NETIOAPI_API_ FreeMibTable (PVOID Memory);
1730+ NETIO_STATUS NETIOAPI_API_ CreateSortedAddressPairs (const PSOCKADDR_IN6 SourceAddressList, ULONG SourceAddressCount, const PSOCKADDR_IN6 DestinationAddressList, ULONG DestinationAddressCount, ULONG AddressSortOptions, PSOCKADDR_IN6_PAIR *SortedAddressPairList, ULONG *SortedAddressPairCount);
1731+#endif
1732+
1733+ NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidA (CONST CHAR *InterfaceName, NET_LUID *InterfaceLuid);
1734+ NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidW (CONST WCHAR *InterfaceName, NET_LUID *InterfaceLuid);
1735+ NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameA (CONST NET_LUID *InterfaceLuid, PSTR InterfaceName, SIZE_T Length);
1736+ NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameW (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceName, SIZE_T Length);
1737+ NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToIndex (CONST NET_LUID *InterfaceLuid, PNET_IFINDEX InterfaceIndex);
1738+ NETIO_STATUS NETIOAPI_API_ ConvertInterfaceIndexToLuid (NET_IFINDEX InterfaceIndex, PNET_LUID InterfaceLuid);
1739+ NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToAlias (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceAlias, SIZE_T Length);
1740+ NETIO_STATUS NETIOAPI_API_ ConvertInterfaceAliasToLuid (CONST WCHAR *InterfaceAlias, PNET_LUID InterfaceLuid);
1741+ NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToGuid (CONST NET_LUID *InterfaceLuid, GUID *InterfaceGuid);
1742+ NETIO_STATUS NETIOAPI_API_ ConvertInterfaceGuidToLuid (CONST GUID *InterfaceGuid, PNET_LUID InterfaceLuid);
1743+ NET_IFINDEX NETIOAPI_API_ if_nametoindex (PCSTR InterfaceName);
1744+ PCHAR NETIOAPI_API_ if_indextoname (NET_IFINDEX InterfaceIndex, PCHAR InterfaceName);
1745+ NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetCurrentThreadCompartmentId (VOID);
1746+ NETIO_STATUS NETIOAPI_API_ SetCurrentThreadCompartmentId (NET_IF_COMPARTMENT_ID CompartmentId);
1747+ NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetSessionCompartmentId (ULONG SessionId);
1748+ NETIO_STATUS NETIOAPI_API_ SetSessionCompartmentId (ULONG SessionId, NET_IF_COMPARTMENT_ID CompartmentId);
1749+ NETIO_STATUS NETIOAPI_API_ GetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, PNET_IF_COMPARTMENT_ID CompartmentId, PULONG SiteId, PWCHAR NetworkName, ULONG Length);
1750+ NETIO_STATUS NETIOAPI_API_ SetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, NET_IF_COMPARTMENT_ID CompartmentId, CONST WCHAR *NetworkName);
1751+ NETIO_STATUS NETIOAPI_API_ ConvertLengthToIpv4Mask (ULONG MaskLength, PULONG Mask);
1752+ NETIO_STATUS NETIOAPI_API_ ConvertIpv4MaskToLength (ULONG Mask, PUINT8 MaskLength);
1753+
1754+#ifdef __cplusplus
1755+}
1756+#endif
1757+
1758+/*
1759+#endif
1760+ */
1761+#endif
1762--- w32api-5.0.2/include/basetsd.h.orig 2017-11-09 02:35:48.000000000 +0100
1763+++ w32api-5.0.2/include/basetsd.h 2018-09-21 22:06:01.713431915 +0200
1764@@ -47,14 +47,14 @@
1765 #ifdef __cplusplus
1766 extern "C" {
1767 #endif
1768-typedef signed char INT8;
1769-typedef signed short INT16;
1770+typedef signed char INT8, *PINT8;
1771+typedef signed short INT16, *PINT16;
1772 typedef int LONG32, *PLONG32;
1773 #ifndef XFree86Server
1774 typedef int INT32, *PINT32;
1775 #endif /* ndef XFree86Server */
1776-typedef unsigned char UINT8;
1777-typedef unsigned short UINT16;
1778+typedef unsigned char UINT8, *PUINT8;
1779+typedef unsigned short UINT16, *PUINT16;
1780 typedef unsigned int ULONG32, *PULONG32;
1781 typedef unsigned int DWORD32, *PDWORD32;
1782 typedef unsigned int UINT32, *PUINT32;
1783--- w32api-5.0.2/include/ipifcons.h.orig 2017-11-09 02:35:48.000000000 +0100
1784+++ w32api-5.0.2/include/ipifcons.h 2018-09-22 08:35:34.133000622 +0200
1785@@ -13,6 +13,12 @@
1786 #pragma GCC system_header
1787 #endif
1788
1789+#ifdef __cplusplus
1790+extern "C" {
1791+#endif
1792+
1793+typedef ULONG IFTYPE;
1794+
1795 #define MIN_IF_TYPE 1
1796 #define IF_TYPE_OTHER 1
1797 #define IF_TYPE_REGULAR_1822 2
1798@@ -196,4 +202,7 @@
1799 #define MIB_IF_TYPE_LOOPBACK 24
1800 #define MIB_IF_TYPE_SLIP 28
1801
1802+#ifdef __cplusplus
1803+}
1804+#endif
1805 #endif
1806--- w32api-5.0.2/include/ntddndis.h.orig 1970-01-01 01:00:00.000000000 +0100
1807+++ w32api-5.0.2/include/ntddndis.h 2018-09-22 09:39:12.409623691 +0200
1808@@ -0,0 +1,4589 @@
1809+/* https://github.com/Alexpux/mingw-w64/raw/master/mingw-w64-headers/include/ntddndis.h */
1810+/**
1811+* This file is part of the mingw-w64 runtime package.
1812+* No warranty is given; refer to the file DISCLAIMER within this package.
1813+*/
1814+
1815+#ifndef _NTDDNDIS_
1816+#define _NTDDNDIS_
1817+
1818+/*
1819+#include <winapifamily.h>
1820+
1821+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
1822+ */
1823+
1824+#ifdef __cplusplus
1825+extern "C" {
1826+#endif
1827+
1828+#ifndef NDIS_SUPPORT_NDIS6
1829+#if defined (UM_NDIS60) || defined (UM_NDIS61) || defined (UM_NDIS620) || defined (UM_NDIS630)
1830+#define NDIS_SUPPORT_NDIS6 1
1831+#else
1832+#define NDIS_SUPPORT_NDIS6 0
1833+#endif
1834+#endif
1835+
1836+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
1837+#include <ifdef.h>
1838+/*
1839+#include <devpkey.h>
1840+#include <pciprop.h>
1841+ */
1842+#endif
1843+
1844+#ifndef NDIS_SUPPORT_NDIS61
1845+#if defined (UM_NDIS61) || defined (UM_NDIS620) || defined (UM_NDIS630)
1846+#define NDIS_SUPPORT_NDIS61 1
1847+#else
1848+#define NDIS_SUPPORT_NDIS61 0
1849+#endif
1850+#endif
1851+
1852+#ifndef NDIS_SUPPORT_NDIS620
1853+#if defined (UM_NDIS620) || defined (UM_NDIS630)
1854+#define NDIS_SUPPORT_NDIS620 1
1855+#else
1856+#define NDIS_SUPPORT_NDIS620 0
1857+#endif
1858+#endif
1859+
1860+#ifndef NDIS_SUPPORT_NDIS630
1861+#ifdef UM_NDIS630
1862+#define NDIS_SUPPORT_NDIS630 1
1863+#else
1864+#define NDIS_SUPPORT_NDIS630 0
1865+#endif
1866+#endif
1867+
1868+#define DD_NDIS_DEVICE_NAME "\\Device\\UNKNOWN"
1869+
1870+#define _NDIS_CONTROL_CODE(request, method) CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, request, method, FILE_ANY_ACCESS)
1871+
1872+#define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE (0, METHOD_OUT_DIRECT)
1873+#define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE (1, METHOD_OUT_DIRECT)
1874+#define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE (2, METHOD_BUFFERED)
1875+#define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE (3, METHOD_OUT_DIRECT)
1876+#define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE (4, METHOD_BUFFERED)
1877+#define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE (5, METHOD_BUFFERED)
1878+#define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE (7, METHOD_OUT_DIRECT)
1879+#define IOCTL_NDIS_GET_VERSION _NDIS_CONTROL_CODE (8, METHOD_BUFFERED)
1880+
1881+#define IOCTL_NDIS_RESERVED1 _NDIS_CONTROL_CODE (9, METHOD_BUFFERED)
1882+#define IOCTL_NDIS_RESERVED2 _NDIS_CONTROL_CODE (0xa, METHOD_BUFFERED)
1883+#define IOCTL_NDIS_RESERVED3 _NDIS_CONTROL_CODE (0xb, METHOD_BUFFERED)
1884+#define IOCTL_NDIS_RESERVED4 _NDIS_CONTROL_CODE (0xc, METHOD_BUFFERED)
1885+#define IOCTL_NDIS_RESERVED5 CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, 0xd, METHOD_BUFFERED, FILE_ANY_ACCESS)
1886+#define IOCTL_NDIS_RESERVED6 CTL_CODE (FILE_DEVICE_PHYSICAL_NETCARD, 0xe, METHOD_BUFFERED, FILE_WRITE_ACCESS)
1887+#define IOCTL_NDIS_RESERVED7 _NDIS_CONTROL_CODE (0xf, METHOD_OUT_DIRECT)
1888+#define IOCTL_NDIS_RESERVED8 _NDIS_CONTROL_CODE (0x10, METHOD_BUFFERED)
1889+#define IOCTL_NDIS_RESERVED9 _NDIS_CONTROL_CODE (0x11, METHOD_BUFFERED)
1890+#define IOCTL_NDIS_RESERVED10 _NDIS_CONTROL_CODE (0x12, METHOD_BUFFERED)
1891+#define IOCTL_NDIS_RESERVED11 _NDIS_CONTROL_CODE (0x13, METHOD_BUFFERED)
1892+#define IOCTL_NDIS_RESERVED12 _NDIS_CONTROL_CODE (0x14, METHOD_BUFFERED)
1893+#define IOCTL_NDIS_RESERVED13 _NDIS_CONTROL_CODE (0x15, METHOD_BUFFERED)
1894+#define IOCTL_NDIS_RESERVED14 _NDIS_CONTROL_CODE (0x16, METHOD_BUFFERED)
1895+#define IOCTL_NDIS_RESERVED15 _NDIS_CONTROL_CODE (0x17, METHOD_BUFFERED)
1896+#define IOCTL_NDIS_RESERVED16 _NDIS_CONTROL_CODE (0x18, METHOD_BUFFERED)
1897+#define IOCTL_NDIS_RESERVED17 _NDIS_CONTROL_CODE (0x19, METHOD_BUFFERED)
1898+#define IOCTL_NDIS_RESERVED18 _NDIS_CONTROL_CODE (0x1a, METHOD_BUFFERED)
1899+#define IOCTL_NDIS_RESERVED19 _NDIS_CONTROL_CODE (0x1b, METHOD_BUFFERED)
1900+#define IOCTL_NDIS_RESERVED20 _NDIS_CONTROL_CODE (0x1c, METHOD_BUFFERED)
1901+#define IOCTL_NDIS_RESERVED21 _NDIS_CONTROL_CODE (0x1d, METHOD_BUFFERED)
1902+#define IOCTL_NDIS_RESERVED22 _NDIS_CONTROL_CODE (0x1e, METHOD_BUFFERED)
1903+#define IOCTL_NDIS_RESERVED23 _NDIS_CONTROL_CODE (0x1f, METHOD_BUFFERED)
1904+#define IOCTL_NDIS_RESERVED24 _NDIS_CONTROL_CODE (0x20, METHOD_BUFFERED)
1905+#define IOCTL_NDIS_RESERVED25 _NDIS_CONTROL_CODE (0x21, METHOD_BUFFERED)
1906+#define IOCTL_NDIS_RESERVED26 _NDIS_CONTROL_CODE (0x22, METHOD_BUFFERED)
1907+#define IOCTL_NDIS_RESERVED27 _NDIS_CONTROL_CODE (0x23, METHOD_BUFFERED)
1908+#define IOCTL_NDIS_RESERVED28 _NDIS_CONTROL_CODE (0x24, METHOD_BUFFERED)
1909+#define IOCTL_NDIS_RESERVED29 _NDIS_CONTROL_CODE (0x25, METHOD_BUFFERED)
1910+#define IOCTL_NDIS_RESERVED30 _NDIS_CONTROL_CODE (0x26, METHOD_BUFFERED)
1911+
1912+ typedef ULONG NDIS_OID, *PNDIS_OID;
1913+ typedef struct _NDIS_STATISTICS_VALUE {
1914+ NDIS_OID Oid;
1915+ ULONG DataLength;
1916+ UCHAR Data[1];
1917+ } NDIS_STATISTICS_VALUE;
1918+
1919+ typedef NDIS_STATISTICS_VALUE UNALIGNED *PNDIS_STATISTICS_VALUE;
1920+
1921+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
1922+ typedef struct _NDIS_STATISTICS_VALUE_EX {
1923+ NDIS_OID Oid;
1924+ ULONG DataLength;
1925+ ULONG Length;
1926+ UCHAR Data[1];
1927+ } NDIS_STATISTICS_VALUE_EX;
1928+
1929+ typedef NDIS_STATISTICS_VALUE_EX UNALIGNED *PNDIS_STATISTICS_VALUE_EX;
1930+#endif
1931+
1932+ typedef struct _NDIS_VAR_DATA_DESC {
1933+ USHORT Length;
1934+ USHORT MaximumLength;
1935+ ULONG_PTR Offset;
1936+ } NDIS_VAR_DATA_DESC, *PNDIS_VAR_DATA_DESC;
1937+
1938+#ifndef GUID_DEFINED
1939+/* not in mingw32, use replacement
1940+#include <guiddef.h>
1941+ */
1942+#include <basetyps.h>
1943+#endif
1944+
1945+#define NDIS_OBJECT_TYPE_DEFAULT 0x80
1946+#define NDIS_OBJECT_TYPE_MINIPORT_INIT_PARAMETERS 0x81
1947+#define NDIS_OBJECT_TYPE_SG_DMA_DESCRIPTION 0x83
1948+#define NDIS_OBJECT_TYPE_MINIPORT_INTERRUPT 0x84
1949+#define NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES 0x85
1950+#define NDIS_OBJECT_TYPE_BIND_PARAMETERS 0x86
1951+#define NDIS_OBJECT_TYPE_OPEN_PARAMETERS 0x87
1952+#define NDIS_OBJECT_TYPE_RSS_CAPABILITIES 0x88
1953+#define NDIS_OBJECT_TYPE_RSS_PARAMETERS 0x89
1954+#define NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS 0x8a
1955+#define NDIS_OBJECT_TYPE_FILTER_DRIVER_CHARACTERISTICS 0x8b
1956+#define NDIS_OBJECT_TYPE_FILTER_PARTIAL_CHARACTERISTICS 0x8c
1957+#define NDIS_OBJECT_TYPE_FILTER_ATTRIBUTES 0x8d
1958+#define NDIS_OBJECT_TYPE_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS 0x8e
1959+#define NDIS_OBJECT_TYPE_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS 0x8f
1960+#define NDIS_OBJECT_TYPE_CO_PROTOCOL_CHARACTERISTICS 0x90
1961+#define NDIS_OBJECT_TYPE_CO_MINIPORT_CHARACTERISTICS 0x91
1962+#define NDIS_OBJECT_TYPE_MINIPORT_PNP_CHARACTERISTICS 0x92
1963+#define NDIS_OBJECT_TYPE_CLIENT_CHIMNEY_OFFLOAD_CHARACTERISTICS 0x93
1964+#define NDIS_OBJECT_TYPE_PROVIDER_CHIMNEY_OFFLOAD_CHARACTERISTICS 0x94
1965+#define NDIS_OBJECT_TYPE_PROTOCOL_DRIVER_CHARACTERISTICS 0x95
1966+#define NDIS_OBJECT_TYPE_REQUEST_EX 0x96
1967+#define NDIS_OBJECT_TYPE_OID_REQUEST 0x96
1968+#define NDIS_OBJECT_TYPE_TIMER_CHARACTERISTICS 0x97
1969+#define NDIS_OBJECT_TYPE_STATUS_INDICATION 0x98
1970+#define NDIS_OBJECT_TYPE_FILTER_ATTACH_PARAMETERS 0x99
1971+#define NDIS_OBJECT_TYPE_FILTER_PAUSE_PARAMETERS 0x9a
1972+#define NDIS_OBJECT_TYPE_FILTER_RESTART_PARAMETERS 0x9b
1973+#define NDIS_OBJECT_TYPE_PORT_CHARACTERISTICS 0x9c
1974+#define NDIS_OBJECT_TYPE_PORT_STATE 0x9d
1975+#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 0x9e
1976+#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 0x9f
1977+#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES 0xa0
1978+#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES 0xa1
1979+#define NDIS_OBJECT_TYPE_RESTART_GENERAL_ATTRIBUTES 0xa2
1980+#define NDIS_OBJECT_TYPE_PROTOCOL_RESTART_PARAMETERS 0xa3
1981+#define NDIS_OBJECT_TYPE_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES 0xa4
1982+#define NDIS_OBJECT_TYPE_CO_CALL_MANAGER_OPTIONAL_HANDLERS 0xa5
1983+#define NDIS_OBJECT_TYPE_CO_CLIENT_OPTIONAL_HANDLERS 0xa6
1984+#define NDIS_OBJECT_TYPE_OFFLOAD 0xa7
1985+#define NDIS_OBJECT_TYPE_OFFLOAD_ENCAPSULATION 0xa8
1986+#define NDIS_OBJECT_TYPE_CONFIGURATION_OBJECT 0xa9
1987+#define NDIS_OBJECT_TYPE_DRIVER_WRAPPER_OBJECT 0xaa
1988+#if NDIS_SUPPORT_NDIS61
1989+#define NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES 0xab
1990+#endif
1991+#define NDIS_OBJECT_TYPE_NSI_NETWORK_RW_STRUCT 0xac
1992+#define NDIS_OBJECT_TYPE_NSI_COMPARTMENT_RW_STRUCT 0xad
1993+#define NDIS_OBJECT_TYPE_NSI_INTERFACE_PERSIST_RW_STRUCT 0xae
1994+#if NDIS_SUPPORT_NDIS61
1995+#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 0xaf
1996+#endif
1997+#if NDIS_SUPPORT_NDIS620
1998+#define NDIS_OBJECT_TYPE_SHARED_MEMORY_PROVIDER_CHARACTERISTICS 0xb0
1999+#define NDIS_OBJECT_TYPE_RSS_PROCESSOR_INFO 0xb1
2000+#endif
2001+#if NDIS_SUPPORT_NDIS630
2002+#define NDIS_OBJECT_TYPE_NDK_PROVIDER_CHARACTERISTICS 0xb2
2003+#define NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_NDK_ATTRIBUTES 0xb3
2004+#define NDIS_OBJECT_TYPE_MINIPORT_SS_CHARACTERISTICS 0xb4
2005+#define NDIS_OBJECT_TYPE_QOS_CAPABILITIES 0xb5
2006+#define NDIS_OBJECT_TYPE_QOS_PARAMETERS 0xb6
2007+#define NDIS_OBJECT_TYPE_QOS_CLASSIFICATION_ELEMENT 0xb7
2008+#define NDIS_OBJECT_TYPE_SWITCH_OPTIONAL_HANDLERS 0xb8
2009+#define NDIS_OBJECT_TYPE_IOCTL_OID_INFO 0xb9
2010+#define NDIS_OBJECT_TYPE_LBFO_DIAGNOSTIC_OID 0xba
2011+#endif
2012+
2013+ typedef struct _NDIS_OBJECT_HEADER {
2014+ UCHAR Type;
2015+ UCHAR Revision;
2016+ USHORT Size;
2017+ } NDIS_OBJECT_HEADER, *PNDIS_OBJECT_HEADER;
2018+
2019+ typedef enum _NDIS_REQUEST_TYPE {
2020+ NdisRequestQueryInformation,
2021+ NdisRequestSetInformation,
2022+ NdisRequestQueryStatistics,
2023+ NdisRequestOpen,
2024+ NdisRequestClose,
2025+ NdisRequestSend,
2026+ NdisRequestTransferData,
2027+ NdisRequestReset,
2028+ NdisRequestGeneric1,
2029+ NdisRequestGeneric2,
2030+ NdisRequestGeneric3,
2031+ NdisRequestGeneric4
2032+#if NDIS_SUPPORT_NDIS6
2033+ , NdisRequestMethod
2034+#endif
2035+ } NDIS_REQUEST_TYPE, *PNDIS_REQUEST_TYPE;
2036+
2037+#define NDIS_OBJECT_REVISION_1 1
2038+
2039+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
2040+#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_RCV 0x00000001
2041+#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_RCV 0x00000002
2042+#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_RCV 0x00000004
2043+#define NDIS_STATISTICS_FLAGS_VALID_BYTES_RCV 0x00000008
2044+#define NDIS_STATISTICS_FLAGS_VALID_RCV_DISCARDS 0x00000010
2045+#define NDIS_STATISTICS_FLAGS_VALID_RCV_ERROR 0x00000020
2046+#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_XMIT 0x00000040
2047+#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_XMIT 0x00000080
2048+#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_XMIT 0x00000100
2049+#define NDIS_STATISTICS_FLAGS_VALID_BYTES_XMIT 0x00000200
2050+#define NDIS_STATISTICS_FLAGS_VALID_XMIT_ERROR 0x00000400
2051+#define NDIS_STATISTICS_FLAGS_VALID_XMIT_DISCARDS 0x00008000
2052+#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_RCV 0x00010000
2053+#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_RCV 0x00020000
2054+#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_RCV 0x00040000
2055+#define NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_XMIT 0x00080000
2056+#define NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_XMIT 0x00100000
2057+#define NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_XMIT 0x00200000
2058+
2059+#define NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_RESET 0x00000001
2060+#define NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_REINITIALIZE 0x00000002
2061+
2062+#define NDIS_STATISTICS_INFO_REVISION_1 1
2063+#define NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1 1
2064+#define NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES_REVISION_1 1
2065+#define NDIS_OBJECT_TYPE_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1 1
2066+#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620
2067+#define NDIS_OBJECT_TYPE_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_2 2
2068+#endif
2069+#if NDIS_SUPPORT_NDIS630
2070+#define NDIS_RSC_STATISTICS_REVISION_1 1
2071+#endif
2072+
2073+#define NDIS_SIZEOF_STATISTICS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_STATISTICS_INFO, ifHCOutBroadcastOctets)
2074+#define NDIS_SIZEOF_INTERRUPT_MODERATION_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_INTERRUPT_MODERATION_PARAMETERS, InterruptModeration)
2075+#define NDIS_SIZEOF_TIMEOUT_DPC_REQUEST_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES, TimeoutArray)
2076+#define NDIS_SIZEOF_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, MaxLinkWidth)
2077+#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620
2078+#define NDIS_SIZEOF_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, MaxInterruptMessages)
2079+#endif
2080+#if NDIS_SUPPORT_NDIS630
2081+#define NDIS_SIZEOF_RSC_STATISTICS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSC_STATISTICS_INFO, Aborts)
2082+#endif
2083+
2084+ typedef struct _NDIS_STATISTICS_INFO {
2085+ NDIS_OBJECT_HEADER Header;
2086+ ULONG SupportedStatistics;
2087+ ULONG64 ifInDiscards;
2088+ ULONG64 ifInErrors;
2089+ ULONG64 ifHCInOctets;
2090+ ULONG64 ifHCInUcastPkts;
2091+ ULONG64 ifHCInMulticastPkts;
2092+ ULONG64 ifHCInBroadcastPkts;
2093+ ULONG64 ifHCOutOctets;
2094+ ULONG64 ifHCOutUcastPkts;
2095+ ULONG64 ifHCOutMulticastPkts;
2096+ ULONG64 ifHCOutBroadcastPkts;
2097+ ULONG64 ifOutErrors;
2098+ ULONG64 ifOutDiscards;
2099+ ULONG64 ifHCInUcastOctets;
2100+ ULONG64 ifHCInMulticastOctets;
2101+ ULONG64 ifHCInBroadcastOctets;
2102+ ULONG64 ifHCOutUcastOctets;
2103+ ULONG64 ifHCOutMulticastOctets;
2104+ ULONG64 ifHCOutBroadcastOctets;
2105+ } NDIS_STATISTICS_INFO, *PNDIS_STATISTICS_INFO;
2106+
2107+#if NDIS_SUPPORT_NDIS630
2108+ typedef struct _NDIS_RSC_STATISTICS_INFO {
2109+ NDIS_OBJECT_HEADER Header;
2110+ ULONG64 CoalescedPkts;
2111+ ULONG64 CoalescedOctets;
2112+ ULONG64 CoalesceEvents;
2113+ ULONG64 Aborts;
2114+ } NDIS_RSC_STATISTICS_INFO, *PNDIS_RSC_STATISTICS_INFO;
2115+#endif
2116+
2117+ typedef enum _NDIS_INTERRUPT_MODERATION {
2118+ NdisInterruptModerationUnknown,
2119+ NdisInterruptModerationNotSupported,
2120+ NdisInterruptModerationEnabled,
2121+ NdisInterruptModerationDisabled
2122+ } NDIS_INTERRUPT_MODERATION, *PNDIS_INTERRUPT_MODERATION;
2123+
2124+ typedef struct _NDIS_INTERRUPT_MODERATION_PARAMETERS {
2125+ NDIS_OBJECT_HEADER Header;
2126+ ULONG Flags;
2127+ NDIS_INTERRUPT_MODERATION InterruptModeration;
2128+ } NDIS_INTERRUPT_MODERATION_PARAMETERS, *PNDIS_INTERRUPT_MODERATION_PARAMETERS;
2129+
2130+ typedef struct _NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES {
2131+ NDIS_OBJECT_HEADER Header;
2132+ ULONG Flags;
2133+ ULONG TimeoutArrayLength;
2134+ ULONG TimeoutArray[1];
2135+ } NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES, *PNDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES;
2136+
2137+ typedef struct _NDIS_PCI_DEVICE_CUSTOM_PROPERTIES {
2138+ NDIS_OBJECT_HEADER Header;
2139+ UINT32 DeviceType;
2140+ UINT32 CurrentSpeedAndMode;
2141+ UINT32 CurrentPayloadSize;
2142+ UINT32 MaxPayloadSize;
2143+ UINT32 MaxReadRequestSize;
2144+ UINT32 CurrentLinkSpeed;
2145+ UINT32 CurrentLinkWidth;
2146+ UINT32 MaxLinkSpeed;
2147+ UINT32 MaxLinkWidth;
2148+#if (NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620)
2149+ UINT32 PciExpressVersion;
2150+ UINT32 InterruptType;
2151+ UINT32 MaxInterruptMessages;
2152+#endif
2153+ } NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, *PNDIS_PCI_DEVICE_CUSTOM_PROPERTIES;
2154+#endif
2155+
2156+#define OID_GEN_SUPPORTED_LIST 0x00010101
2157+#define OID_GEN_HARDWARE_STATUS 0x00010102
2158+#define OID_GEN_MEDIA_SUPPORTED 0x00010103
2159+#define OID_GEN_MEDIA_IN_USE 0x00010104
2160+#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105
2161+#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106
2162+#define OID_GEN_LINK_SPEED 0x00010107
2163+#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108
2164+#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109
2165+#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010a
2166+#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010b
2167+#define OID_GEN_VENDOR_ID 0x0001010c
2168+#define OID_GEN_VENDOR_DESCRIPTION 0x0001010d
2169+#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010e
2170+#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010f
2171+#define OID_GEN_DRIVER_VERSION 0x00010110
2172+#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111
2173+#define OID_GEN_PROTOCOL_OPTIONS 0x00010112
2174+#define OID_GEN_MAC_OPTIONS 0x00010113
2175+#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114
2176+#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115
2177+
2178+#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116
2179+#define OID_GEN_SUPPORTED_GUIDS 0x00010117
2180+#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118
2181+#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119
2182+#define OID_GEN_MEDIA_CAPABILITIES 0x00010201
2183+#define OID_GEN_PHYSICAL_MEDIUM 0x00010202
2184+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
2185+#define OID_GEN_RECEIVE_SCALE_CAPABILITIES 0x00010203
2186+#define OID_GEN_RECEIVE_SCALE_PARAMETERS 0x00010204
2187+#define OID_GEN_MAC_ADDRESS 0x00010205
2188+#define OID_GEN_MAX_LINK_SPEED 0x00010206
2189+#define OID_GEN_LINK_STATE 0x00010207
2190+#define OID_GEN_LINK_PARAMETERS 0x00010208
2191+#define OID_GEN_INTERRUPT_MODERATION 0x00010209
2192+#define OID_GEN_NDIS_RESERVED_3 0x0001020a
2193+#define OID_GEN_NDIS_RESERVED_4 0x0001020b
2194+#define OID_GEN_NDIS_RESERVED_5 0x0001020c
2195+#define OID_GEN_ENUMERATE_PORTS 0x0001020d
2196+#define OID_GEN_PORT_STATE 0x0001020e
2197+#define OID_GEN_PORT_AUTHENTICATION_PARAMETERS 0x0001020f
2198+#define OID_GEN_TIMEOUT_DPC_REQUEST_CAPABILITIES 0x00010210
2199+#define OID_GEN_PCI_DEVICE_CUSTOM_PROPERTIES 0x00010211
2200+#define OID_GEN_NDIS_RESERVED_6 0x00010212
2201+#define OID_GEN_PHYSICAL_MEDIUM_EX 0x00010213
2202+#endif
2203+
2204+#define OID_GEN_MACHINE_NAME 0x0001021a
2205+#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021b
2206+#define OID_GEN_VLAN_ID 0x0001021c
2207+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
2208+#define OID_GEN_RECEIVE_HASH 0x0001021f
2209+#define OID_GEN_MINIPORT_RESTART_ATTRIBUTES 0x0001021d
2210+
2211+#if NDIS_SUPPORT_NDIS61
2212+#define OID_GEN_HD_SPLIT_PARAMETERS 0x0001021e
2213+#define OID_GEN_HD_SPLIT_CURRENT_CONFIG 0x00010220
2214+#endif
2215+
2216+#define OID_GEN_PROMISCUOUS_MODE 0x00010280
2217+#define OID_GEN_LAST_CHANGE 0x00010281
2218+#define OID_GEN_DISCONTINUITY_TIME 0x00010282
2219+#define OID_GEN_OPERATIONAL_STATUS 0x00010283
2220+#define OID_GEN_XMIT_LINK_SPEED 0x00010284
2221+#define OID_GEN_RCV_LINK_SPEED 0x00010285
2222+#define OID_GEN_UNKNOWN_PROTOS 0x00010286
2223+#define OID_GEN_INTERFACE_INFO 0x00010287
2224+#define OID_GEN_ADMIN_STATUS 0x00010288
2225+#define OID_GEN_ALIAS 0x00010289
2226+#define OID_GEN_MEDIA_CONNECT_STATUS_EX 0x0001028a
2227+#define OID_GEN_LINK_SPEED_EX 0x0001028b
2228+#define OID_GEN_MEDIA_DUPLEX_STATE 0x0001028c
2229+#define OID_GEN_IP_OPER_STATUS 0x0001028d
2230+
2231+#define OID_WWAN_DRIVER_CAPS 0x0e010100
2232+#define OID_WWAN_DEVICE_CAPS 0x0e010101
2233+#define OID_WWAN_READY_INFO 0x0e010102
2234+#define OID_WWAN_RADIO_STATE 0x0e010103
2235+#define OID_WWAN_PIN 0x0e010104
2236+#define OID_WWAN_PIN_LIST 0x0e010105
2237+#define OID_WWAN_HOME_PROVIDER 0x0e010106
2238+#define OID_WWAN_PREFERRED_PROVIDERS 0x0e010107
2239+#define OID_WWAN_VISIBLE_PROVIDERS 0x0e010108
2240+#define OID_WWAN_REGISTER_STATE 0x0e010109
2241+#define OID_WWAN_PACKET_SERVICE 0x0e01010a
2242+#define OID_WWAN_SIGNAL_STATE 0x0e01010b
2243+#define OID_WWAN_CONNECT 0x0e01010c
2244+#define OID_WWAN_PROVISIONED_CONTEXTS 0x0e01010d
2245+#define OID_WWAN_SERVICE_ACTIVATION 0x0e01010e
2246+#define OID_WWAN_SMS_CONFIGURATION 0x0e01010f
2247+#define OID_WWAN_SMS_READ 0x0e010110
2248+#define OID_WWAN_SMS_SEND 0x0e010111
2249+#define OID_WWAN_SMS_DELETE 0x0e010112
2250+#define OID_WWAN_SMS_STATUS 0x0e010113
2251+#define OID_WWAN_VENDOR_SPECIFIC 0x0e010114
2252+#endif
2253+
2254+#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630
2255+#define OID_WWAN_AUTH_CHALLENGE 0x0e010115
2256+#define OID_WWAN_ENUMERATE_DEVICE_SERVICES 0x0e010116
2257+#define OID_WWAN_SUBSCRIBE_DEVICE_SERVICE_EVENTS 0x0e010117
2258+#define OID_WWAN_DEVICE_SERVICE_COMMAND 0x0e010118
2259+#define OID_WWAN_USSD 0x0e010119
2260+#define OID_WWAN_PIN_EX 0x0e010121
2261+#define OID_WWAN_ENUMERATE_DEVICE_SERVICE_COMMANDS 0x0e010122
2262+#define OID_WWAN_DEVICE_SERVICE_SESSION 0x0e010123
2263+#define OID_WWAN_DEVICE_SERVICE_SESSION_WRITE 0x0e010124
2264+#define OID_WWAN_PREFERRED_MULTICARRIER_PROVIDERS 0x0e010125
2265+#endif
2266+
2267+#define OID_GEN_XMIT_OK 0x00020101
2268+#define OID_GEN_RCV_OK 0x00020102
2269+#define OID_GEN_XMIT_ERROR 0x00020103
2270+#define OID_GEN_RCV_ERROR 0x00020104
2271+#define OID_GEN_RCV_NO_BUFFER 0x00020105
2272+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
2273+#define OID_GEN_STATISTICS 0x00020106
2274+#endif
2275+
2276+#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201
2277+#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202
2278+#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203
2279+#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204
2280+#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205
2281+#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206
2282+#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207
2283+#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208
2284+#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209
2285+#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020a
2286+#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020b
2287+#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020c
2288+#define OID_GEN_RCV_CRC_ERROR 0x0002020d
2289+#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020e
2290+#define OID_GEN_GET_TIME_CAPS 0x0002020f
2291+#define OID_GEN_GET_NETCARD_TIME 0x00020210
2292+#define OID_GEN_NETCARD_LOAD 0x00020211
2293+#define OID_GEN_DEVICE_PROFILE 0x00020212
2294+#define OID_GEN_INIT_TIME_MS 0x00020213
2295+#define OID_GEN_RESET_COUNTS 0x00020214
2296+#define OID_GEN_MEDIA_SENSE_COUNTS 0x00020215
2297+#define OID_GEN_FRIENDLY_NAME 0x00020216
2298+#define OID_GEN_NDIS_RESERVED_1 0x00020217
2299+#define OID_GEN_NDIS_RESERVED_2 0x00020218
2300+#define OID_GEN_NDIS_RESERVED_5 0x0001020c
2301+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
2302+#define OID_GEN_BYTES_RCV 0x00020219
2303+#define OID_GEN_BYTES_XMIT 0x0002021a
2304+#define OID_GEN_RCV_DISCARDS 0x0002021b
2305+#define OID_GEN_XMIT_DISCARDS 0x0002021c
2306+#endif
2307+#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630
2308+#define OID_TCP_RSC_STATISTICS 0x0002021d
2309+#define OID_GEN_NDIS_RESERVED_7 0x0002021e
2310+#endif
2311+
2312+#define OID_GEN_CO_SUPPORTED_LIST OID_GEN_SUPPORTED_LIST
2313+#define OID_GEN_CO_HARDWARE_STATUS OID_GEN_HARDWARE_STATUS
2314+#define OID_GEN_CO_MEDIA_SUPPORTED OID_GEN_MEDIA_SUPPORTED
2315+#define OID_GEN_CO_MEDIA_IN_USE OID_GEN_MEDIA_IN_USE
2316+#define OID_GEN_CO_LINK_SPEED OID_GEN_LINK_SPEED
2317+#define OID_GEN_CO_VENDOR_ID OID_GEN_VENDOR_ID
2318+#define OID_GEN_CO_VENDOR_DESCRIPTION OID_GEN_VENDOR_DESCRIPTION
2319+#define OID_GEN_CO_DRIVER_VERSION OID_GEN_DRIVER_VERSION
2320+#define OID_GEN_CO_PROTOCOL_OPTIONS OID_GEN_PROTOCOL_OPTIONS
2321+#define OID_GEN_CO_MAC_OPTIONS OID_GEN_MAC_OPTIONS
2322+#define OID_GEN_CO_MEDIA_CONNECT_STATUS OID_GEN_MEDIA_CONNECT_STATUS
2323+#define OID_GEN_CO_VENDOR_DRIVER_VERSION OID_GEN_VENDOR_DRIVER_VERSION
2324+#define OID_GEN_CO_SUPPORTED_GUIDS OID_GEN_SUPPORTED_GUIDS
2325+#define OID_GEN_CO_GET_TIME_CAPS OID_GEN_GET_TIME_CAPS
2326+#define OID_GEN_CO_GET_NETCARD_TIME OID_GEN_GET_NETCARD_TIME
2327+#define OID_GEN_CO_MINIMUM_LINK_SPEED 0x00020120
2328+
2329+#define OID_GEN_CO_XMIT_PDUS_OK OID_GEN_XMIT_OK
2330+#define OID_GEN_CO_RCV_PDUS_OK OID_GEN_RCV_OK
2331+#define OID_GEN_CO_XMIT_PDUS_ERROR OID_GEN_XMIT_ERROR
2332+#define OID_GEN_CO_RCV_PDUS_ERROR OID_GEN_RCV_ERROR
2333+#define OID_GEN_CO_RCV_PDUS_NO_BUFFER OID_GEN_RCV_NO_BUFFER
2334+
2335+#define OID_GEN_CO_RCV_CRC_ERROR OID_GEN_RCV_CRC_ERROR
2336+#define OID_GEN_CO_TRANSMIT_QUEUE_LENGTH OID_GEN_TRANSMIT_QUEUE_LENGTH
2337+#define OID_GEN_CO_BYTES_XMIT OID_GEN_DIRECTED_BYTES_XMIT
2338+#define OID_GEN_CO_BYTES_RCV OID_GEN_DIRECTED_BYTES_RCV
2339+#define OID_GEN_CO_NETCARD_LOAD OID_GEN_NETCARD_LOAD
2340+#define OID_GEN_CO_DEVICE_PROFILE OID_GEN_DEVICE_PROFILE
2341+#define OID_GEN_CO_BYTES_XMIT_OUTSTANDING 0x00020221
2342+
2343+#define OID_802_3_PERMANENT_ADDRESS 0x01010101
2344+#define OID_802_3_CURRENT_ADDRESS 0x01010102
2345+#define OID_802_3_MULTICAST_LIST 0x01010103
2346+#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104
2347+
2348+#define OID_802_3_MAC_OPTIONS 0x01010105
2349+
2350+#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001
2351+
2352+#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101
2353+#define OID_802_3_XMIT_ONE_COLLISION 0x01020102
2354+#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103
2355+
2356+#define OID_802_3_XMIT_DEFERRED 0x01020201
2357+#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202
2358+#define OID_802_3_RCV_OVERRUN 0x01020203
2359+#define OID_802_3_XMIT_UNDERRUN 0x01020204
2360+#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205
2361+#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206
2362+#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207
2363+
2364+#if (NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6)
2365+#define OID_802_3_ADD_MULTICAST_ADDRESS 0x01010208
2366+#define OID_802_3_DELETE_MULTICAST_ADDRESS 0x01010209
2367+#endif
2368+
2369+#define OID_802_5_PERMANENT_ADDRESS 0x02010101
2370+#define OID_802_5_CURRENT_ADDRESS 0x02010102
2371+#define OID_802_5_CURRENT_FUNCTIONAL 0x02010103
2372+#define OID_802_5_CURRENT_GROUP 0x02010104
2373+#define OID_802_5_LAST_OPEN_STATUS 0x02010105
2374+#define OID_802_5_CURRENT_RING_STATUS 0x02010106
2375+#define OID_802_5_CURRENT_RING_STATE 0x02010107
2376+
2377+#define OID_802_5_LINE_ERRORS 0x02020101
2378+#define OID_802_5_LOST_FRAMES 0x02020102
2379+
2380+#define OID_802_5_BURST_ERRORS 0x02020201
2381+#define OID_802_5_AC_ERRORS 0x02020202
2382+#define OID_802_5_ABORT_DELIMETERS 0x02020203
2383+#define OID_802_5_FRAME_COPIED_ERRORS 0x02020204
2384+#define OID_802_5_FREQUENCY_ERRORS 0x02020205
2385+#define OID_802_5_TOKEN_ERRORS 0x02020206
2386+#define OID_802_5_INTERNAL_ERRORS 0x02020207
2387+
2388+#define OID_FDDI_LONG_PERMANENT_ADDR 0x03010101
2389+#define OID_FDDI_LONG_CURRENT_ADDR 0x03010102
2390+#define OID_FDDI_LONG_MULTICAST_LIST 0x03010103
2391+#define OID_FDDI_LONG_MAX_LIST_SIZE 0x03010104
2392+#define OID_FDDI_SHORT_PERMANENT_ADDR 0x03010105
2393+#define OID_FDDI_SHORT_CURRENT_ADDR 0x03010106
2394+#define OID_FDDI_SHORT_MULTICAST_LIST 0x03010107
2395+#define OID_FDDI_SHORT_MAX_LIST_SIZE 0x03010108
2396+
2397+#define OID_FDDI_ATTACHMENT_TYPE 0x03020101
2398+#define OID_FDDI_UPSTREAM_NODE_LONG 0x03020102
2399+#define OID_FDDI_DOWNSTREAM_NODE_LONG 0x03020103
2400+#define OID_FDDI_FRAME_ERRORS 0x03020104
2401+#define OID_FDDI_FRAMES_LOST 0x03020105
2402+#define OID_FDDI_RING_MGT_STATE 0x03020106
2403+#define OID_FDDI_LCT_FAILURES 0x03020107
2404+#define OID_FDDI_LEM_REJECTS 0x03020108
2405+#define OID_FDDI_LCONNECTION_STATE 0x03020109
2406+
2407+#define OID_FDDI_SMT_STATION_ID 0x03030201
2408+#define OID_FDDI_SMT_OP_VERSION_ID 0x03030202
2409+#define OID_FDDI_SMT_HI_VERSION_ID 0x03030203
2410+#define OID_FDDI_SMT_LO_VERSION_ID 0x03030204
2411+#define OID_FDDI_SMT_MANUFACTURER_DATA 0x03030205
2412+#define OID_FDDI_SMT_USER_DATA 0x03030206
2413+#define OID_FDDI_SMT_MIB_VERSION_ID 0x03030207
2414+#define OID_FDDI_SMT_MAC_CT 0x03030208
2415+#define OID_FDDI_SMT_NON_MASTER_CT 0x03030209
2416+#define OID_FDDI_SMT_MASTER_CT 0x0303020a
2417+#define OID_FDDI_SMT_AVAILABLE_PATHS 0x0303020b
2418+#define OID_FDDI_SMT_CONFIG_CAPABILITIES 0x0303020c
2419+#define OID_FDDI_SMT_CONFIG_POLICY 0x0303020d
2420+#define OID_FDDI_SMT_CONNECTION_POLICY 0x0303020e
2421+#define OID_FDDI_SMT_T_NOTIFY 0x0303020f
2422+#define OID_FDDI_SMT_STAT_RPT_POLICY 0x03030210
2423+#define OID_FDDI_SMT_TRACE_MAX_EXPIRATION 0x03030211
2424+#define OID_FDDI_SMT_PORT_INDEXES 0x03030212
2425+#define OID_FDDI_SMT_MAC_INDEXES 0x03030213
2426+#define OID_FDDI_SMT_BYPASS_PRESENT 0x03030214
2427+#define OID_FDDI_SMT_ECM_STATE 0x03030215
2428+#define OID_FDDI_SMT_CF_STATE 0x03030216
2429+#define OID_FDDI_SMT_HOLD_STATE 0x03030217
2430+#define OID_FDDI_SMT_REMOTE_DISCONNECT_FLAG 0x03030218
2431+#define OID_FDDI_SMT_STATION_STATUS 0x03030219
2432+#define OID_FDDI_SMT_PEER_WRAP_FLAG 0x0303021a
2433+#define OID_FDDI_SMT_MSG_TIME_STAMP 0x0303021b
2434+#define OID_FDDI_SMT_TRANSITION_TIME_STAMP 0x0303021c
2435+#define OID_FDDI_SMT_SET_COUNT 0x0303021d
2436+#define OID_FDDI_SMT_LAST_SET_STATION_ID 0x0303021e
2437+#define OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS 0x0303021f
2438+#define OID_FDDI_MAC_BRIDGE_FUNCTIONS 0x03030220
2439+#define OID_FDDI_MAC_T_MAX_CAPABILITY 0x03030221
2440+#define OID_FDDI_MAC_TVX_CAPABILITY 0x03030222
2441+#define OID_FDDI_MAC_AVAILABLE_PATHS 0x03030223
2442+#define OID_FDDI_MAC_CURRENT_PATH 0x03030224
2443+#define OID_FDDI_MAC_UPSTREAM_NBR 0x03030225
2444+#define OID_FDDI_MAC_DOWNSTREAM_NBR 0x03030226
2445+#define OID_FDDI_MAC_OLD_UPSTREAM_NBR 0x03030227
2446+#define OID_FDDI_MAC_OLD_DOWNSTREAM_NBR 0x03030228
2447+#define OID_FDDI_MAC_DUP_ADDRESS_TEST 0x03030229
2448+#define OID_FDDI_MAC_REQUESTED_PATHS 0x0303022a
2449+#define OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE 0x0303022b
2450+#define OID_FDDI_MAC_INDEX 0x0303022c
2451+#define OID_FDDI_MAC_SMT_ADDRESS 0x0303022d
2452+#define OID_FDDI_MAC_LONG_GRP_ADDRESS 0x0303022e
2453+#define OID_FDDI_MAC_SHORT_GRP_ADDRESS 0x0303022f
2454+#define OID_FDDI_MAC_T_REQ 0x03030230
2455+#define OID_FDDI_MAC_T_NEG 0x03030231
2456+#define OID_FDDI_MAC_T_MAX 0x03030232
2457+#define OID_FDDI_MAC_TVX_VALUE 0x03030233
2458+#define OID_FDDI_MAC_T_PRI0 0x03030234
2459+#define OID_FDDI_MAC_T_PRI1 0x03030235
2460+#define OID_FDDI_MAC_T_PRI2 0x03030236
2461+#define OID_FDDI_MAC_T_PRI3 0x03030237
2462+#define OID_FDDI_MAC_T_PRI4 0x03030238
2463+#define OID_FDDI_MAC_T_PRI5 0x03030239
2464+#define OID_FDDI_MAC_T_PRI6 0x0303023a
2465+#define OID_FDDI_MAC_FRAME_CT 0x0303023b
2466+#define OID_FDDI_MAC_COPIED_CT 0x0303023c
2467+#define OID_FDDI_MAC_TRANSMIT_CT 0x0303023d
2468+#define OID_FDDI_MAC_TOKEN_CT 0x0303023e
2469+#define OID_FDDI_MAC_ERROR_CT 0x0303023f
2470+#define OID_FDDI_MAC_LOST_CT 0x03030240
2471+#define OID_FDDI_MAC_TVX_EXPIRED_CT 0x03030241
2472+#define OID_FDDI_MAC_NOT_COPIED_CT 0x03030242
2473+#define OID_FDDI_MAC_LATE_CT 0x03030243
2474+#define OID_FDDI_MAC_RING_OP_CT 0x03030244
2475+#define OID_FDDI_MAC_FRAME_ERROR_THRESHOLD 0x03030245
2476+#define OID_FDDI_MAC_FRAME_ERROR_RATIO 0x03030246
2477+#define OID_FDDI_MAC_NOT_COPIED_THRESHOLD 0x03030247
2478+#define OID_FDDI_MAC_NOT_COPIED_RATIO 0x03030248
2479+#define OID_FDDI_MAC_RMT_STATE 0x03030249
2480+#define OID_FDDI_MAC_DA_FLAG 0x0303024a
2481+#define OID_FDDI_MAC_UNDA_FLAG 0x0303024b
2482+#define OID_FDDI_MAC_FRAME_ERROR_FLAG 0x0303024c
2483+#define OID_FDDI_MAC_NOT_COPIED_FLAG 0x0303024d
2484+#define OID_FDDI_MAC_MA_UNITDATA_AVAILABLE 0x0303024e
2485+#define OID_FDDI_MAC_HARDWARE_PRESENT 0x0303024f
2486+#define OID_FDDI_MAC_MA_UNITDATA_ENABLE 0x03030250
2487+#define OID_FDDI_PATH_INDEX 0x03030251
2488+#define OID_FDDI_PATH_RING_LATENCY 0x03030252
2489+#define OID_FDDI_PATH_TRACE_STATUS 0x03030253
2490+#define OID_FDDI_PATH_SBA_PAYLOAD 0x03030254
2491+#define OID_FDDI_PATH_SBA_OVERHEAD 0x03030255
2492+#define OID_FDDI_PATH_CONFIGURATION 0x03030256
2493+#define OID_FDDI_PATH_T_R_MODE 0x03030257
2494+#define OID_FDDI_PATH_SBA_AVAILABLE 0x03030258
2495+#define OID_FDDI_PATH_TVX_LOWER_BOUND 0x03030259
2496+#define OID_FDDI_PATH_T_MAX_LOWER_BOUND 0x0303025a
2497+#define OID_FDDI_PATH_MAX_T_REQ 0x0303025b
2498+#define OID_FDDI_PORT_MY_TYPE 0x0303025c
2499+#define OID_FDDI_PORT_NEIGHBOR_TYPE 0x0303025d
2500+#define OID_FDDI_PORT_CONNECTION_POLICIES 0x0303025e
2501+#define OID_FDDI_PORT_MAC_INDICATED 0x0303025f
2502+#define OID_FDDI_PORT_CURRENT_PATH 0x03030260
2503+#define OID_FDDI_PORT_REQUESTED_PATHS 0x03030261
2504+#define OID_FDDI_PORT_MAC_PLACEMENT 0x03030262
2505+#define OID_FDDI_PORT_AVAILABLE_PATHS 0x03030263
2506+#define OID_FDDI_PORT_MAC_LOOP_TIME 0x03030264
2507+#define OID_FDDI_PORT_PMD_CLASS 0x03030265
2508+#define OID_FDDI_PORT_CONNECTION_CAPABILITIES 0x03030266
2509+#define OID_FDDI_PORT_INDEX 0x03030267
2510+#define OID_FDDI_PORT_MAINT_LS 0x03030268
2511+#define OID_FDDI_PORT_BS_FLAG 0x03030269
2512+#define OID_FDDI_PORT_PC_LS 0x0303026a
2513+#define OID_FDDI_PORT_EB_ERROR_CT 0x0303026b
2514+#define OID_FDDI_PORT_LCT_FAIL_CT 0x0303026c
2515+#define OID_FDDI_PORT_LER_ESTIMATE 0x0303026d
2516+#define OID_FDDI_PORT_LEM_REJECT_CT 0x0303026e
2517+#define OID_FDDI_PORT_LEM_CT 0x0303026f
2518+#define OID_FDDI_PORT_LER_CUTOFF 0x03030270
2519+#define OID_FDDI_PORT_LER_ALARM 0x03030271
2520+#define OID_FDDI_PORT_CONNNECT_STATE 0x03030272
2521+#define OID_FDDI_PORT_PCM_STATE 0x03030273
2522+#define OID_FDDI_PORT_PC_WITHHOLD 0x03030274
2523+#define OID_FDDI_PORT_LER_FLAG 0x03030275
2524+#define OID_FDDI_PORT_HARDWARE_PRESENT 0x03030276
2525+#define OID_FDDI_SMT_STATION_ACTION 0x03030277
2526+#define OID_FDDI_PORT_ACTION 0x03030278
2527+#define OID_FDDI_IF_DESCR 0x03030279
2528+#define OID_FDDI_IF_TYPE 0x0303027a
2529+#define OID_FDDI_IF_MTU 0x0303027b
2530+#define OID_FDDI_IF_SPEED 0x0303027c
2531+#define OID_FDDI_IF_PHYS_ADDRESS 0x0303027d
2532+#define OID_FDDI_IF_ADMIN_STATUS 0x0303027e
2533+#define OID_FDDI_IF_OPER_STATUS 0x0303027f
2534+#define OID_FDDI_IF_LAST_CHANGE 0x03030280
2535+#define OID_FDDI_IF_IN_OCTETS 0x03030281
2536+#define OID_FDDI_IF_IN_UCAST_PKTS 0x03030282
2537+#define OID_FDDI_IF_IN_NUCAST_PKTS 0x03030283
2538+#define OID_FDDI_IF_IN_DISCARDS 0x03030284
2539+#define OID_FDDI_IF_IN_ERRORS 0x03030285
2540+#define OID_FDDI_IF_IN_UNKNOWN_PROTOS 0x03030286
2541+#define OID_FDDI_IF_OUT_OCTETS 0x03030287
2542+#define OID_FDDI_IF_OUT_UCAST_PKTS 0x03030288
2543+#define OID_FDDI_IF_OUT_NUCAST_PKTS 0x03030289
2544+#define OID_FDDI_IF_OUT_DISCARDS 0x0303028a
2545+#define OID_FDDI_IF_OUT_ERRORS 0x0303028b
2546+#define OID_FDDI_IF_OUT_QLEN 0x0303028c
2547+#define OID_FDDI_IF_SPECIFIC 0x0303028d
2548+
2549+#define OID_WAN_PERMANENT_ADDRESS 0x04010101
2550+#define OID_WAN_CURRENT_ADDRESS 0x04010102
2551+#define OID_WAN_QUALITY_OF_SERVICE 0x04010103
2552+#define OID_WAN_PROTOCOL_TYPE 0x04010104
2553+#define OID_WAN_MEDIUM_SUBTYPE 0x04010105
2554+#define OID_WAN_HEADER_FORMAT 0x04010106
2555+
2556+#define OID_WAN_GET_INFO 0x04010107
2557+#define OID_WAN_SET_LINK_INFO 0x04010108
2558+#define OID_WAN_GET_LINK_INFO 0x04010109
2559+#define OID_WAN_LINE_COUNT 0x0401010a
2560+#define OID_WAN_PROTOCOL_CAPS 0x0401010b
2561+
2562+#define OID_WAN_GET_BRIDGE_INFO 0x0401020a
2563+#define OID_WAN_SET_BRIDGE_INFO 0x0401020b
2564+#define OID_WAN_GET_COMP_INFO 0x0401020c
2565+#define OID_WAN_SET_COMP_INFO 0x0401020d
2566+#define OID_WAN_GET_STATS_INFO 0x0401020e
2567+
2568+#define OID_WAN_CO_GET_INFO 0x04010180
2569+#define OID_WAN_CO_SET_LINK_INFO 0x04010181
2570+#define OID_WAN_CO_GET_LINK_INFO 0x04010182
2571+#define OID_WAN_CO_GET_COMP_INFO 0x04010280
2572+#define OID_WAN_CO_SET_COMP_INFO 0x04010281
2573+#define OID_WAN_CO_GET_STATS_INFO 0x04010282
2574+
2575+#define OID_LTALK_CURRENT_NODE_ID 0x05010102
2576+
2577+#define OID_LTALK_IN_BROADCASTS 0x05020101
2578+#define OID_LTALK_IN_LENGTH_ERRORS 0x05020102
2579+
2580+#define OID_LTALK_OUT_NO_HANDLERS 0x05020201
2581+#define OID_LTALK_COLLISIONS 0x05020202
2582+#define OID_LTALK_DEFERS 0x05020203
2583+#define OID_LTALK_NO_DATA_ERRORS 0x05020204
2584+#define OID_LTALK_RANDOM_CTS_ERRORS 0x05020205
2585+#define OID_LTALK_FCS_ERRORS 0x05020206
2586+
2587+#define OID_ARCNET_PERMANENT_ADDRESS 0x06010101
2588+#define OID_ARCNET_CURRENT_ADDRESS 0x06010102
2589+
2590+#define OID_ARCNET_RECONFIGURATIONS 0x06020201
2591+
2592+#define OID_TAPI_ACCEPT 0x07030101
2593+#define OID_TAPI_ANSWER 0x07030102
2594+#define OID_TAPI_CLOSE 0x07030103
2595+#define OID_TAPI_CLOSE_CALL 0x07030104
2596+#define OID_TAPI_CONDITIONAL_MEDIA_DETECTION 0x07030105
2597+#define OID_TAPI_CONFIG_DIALOG 0x07030106
2598+#define OID_TAPI_DEV_SPECIFIC 0x07030107
2599+#define OID_TAPI_DIAL 0x07030108
2600+#define OID_TAPI_DROP 0x07030109
2601+#define OID_TAPI_GET_ADDRESS_CAPS 0x0703010a
2602+#define OID_TAPI_GET_ADDRESS_ID 0x0703010b
2603+#define OID_TAPI_GET_ADDRESS_STATUS 0x0703010c
2604+#define OID_TAPI_GET_CALL_ADDRESS_ID 0x0703010d
2605+#define OID_TAPI_GET_CALL_INFO 0x0703010e
2606+#define OID_TAPI_GET_CALL_STATUS 0x0703010f
2607+#define OID_TAPI_GET_DEV_CAPS 0x07030110
2608+#define OID_TAPI_GET_DEV_CONFIG 0x07030111
2609+#define OID_TAPI_GET_EXTENSION_ID 0x07030112
2610+#define OID_TAPI_GET_ID 0x07030113
2611+#define OID_TAPI_GET_LINE_DEV_STATUS 0x07030114
2612+#define OID_TAPI_MAKE_CALL 0x07030115
2613+#define OID_TAPI_NEGOTIATE_EXT_VERSION 0x07030116
2614+#define OID_TAPI_OPEN 0x07030117
2615+#define OID_TAPI_PROVIDER_INITIALIZE 0x07030118
2616+#define OID_TAPI_PROVIDER_SHUTDOWN 0x07030119
2617+#define OID_TAPI_SECURE_CALL 0x0703011a
2618+#define OID_TAPI_SELECT_EXT_VERSION 0x0703011b
2619+#define OID_TAPI_SEND_USER_USER_INFO 0x0703011c
2620+#define OID_TAPI_SET_APP_SPECIFIC 0x0703011d
2621+#define OID_TAPI_SET_CALL_PARAMS 0x0703011e
2622+#define OID_TAPI_SET_DEFAULT_MEDIA_DETECTION 0x0703011f
2623+#define OID_TAPI_SET_DEV_CONFIG 0x07030120
2624+#define OID_TAPI_SET_MEDIA_MODE 0x07030121
2625+#define OID_TAPI_SET_STATUS_MESSAGES 0x07030122
2626+#define OID_TAPI_GATHER_DIGITS 0x07030123
2627+#define OID_TAPI_MONITOR_DIGITS 0x07030124
2628+
2629+#define OID_ATM_SUPPORTED_VC_RATES 0x08010101
2630+#define OID_ATM_SUPPORTED_SERVICE_CATEGORY 0x08010102
2631+#define OID_ATM_SUPPORTED_AAL_TYPES 0x08010103
2632+#define OID_ATM_HW_CURRENT_ADDRESS 0x08010104
2633+#define OID_ATM_MAX_ACTIVE_VCS 0x08010105
2634+#define OID_ATM_MAX_ACTIVE_VCI_BITS 0x08010106
2635+#define OID_ATM_MAX_ACTIVE_VPI_BITS 0x08010107
2636+#define OID_ATM_MAX_AAL0_PACKET_SIZE 0x08010108
2637+#define OID_ATM_MAX_AAL1_PACKET_SIZE 0x08010109
2638+#define OID_ATM_MAX_AAL34_PACKET_SIZE 0x0801010a
2639+#define OID_ATM_MAX_AAL5_PACKET_SIZE 0x0801010b
2640+
2641+#define OID_ATM_SIGNALING_VPIVCI 0x08010201
2642+#define OID_ATM_ASSIGNED_VPI 0x08010202
2643+#define OID_ATM_ACQUIRE_ACCESS_NET_RESOURCES 0x08010203
2644+#define OID_ATM_RELEASE_ACCESS_NET_RESOURCES 0x08010204
2645+#define OID_ATM_ILMI_VPIVCI 0x08010205
2646+#define OID_ATM_DIGITAL_BROADCAST_VPIVCI 0x08010206
2647+#define OID_ATM_GET_NEAREST_FLOW 0x08010207
2648+#define OID_ATM_ALIGNMENT_REQUIRED 0x08010208
2649+#define OID_ATM_LECS_ADDRESS 0x08010209
2650+#define OID_ATM_SERVICE_ADDRESS 0x0801020a
2651+
2652+#define OID_ATM_CALL_PROCEEDING 0x0801020b
2653+#define OID_ATM_CALL_ALERTING 0x0801020c
2654+#define OID_ATM_PARTY_ALERTING 0x0801020d
2655+#define OID_ATM_CALL_NOTIFY 0x0801020e
2656+
2657+#define OID_ATM_MY_IP_NM_ADDRESS 0x0801020f
2658+
2659+#define OID_ATM_RCV_CELLS_OK 0x08020101
2660+#define OID_ATM_XMIT_CELLS_OK 0x08020102
2661+#define OID_ATM_RCV_CELLS_DROPPED 0x08020103
2662+
2663+#define OID_ATM_RCV_INVALID_VPI_VCI 0x08020201
2664+#define OID_ATM_CELLS_HEC_ERROR 0x08020202
2665+#define OID_ATM_RCV_REASSEMBLY_ERROR 0x08020203
2666+
2667+#define OID_802_11_BSSID 0x0d010101
2668+#define OID_802_11_SSID 0x0d010102
2669+#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0d010203
2670+#define OID_802_11_NETWORK_TYPE_IN_USE 0x0d010204
2671+#define OID_802_11_TX_POWER_LEVEL 0x0d010205
2672+#define OID_802_11_RSSI 0x0d010206
2673+#define OID_802_11_RSSI_TRIGGER 0x0d010207
2674+#define OID_802_11_INFRASTRUCTURE_MODE 0x0d010108
2675+#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0d010209
2676+#define OID_802_11_RTS_THRESHOLD 0x0d01020a
2677+#define OID_802_11_NUMBER_OF_ANTENNAS 0x0d01020b
2678+#define OID_802_11_RX_ANTENNA_SELECTED 0x0d01020c
2679+#define OID_802_11_TX_ANTENNA_SELECTED 0x0d01020d
2680+#define OID_802_11_SUPPORTED_RATES 0x0d01020e
2681+#define OID_802_11_DESIRED_RATES 0x0d010210
2682+#define OID_802_11_CONFIGURATION 0x0d010211
2683+#define OID_802_11_STATISTICS 0x0d020212
2684+#define OID_802_11_ADD_WEP 0x0d010113
2685+#define OID_802_11_REMOVE_WEP 0x0d010114
2686+#define OID_802_11_DISASSOCIATE 0x0d010115
2687+#define OID_802_11_POWER_MODE 0x0d010216
2688+#define OID_802_11_BSSID_LIST 0x0d010217
2689+#define OID_802_11_AUTHENTICATION_MODE 0x0d010118
2690+#define OID_802_11_PRIVACY_FILTER 0x0d010119
2691+#define OID_802_11_BSSID_LIST_SCAN 0x0d01011a
2692+#define OID_802_11_WEP_STATUS 0x0d01011b
2693+
2694+#define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS
2695+#define OID_802_11_RELOAD_DEFAULTS 0x0d01011c
2696+
2697+#define OID_802_11_ADD_KEY 0x0d01011d
2698+#define OID_802_11_REMOVE_KEY 0x0d01011e
2699+#define OID_802_11_ASSOCIATION_INFORMATION 0x0d01011f
2700+#define OID_802_11_TEST 0x0d010120
2701+#define OID_802_11_MEDIA_STREAM_MODE 0x0d010121
2702+#define OID_802_11_CAPABILITY 0x0d010122
2703+#define OID_802_11_PMKID 0x0d010123
2704+#define OID_802_11_NON_BCAST_SSID_LIST 0x0d010124
2705+#define OID_802_11_RADIO_STATUS 0x0d010125
2706+
2707+#define NDIS_ETH_TYPE_IPV4 0x0800
2708+#define NDIS_ETH_TYPE_ARP 0x0806
2709+#define NDIS_ETH_TYPE_IPV6 0x86dd
2710+#define NDIS_ETH_TYPE_802_1X 0x888e
2711+#define NDIS_ETH_TYPE_802_1Q 0x8100
2712+#define NDIS_ETH_TYPE_SLOW_PROTOCOL 0x8809
2713+
2714+#define NDIS_802_11_LENGTH_SSID 32
2715+#define NDIS_802_11_LENGTH_RATES 8
2716+#define NDIS_802_11_LENGTH_RATES_EX 16
2717+
2718+#define NDIS_802_11_AUTH_REQUEST_REAUTH 0x01
2719+#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE 0x02
2720+#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR 0x06
2721+#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR 0x0e
2722+#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS 0x0f
2723+
2724+#define NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED 0x01
2725+
2726+#define NDIS_802_11_AI_REQFI_CAPABILITIES 1
2727+#define NDIS_802_11_AI_REQFI_LISTENINTERVAL 2
2728+#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS 4
2729+
2730+#define NDIS_802_11_AI_RESFI_CAPABILITIES 1
2731+#define NDIS_802_11_AI_RESFI_STATUSCODE 2
2732+#define NDIS_802_11_AI_RESFI_ASSOCIATIONID 4
2733+
2734+ typedef enum _NDIS_802_11_STATUS_TYPE {
2735+ Ndis802_11StatusType_Authentication,
2736+ Ndis802_11StatusType_MediaStreamMode,
2737+ Ndis802_11StatusType_PMKID_CandidateList,
2738+ Ndis802_11StatusTypeMax
2739+ } NDIS_802_11_STATUS_TYPE, *PNDIS_802_11_STATUS_TYPE;
2740+
2741+ typedef UCHAR NDIS_802_11_MAC_ADDRESS[6];
2742+
2743+ typedef struct _NDIS_802_11_STATUS_INDICATION {
2744+ NDIS_802_11_STATUS_TYPE StatusType;
2745+ } NDIS_802_11_STATUS_INDICATION, *PNDIS_802_11_STATUS_INDICATION;
2746+
2747+ typedef struct _NDIS_802_11_AUTHENTICATION_REQUEST {
2748+ ULONG Length;
2749+ NDIS_802_11_MAC_ADDRESS Bssid;
2750+ ULONG Flags;
2751+ } NDIS_802_11_AUTHENTICATION_REQUEST, *PNDIS_802_11_AUTHENTICATION_REQUEST;
2752+
2753+ typedef struct _PMKID_CANDIDATE {
2754+ NDIS_802_11_MAC_ADDRESS BSSID;
2755+ ULONG Flags;
2756+ } PMKID_CANDIDATE, *PPMKID_CANDIDATE;
2757+
2758+ typedef struct _NDIS_802_11_PMKID_CANDIDATE_LIST {
2759+ ULONG Version;
2760+ ULONG NumCandidates;
2761+ PMKID_CANDIDATE CandidateList[1];
2762+ } NDIS_802_11_PMKID_CANDIDATE_LIST, *PNDIS_802_11_PMKID_CANDIDATE_LIST;
2763+
2764+ typedef enum _NDIS_802_11_NETWORK_TYPE {
2765+ Ndis802_11FH,
2766+ Ndis802_11DS,
2767+ Ndis802_11OFDM5,
2768+ Ndis802_11OFDM24,
2769+ Ndis802_11Automode,
2770+ Ndis802_11NetworkTypeMax
2771+ } NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE;
2772+
2773+ typedef struct _NDIS_802_11_NETWORK_TYPE_LIST {
2774+ ULONG NumberOfItems;
2775+ NDIS_802_11_NETWORK_TYPE NetworkType [1];
2776+ } NDIS_802_11_NETWORK_TYPE_LIST, *PNDIS_802_11_NETWORK_TYPE_LIST;
2777+
2778+ typedef enum _NDIS_802_11_POWER_MODE {
2779+ Ndis802_11PowerModeCAM,
2780+ Ndis802_11PowerModeMAX_PSP,
2781+ Ndis802_11PowerModeFast_PSP,
2782+ Ndis802_11PowerModeMax
2783+ } NDIS_802_11_POWER_MODE, *PNDIS_802_11_POWER_MODE;
2784+
2785+ typedef ULONG NDIS_802_11_TX_POWER_LEVEL;
2786+ typedef LONG NDIS_802_11_RSSI;
2787+
2788+ typedef struct _NDIS_802_11_CONFIGURATION_FH {
2789+ ULONG Length;
2790+ ULONG HopPattern;
2791+ ULONG HopSet;
2792+ ULONG DwellTime;
2793+ } NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH;
2794+
2795+ typedef struct _NDIS_802_11_CONFIGURATION {
2796+ ULONG Length;
2797+ ULONG BeaconPeriod;
2798+ ULONG ATIMWindow;
2799+ ULONG DSConfig;
2800+ NDIS_802_11_CONFIGURATION_FH FHConfig;
2801+ } NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION;
2802+
2803+ typedef struct _NDIS_802_11_STATISTICS {
2804+ ULONG Length;
2805+ LARGE_INTEGER TransmittedFragmentCount;
2806+ LARGE_INTEGER MulticastTransmittedFrameCount;
2807+ LARGE_INTEGER FailedCount;
2808+ LARGE_INTEGER RetryCount;
2809+ LARGE_INTEGER MultipleRetryCount;
2810+ LARGE_INTEGER RTSSuccessCount;
2811+ LARGE_INTEGER RTSFailureCount;
2812+ LARGE_INTEGER ACKFailureCount;
2813+ LARGE_INTEGER FrameDuplicateCount;
2814+ LARGE_INTEGER ReceivedFragmentCount;
2815+ LARGE_INTEGER MulticastReceivedFrameCount;
2816+ LARGE_INTEGER FCSErrorCount;
2817+ LARGE_INTEGER TKIPLocalMICFailures;
2818+ LARGE_INTEGER TKIPICVErrorCount;
2819+ LARGE_INTEGER TKIPCounterMeasuresInvoked;
2820+ LARGE_INTEGER TKIPReplays;
2821+ LARGE_INTEGER CCMPFormatErrors;
2822+ LARGE_INTEGER CCMPReplays;
2823+ LARGE_INTEGER CCMPDecryptErrors;
2824+ LARGE_INTEGER FourWayHandshakeFailures;
2825+ LARGE_INTEGER WEPUndecryptableCount;
2826+ LARGE_INTEGER WEPICVErrorCount;
2827+ LARGE_INTEGER DecryptSuccessCount;
2828+ LARGE_INTEGER DecryptFailureCount;
2829+ } NDIS_802_11_STATISTICS, *PNDIS_802_11_STATISTICS;
2830+
2831+ typedef ULONG NDIS_802_11_KEY_INDEX;
2832+ typedef ULONGLONG NDIS_802_11_KEY_RSC;
2833+
2834+ typedef struct _NDIS_802_11_KEY {
2835+ ULONG Length;
2836+ ULONG KeyIndex;
2837+ ULONG KeyLength;
2838+ NDIS_802_11_MAC_ADDRESS BSSID;
2839+ NDIS_802_11_KEY_RSC KeyRSC;
2840+ UCHAR KeyMaterial[1];
2841+ } NDIS_802_11_KEY, *PNDIS_802_11_KEY;
2842+
2843+ typedef struct _NDIS_802_11_REMOVE_KEY {
2844+ ULONG Length;
2845+ ULONG KeyIndex;
2846+ NDIS_802_11_MAC_ADDRESS BSSID;
2847+ } NDIS_802_11_REMOVE_KEY, *PNDIS_802_11_REMOVE_KEY;
2848+ typedef struct _NDIS_802_11_WEP {
2849+ ULONG Length;
2850+ ULONG KeyIndex;
2851+ ULONG KeyLength;
2852+ UCHAR KeyMaterial[1];
2853+ } NDIS_802_11_WEP, *PNDIS_802_11_WEP;
2854+
2855+ typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE {
2856+ Ndis802_11IBSS,
2857+ Ndis802_11Infrastructure,
2858+ Ndis802_11AutoUnknown,
2859+ Ndis802_11InfrastructureMax
2860+ } NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE;
2861+
2862+ typedef enum _NDIS_802_11_AUTHENTICATION_MODE {
2863+ Ndis802_11AuthModeOpen,
2864+ Ndis802_11AuthModeShared,
2865+ Ndis802_11AuthModeAutoSwitch,
2866+ Ndis802_11AuthModeWPA,
2867+ Ndis802_11AuthModeWPAPSK,
2868+ Ndis802_11AuthModeWPANone,
2869+ Ndis802_11AuthModeWPA2,
2870+ Ndis802_11AuthModeWPA2PSK,
2871+ Ndis802_11AuthModeMax
2872+ } NDIS_802_11_AUTHENTICATION_MODE, *PNDIS_802_11_AUTHENTICATION_MODE;
2873+
2874+ typedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES];
2875+ typedef UCHAR NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX];
2876+
2877+ typedef struct _NDIS_802_11_SSID {
2878+ ULONG SsidLength;
2879+ UCHAR Ssid[NDIS_802_11_LENGTH_SSID];
2880+ } NDIS_802_11_SSID, *PNDIS_802_11_SSID;
2881+
2882+ typedef struct _NDIS_WLAN_BSSID {
2883+ ULONG Length;
2884+ NDIS_802_11_MAC_ADDRESS MacAddress;
2885+ UCHAR Reserved[2];
2886+ NDIS_802_11_SSID Ssid;
2887+ ULONG Privacy;
2888+ NDIS_802_11_RSSI Rssi;
2889+ NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
2890+ NDIS_802_11_CONFIGURATION Configuration;
2891+ NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
2892+ NDIS_802_11_RATES SupportedRates;
2893+ } NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID;
2894+
2895+ typedef struct _NDIS_802_11_BSSID_LIST {
2896+ ULONG NumberOfItems;
2897+ NDIS_WLAN_BSSID Bssid[1];
2898+ } NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST;
2899+
2900+ typedef struct _NDIS_WLAN_BSSID_EX {
2901+ ULONG Length;
2902+ NDIS_802_11_MAC_ADDRESS MacAddress;
2903+ UCHAR Reserved[2];
2904+ NDIS_802_11_SSID Ssid;
2905+ ULONG Privacy;
2906+ NDIS_802_11_RSSI Rssi;
2907+ NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
2908+ NDIS_802_11_CONFIGURATION Configuration;
2909+ NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
2910+ NDIS_802_11_RATES_EX SupportedRates;
2911+ ULONG IELength;
2912+ UCHAR IEs[1];
2913+ } NDIS_WLAN_BSSID_EX, *PNDIS_WLAN_BSSID_EX;
2914+
2915+ typedef struct _NDIS_802_11_BSSID_LIST_EX {
2916+ ULONG NumberOfItems;
2917+ NDIS_WLAN_BSSID_EX Bssid[1];
2918+ } NDIS_802_11_BSSID_LIST_EX, *PNDIS_802_11_BSSID_LIST_EX;
2919+
2920+ typedef struct _NDIS_802_11_FIXED_IEs {
2921+ UCHAR Timestamp[8];
2922+ USHORT BeaconInterval;
2923+ USHORT Capabilities;
2924+ } NDIS_802_11_FIXED_IEs, *PNDIS_802_11_FIXED_IEs;
2925+
2926+ typedef struct _NDIS_802_11_VARIABLE_IEs {
2927+ UCHAR ElementID;
2928+ UCHAR Length;
2929+ UCHAR data[1];
2930+ } NDIS_802_11_VARIABLE_IEs, *PNDIS_802_11_VARIABLE_IEs;
2931+
2932+ typedef ULONG NDIS_802_11_FRAGMENTATION_THRESHOLD;
2933+ typedef ULONG NDIS_802_11_RTS_THRESHOLD;
2934+ typedef ULONG NDIS_802_11_ANTENNA;
2935+
2936+ typedef enum _NDIS_802_11_PRIVACY_FILTER {
2937+ Ndis802_11PrivFilterAcceptAll,
2938+ Ndis802_11PrivFilter8021xWEP
2939+ } NDIS_802_11_PRIVACY_FILTER, *PNDIS_802_11_PRIVACY_FILTER;
2940+
2941+ typedef enum _NDIS_802_11_WEP_STATUS {
2942+ Ndis802_11WEPEnabled,
2943+ Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,
2944+ Ndis802_11WEPDisabled,
2945+ Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,
2946+ Ndis802_11WEPKeyAbsent,
2947+ Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,
2948+ Ndis802_11WEPNotSupported,
2949+ Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,
2950+ Ndis802_11Encryption2Enabled,
2951+ Ndis802_11Encryption2KeyAbsent,
2952+ Ndis802_11Encryption3Enabled,
2953+ Ndis802_11Encryption3KeyAbsent
2954+ } NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS, NDIS_802_11_ENCRYPTION_STATUS, *PNDIS_802_11_ENCRYPTION_STATUS;
2955+
2956+ typedef enum _NDIS_802_11_RELOAD_DEFAULTS {
2957+ Ndis802_11ReloadWEPKeys
2958+ } NDIS_802_11_RELOAD_DEFAULTS, *PNDIS_802_11_RELOAD_DEFAULTS;
2959+
2960+ typedef struct _NDIS_802_11_AI_REQFI {
2961+ USHORT Capabilities;
2962+ USHORT ListenInterval;
2963+ NDIS_802_11_MAC_ADDRESS CurrentAPAddress;
2964+ } NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI;
2965+
2966+ typedef struct _NDIS_802_11_AI_RESFI {
2967+ USHORT Capabilities;
2968+ USHORT StatusCode;
2969+ USHORT AssociationId;
2970+ } NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI;
2971+
2972+ typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION {
2973+ ULONG Length;
2974+ USHORT AvailableRequestFixedIEs;
2975+ NDIS_802_11_AI_REQFI RequestFixedIEs;
2976+ ULONG RequestIELength;
2977+ ULONG OffsetRequestIEs;
2978+ USHORT AvailableResponseFixedIEs;
2979+ NDIS_802_11_AI_RESFI ResponseFixedIEs;
2980+ ULONG ResponseIELength;
2981+ ULONG OffsetResponseIEs;
2982+ } NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION;
2983+
2984+ typedef struct _NDIS_802_11_AUTHENTICATION_EVENT {
2985+ NDIS_802_11_STATUS_INDICATION Status;
2986+ NDIS_802_11_AUTHENTICATION_REQUEST Request[1];
2987+ } NDIS_802_11_AUTHENTICATION_EVENT, *PNDIS_802_11_AUTHENTICATION_EVENT;
2988+
2989+ typedef struct _NDIS_802_11_TEST {
2990+ ULONG Length;
2991+ ULONG Type;
2992+ _ANONYMOUS_UNION union {
2993+ NDIS_802_11_AUTHENTICATION_EVENT AuthenticationEvent;
2994+ NDIS_802_11_RSSI RssiTrigger;
2995+ };
2996+ } NDIS_802_11_TEST, *PNDIS_802_11_TEST;
2997+
2998+ typedef enum _NDIS_802_11_MEDIA_STREAM_MODE {
2999+ Ndis802_11MediaStreamOff,
3000+ Ndis802_11MediaStreamOn,
3001+ } NDIS_802_11_MEDIA_STREAM_MODE, *PNDIS_802_11_MEDIA_STREAM_MODE;
3002+
3003+ typedef UCHAR NDIS_802_11_PMKID_VALUE[16];
3004+
3005+ typedef struct _BSSID_INFO {
3006+ NDIS_802_11_MAC_ADDRESS BSSID;
3007+ NDIS_802_11_PMKID_VALUE PMKID;
3008+ } BSSID_INFO, *PBSSID_INFO;
3009+
3010+ typedef struct _NDIS_802_11_PMKID {
3011+ ULONG Length;
3012+ ULONG BSSIDInfoCount;
3013+ BSSID_INFO BSSIDInfo[1];
3014+ } NDIS_802_11_PMKID, *PNDIS_802_11_PMKID;
3015+
3016+ typedef struct _NDIS_802_11_AUTHENTICATION_ENCRYPTION {
3017+ NDIS_802_11_AUTHENTICATION_MODE AuthModeSupported;
3018+ NDIS_802_11_ENCRYPTION_STATUS EncryptStatusSupported;
3019+ } NDIS_802_11_AUTHENTICATION_ENCRYPTION, *PNDIS_802_11_AUTHENTICATION_ENCRYPTION;
3020+
3021+ typedef struct _NDIS_802_11_CAPABILITY {
3022+ ULONG Length;
3023+ ULONG Version;
3024+ ULONG NoOfPMKIDs;
3025+ ULONG NoOfAuthEncryptPairsSupported;
3026+ NDIS_802_11_AUTHENTICATION_ENCRYPTION AuthenticationEncryptionSupported[1];
3027+ } NDIS_802_11_CAPABILITY, *PNDIS_802_11_CAPABILITY;
3028+
3029+ typedef struct _NDIS_802_11_NON_BCAST_SSID_LIST {
3030+ ULONG NumberOfItems;
3031+ NDIS_802_11_SSID Non_Bcast_Ssid[1];
3032+ } NDIS_802_11_NON_BCAST_SSID_LIST, *PNDIS_802_11_NON_BCAST_SSID_LIST;
3033+
3034+ typedef enum _NDIS_802_11_RADIO_STATUS {
3035+ Ndis802_11RadioStatusOn,
3036+ Ndis802_11RadioStatusHardwareOff,
3037+ Ndis802_11RadioStatusSoftwareOff,
3038+ Ndis802_11RadioStatusHardwareSoftwareOff,
3039+ Ndis802_11RadioStatusMax
3040+ } NDIS_802_11_RADIO_STATUS, *PNDIS_802_11_RADIO_STATUS;
3041+
3042+#define OID_IRDA_RECEIVING 0x0a010100
3043+#define OID_IRDA_TURNAROUND_TIME 0x0a010101
3044+#define OID_IRDA_SUPPORTED_SPEEDS 0x0a010102
3045+#define OID_IRDA_LINK_SPEED 0x0a010103
3046+#define OID_IRDA_MEDIA_BUSY 0x0a010104
3047+
3048+#define OID_IRDA_EXTRA_RCV_BOFS 0x0a010200
3049+#define OID_IRDA_RATE_SNIFF 0x0a010201
3050+#define OID_IRDA_UNICAST_LIST 0x0a010202
3051+#define OID_IRDA_MAX_UNICAST_LIST_SIZE 0x0a010203
3052+#define OID_IRDA_MAX_RECEIVE_WINDOW_SIZE 0x0a010204
3053+#define OID_IRDA_MAX_SEND_WINDOW_SIZE 0x0a010205
3054+#define OID_IRDA_RESERVED1 0x0a01020a
3055+#define OID_IRDA_RESERVED2 0x0a01020f
3056+
3057+#define OID_1394_LOCAL_NODE_INFO 0x0c010101
3058+#define OID_1394_VC_INFO 0x0c010102
3059+
3060+#define OID_CO_ADD_PVC 0xfe000001
3061+#define OID_CO_DELETE_PVC 0xfe000002
3062+#define OID_CO_GET_CALL_INFORMATION 0xfe000003
3063+#define OID_CO_ADD_ADDRESS 0xfe000004
3064+#define OID_CO_DELETE_ADDRESS 0xfe000005
3065+#define OID_CO_GET_ADDRESSES 0xfe000006
3066+#define OID_CO_ADDRESS_CHANGE 0xfe000007
3067+#define OID_CO_SIGNALING_ENABLED 0xfe000008
3068+#define OID_CO_SIGNALING_DISABLED 0xfe000009
3069+#define OID_CO_AF_CLOSE 0xfe00000a
3070+
3071+#define OID_CO_TAPI_CM_CAPS 0xfe001001
3072+#define OID_CO_TAPI_LINE_CAPS 0xfe001002
3073+#define OID_CO_TAPI_ADDRESS_CAPS 0xfe001003
3074+#define OID_CO_TAPI_TRANSLATE_TAPI_CALLPARAMS 0xfe001004
3075+#define OID_CO_TAPI_TRANSLATE_NDIS_CALLPARAMS 0xfe001005
3076+#define OID_CO_TAPI_TRANSLATE_TAPI_SAP 0xfe001006
3077+#define OID_CO_TAPI_GET_CALL_DIAGNOSTICS 0xfe001007
3078+#define OID_CO_TAPI_REPORT_DIGITS 0xfe001008
3079+#define OID_CO_TAPI_DONT_REPORT_DIGITS 0xfe001009
3080+
3081+#define OID_PNP_CAPABILITIES 0xfd010100
3082+#define OID_PNP_SET_POWER 0xfd010101
3083+#define OID_PNP_QUERY_POWER 0xfd010102
3084+#define OID_PNP_ADD_WAKE_UP_PATTERN 0xfd010103
3085+#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xfd010104
3086+#define OID_PNP_WAKE_UP_PATTERN_LIST 0xfd010105
3087+#define OID_PNP_ENABLE_WAKE_UP 0xfd010106
3088+
3089+#define OID_PNP_WAKE_UP_OK 0xfd020200
3090+#define OID_PNP_WAKE_UP_ERROR 0xfd020201
3091+
3092+#if (NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620)
3093+#define OID_PM_CURRENT_CAPABILITIES 0xfd010107
3094+#define OID_PM_HARDWARE_CAPABILITIES 0xfd010108
3095+#define OID_PM_PARAMETERS 0xfd010109
3096+#define OID_PM_ADD_WOL_PATTERN 0xfd01010a
3097+#define OID_PM_REMOVE_WOL_PATTERN 0xfd01010b
3098+#define OID_PM_WOL_PATTERN_LIST 0xfd01010c
3099+#define OID_PM_ADD_PROTOCOL_OFFLOAD 0xfd01010d
3100+#define OID_PM_GET_PROTOCOL_OFFLOAD 0xfd01010e
3101+#define OID_PM_REMOVE_PROTOCOL_OFFLOAD 0xfd01010f
3102+#define OID_PM_PROTOCOL_OFFLOAD_LIST 0xfd010110
3103+#define OID_PM_RESERVED_1 0xfd010111
3104+
3105+#define OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES 0x00010221
3106+#define OID_RECEIVE_FILTER_GLOBAL_PARAMETERS 0x00010222
3107+#define OID_RECEIVE_FILTER_ALLOCATE_QUEUE 0x00010223
3108+#define OID_RECEIVE_FILTER_FREE_QUEUE 0x00010224
3109+#define OID_RECEIVE_FILTER_ENUM_QUEUES 0x00010225
3110+#define OID_RECEIVE_FILTER_QUEUE_PARAMETERS 0x00010226
3111+#define OID_RECEIVE_FILTER_SET_FILTER 0x00010227
3112+#define OID_RECEIVE_FILTER_CLEAR_FILTER 0x00010228
3113+#define OID_RECEIVE_FILTER_ENUM_FILTERS 0x00010229
3114+#define OID_RECEIVE_FILTER_PARAMETERS 0x0001022a
3115+#define OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE 0x0001022b
3116+#define OID_RECEIVE_FILTER_CURRENT_CAPABILITIES 0x0001022d
3117+#define OID_NIC_SWITCH_HARDWARE_CAPABILITIES 0x0001022e
3118+#define OID_NIC_SWITCH_CURRENT_CAPABILITIES 0x0001022f
3119+#if NDIS_SUPPORT_NDIS630
3120+#define OID_RECEIVE_FILTER_MOVE_FILTER 0x00010230
3121+#endif
3122+#define OID_VLAN_RESERVED1 0x00010231
3123+#define OID_VLAN_RESERVED2 0x00010232
3124+#define OID_VLAN_RESERVED3 0x00010233
3125+#define OID_VLAN_RESERVED4 0x00010234
3126+#if NDIS_SUPPORT_NDIS630
3127+#define OID_PACKET_COALESCING_FILTER_MATCH_COUNT 0x00010235
3128+#endif
3129+#endif
3130+
3131+#if NTDDI_VERSION >= 0x06020000 || NDIS_SUPPORT_NDIS630
3132+#define OID_NIC_SWITCH_CREATE_SWITCH 0x00010237
3133+#define OID_NIC_SWITCH_PARAMETERS 0x00010238
3134+#define OID_NIC_SWITCH_DELETE_SWITCH 0x00010239
3135+#define OID_NIC_SWITCH_ENUM_SWITCHES 0x00010240
3136+#define OID_NIC_SWITCH_CREATE_VPORT 0x00010241
3137+#define OID_NIC_SWITCH_VPORT_PARAMETERS 0x00010242
3138+#define OID_NIC_SWITCH_ENUM_VPORTS 0x00010243
3139+#define OID_NIC_SWITCH_DELETE_VPORT 0x00010244
3140+#define OID_NIC_SWITCH_ALLOCATE_VF 0x00010245
3141+#define OID_NIC_SWITCH_FREE_VF 0x00010246
3142+#define OID_NIC_SWITCH_VF_PARAMETERS 0x00010247
3143+#define OID_NIC_SWITCH_ENUM_VFS 0x00010248
3144+
3145+#define OID_SRIOV_HARDWARE_CAPABILITIES 0x00010249
3146+#define OID_SRIOV_CURRENT_CAPABILITIES 0x00010250
3147+#define OID_SRIOV_READ_VF_CONFIG_SPACE 0x00010251
3148+#define OID_SRIOV_WRITE_VF_CONFIG_SPACE 0x00010252
3149+#define OID_SRIOV_READ_VF_CONFIG_BLOCK 0x00010253
3150+#define OID_SRIOV_WRITE_VF_CONFIG_BLOCK 0x00010254
3151+#define OID_SRIOV_RESET_VF 0x00010255
3152+#define OID_SRIOV_SET_VF_POWER_STATE 0x00010256
3153+#define OID_SRIOV_VF_VENDOR_DEVICE_ID 0x00010257
3154+#define OID_SRIOV_PROBED_BARS 0x00010258
3155+#define OID_SRIOV_BAR_RESOURCES 0x00010259
3156+#define OID_SRIOV_PF_LUID 0x00010260
3157+
3158+#define OID_SRIOV_CONFIG_STATE 0x00010261
3159+#define OID_SRIOV_VF_SERIAL_NUMBER 0x00010262
3160+#define OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK 0x00010269
3161+
3162+#define OID_SWITCH_PROPERTY_ADD 0x00010263
3163+#define OID_SWITCH_PROPERTY_UPDATE 0x00010264
3164+#define OID_SWITCH_PROPERTY_DELETE 0x00010265
3165+#define OID_SWITCH_PROPERTY_ENUM 0x00010266
3166+#define OID_SWITCH_FEATURE_STATUS_QUERY 0x00010267
3167+
3168+#define OID_SWITCH_NIC_REQUEST 0x00010270
3169+#define OID_SWITCH_PORT_PROPERTY_ADD 0x00010271
3170+#define OID_SWITCH_PORT_PROPERTY_UPDATE 0x00010272
3171+#define OID_SWITCH_PORT_PROPERTY_DELETE 0x00010273
3172+#define OID_SWITCH_PORT_PROPERTY_ENUM 0x00010274
3173+#define OID_SWITCH_PARAMETERS 0x00010275
3174+#define OID_SWITCH_PORT_ARRAY 0x00010276
3175+#define OID_SWITCH_NIC_ARRAY 0x00010277
3176+#define OID_SWITCH_PORT_CREATE 0x00010278
3177+#define OID_SWITCH_PORT_DELETE 0x00010279
3178+#define OID_SWITCH_NIC_CREATE 0x0001027a
3179+#define OID_SWITCH_NIC_CONNECT 0x0001027b
3180+#define OID_SWITCH_NIC_DISCONNECT 0x0001027c
3181+#define OID_SWITCH_NIC_DELETE 0x0001027d
3182+#define OID_SWITCH_PORT_FEATURE_STATUS_QUERY 0x0001027e
3183+#define OID_SWITCH_PORT_TEARDOWN 0x0001027f
3184+#define OID_SWITCH_NIC_SAVE 0x00010290
3185+#define OID_SWITCH_NIC_SAVE_COMPLETE 0x00010291
3186+#define OID_SWITCH_NIC_RESTORE 0x00010292
3187+#define OID_SWITCH_NIC_RESTORE_COMPLETE 0x00010293
3188+#define OID_SWITCH_NIC_UPDATED 0x00010294
3189+#define OID_SWITCH_PORT_UPDATED 0x00010295
3190+#endif
3191+
3192+#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001
3193+#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002
3194+#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004
3195+
3196+#define OID_TCP_TASK_OFFLOAD 0xfc010201
3197+#define OID_TCP_TASK_IPSEC_ADD_SA 0xfc010202
3198+#define OID_TCP_TASK_IPSEC_DELETE_SA 0xfc010203
3199+#define OID_TCP_SAN_SUPPORT 0xfc010204
3200+#define OID_TCP_TASK_IPSEC_ADD_UDPESP_SA 0xfc010205
3201+#define OID_TCP_TASK_IPSEC_DELETE_UDPESP_SA 0xfc010206
3202+#define OID_TCP4_OFFLOAD_STATS 0xfc010207
3203+#define OID_TCP6_OFFLOAD_STATS 0xfc010208
3204+#define OID_IP4_OFFLOAD_STATS 0xfc010209
3205+#define OID_IP6_OFFLOAD_STATS 0xfc01020a
3206+
3207+#define OID_TCP_OFFLOAD_CURRENT_CONFIG 0xfc01020b
3208+#define OID_TCP_OFFLOAD_PARAMETERS 0xfc01020c
3209+#define OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES 0xfc01020d
3210+#define OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG 0xfc01020e
3211+#define OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 0xfc01020f
3212+#define OID_OFFLOAD_ENCAPSULATION 0x0101010a
3213+
3214+#if NDIS_SUPPORT_NDIS61
3215+#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA 0xfc030202
3216+#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA 0xfc030203
3217+#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_SA 0xfc030204
3218+#endif
3219+#if NDIS_SUPPORT_NDIS630
3220+#define OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX 0xfc030205
3221+#endif
3222+
3223+#define OID_FFP_SUPPORT 0xfc010210
3224+#define OID_FFP_FLUSH 0xfc010211
3225+#define OID_FFP_CONTROL 0xfc010212
3226+#define OID_FFP_PARAMS 0xfc010213
3227+#define OID_FFP_DATA 0xfc010214
3228+
3229+#define OID_FFP_DRIVER_STATS 0xfc020210
3230+#define OID_FFP_ADAPTER_STATS 0xfc020211
3231+
3232+#define OID_TCP_CONNECTION_OFFLOAD_PARAMETERS 0xfc030201
3233+
3234+#if NTDDI_VERSION >= 0x06010000 || NDIS_SUPPORT_NDIS620
3235+#define OID_TUNNEL_INTERFACE_SET_OID 0x0f010106
3236+#define OID_TUNNEL_INTERFACE_RELEASE_OID 0x0f010107
3237+#endif
3238+
3239+#define OID_QOS_RESERVED1 0xfb010100
3240+#define OID_QOS_RESERVED2 0xfb010101
3241+#define OID_QOS_RESERVED3 0xfb010102
3242+#define OID_QOS_RESERVED4 0xfb010103
3243+#define OID_QOS_RESERVED5 0xfb010104
3244+#define OID_QOS_RESERVED6 0xfb010105
3245+#define OID_QOS_RESERVED7 0xfb010106
3246+#define OID_QOS_RESERVED8 0xfb010107
3247+#define OID_QOS_RESERVED9 0xfb010108
3248+#define OID_QOS_RESERVED10 0xfb010109
3249+#define OID_QOS_RESERVED11 0xfb01010a
3250+#define OID_QOS_RESERVED12 0xfb01010b
3251+#define OID_QOS_RESERVED13 0xfb01010c
3252+#define OID_QOS_RESERVED14 0xfb01010d
3253+#define OID_QOS_RESERVED15 0xfb01010e
3254+#define OID_QOS_RESERVED16 0xfb01010f
3255+#define OID_QOS_RESERVED17 0xfb010110
3256+#define OID_QOS_RESERVED18 0xfb010111
3257+#define OID_QOS_RESERVED19 0xfb010112
3258+#define OID_QOS_RESERVED20 0xfb010113
3259+
3260+#define OFFLOAD_MAX_SAS 3
3261+
3262+#define OFFLOAD_INBOUND_SA 0x0001
3263+#define OFFLOAD_OUTBOUND_SA 0x0002
3264+
3265+ typedef struct NDIS_CO_DEVICE_PROFILE {
3266+ NDIS_VAR_DATA_DESC DeviceDescription;
3267+ NDIS_VAR_DATA_DESC DevSpecificInfo;
3268+ ULONG ulTAPISupplementaryPassThru;
3269+ ULONG ulAddressModes;
3270+ ULONG ulNumAddresses;
3271+ ULONG ulBearerModes;
3272+ ULONG ulMaxTxRate;
3273+ ULONG ulMinTxRate;
3274+ ULONG ulMaxRxRate;
3275+ ULONG ulMinRxRate;
3276+ ULONG ulMediaModes;
3277+ ULONG ulGenerateToneModes;
3278+ ULONG ulGenerateToneMaxNumFreq;
3279+ ULONG ulGenerateDigitModes;
3280+ ULONG ulMonitorToneMaxNumFreq;
3281+ ULONG ulMonitorToneMaxNumEntries;
3282+ ULONG ulMonitorDigitModes;
3283+ ULONG ulGatherDigitsMinTimeout;
3284+ ULONG ulGatherDigitsMaxTimeout;
3285+ ULONG ulDevCapFlags;
3286+ ULONG ulMaxNumActiveCalls;
3287+ ULONG ulAnswerMode;
3288+ ULONG ulUUIAcceptSize;
3289+ ULONG ulUUIAnswerSize;
3290+ ULONG ulUUIMakeCallSize;
3291+ ULONG ulUUIDropSize;
3292+ ULONG ulUUISendUserUserInfoSize;
3293+ ULONG ulUUICallInfoSize;
3294+ } NDIS_CO_DEVICE_PROFILE, *PNDIS_CO_DEVICE_PROFILE;
3295+
3296+#ifndef IP_EXPORT_INCLUDED
3297+ typedef ULONG IPAddr, IPMask;
3298+#endif
3299+ typedef ULONG SPI_TYPE;
3300+
3301+ typedef enum _OFFLOAD_OPERATION_E {
3302+ AUTHENTICATE = 1,
3303+ ENCRYPT
3304+ } OFFLOAD_OPERATION_E;
3305+
3306+ typedef struct _OFFLOAD_ALGO_INFO {
3307+ ULONG algoIdentifier;
3308+ ULONG algoKeylen;
3309+ ULONG algoRounds;
3310+ } OFFLOAD_ALGO_INFO, *POFFLOAD_ALGO_INFO;
3311+
3312+ typedef enum _OFFLOAD_CONF_ALGO {
3313+ OFFLOAD_IPSEC_CONF_NONE,
3314+ OFFLOAD_IPSEC_CONF_DES,
3315+ OFFLOAD_IPSEC_CONF_RESERVED,
3316+ OFFLOAD_IPSEC_CONF_3_DES,
3317+ OFFLOAD_IPSEC_CONF_MAX
3318+ } OFFLOAD_CONF_ALGO;
3319+
3320+ typedef enum _OFFLOAD_INTEGRITY_ALGO {
3321+ OFFLOAD_IPSEC_INTEGRITY_NONE,
3322+ OFFLOAD_IPSEC_INTEGRITY_MD5,
3323+ OFFLOAD_IPSEC_INTEGRITY_SHA,
3324+ OFFLOAD_IPSEC_INTEGRITY_MAX
3325+ } OFFLOAD_INTEGRITY_ALGO;
3326+
3327+ typedef struct _OFFLOAD_SECURITY_ASSOCIATION {
3328+ OFFLOAD_OPERATION_E Operation;
3329+ SPI_TYPE SPI;
3330+ OFFLOAD_ALGO_INFO IntegrityAlgo;
3331+ OFFLOAD_ALGO_INFO ConfAlgo;
3332+ OFFLOAD_ALGO_INFO Reserved;
3333+ } OFFLOAD_SECURITY_ASSOCIATION, *POFFLOAD_SECURITY_ASSOCIATION;
3334+
3335+ typedef struct _OFFLOAD_IPSEC_ADD_SA {
3336+ IPAddr SrcAddr;
3337+ IPMask SrcMask;
3338+ IPAddr DestAddr;
3339+ IPMask DestMask;
3340+ ULONG Protocol;
3341+ USHORT SrcPort;
3342+ USHORT DestPort;
3343+ IPAddr SrcTunnelAddr;
3344+ IPAddr DestTunnelAddr;
3345+ USHORT Flags;
3346+ SHORT NumSAs;
3347+ OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
3348+ HANDLE OffloadHandle;
3349+ ULONG KeyLen;
3350+ UCHAR KeyMat[1];
3351+ } OFFLOAD_IPSEC_ADD_SA, *POFFLOAD_IPSEC_ADD_SA;
3352+
3353+ typedef struct _OFFLOAD_IPSEC_DELETE_SA {
3354+ HANDLE OffloadHandle;
3355+ } OFFLOAD_IPSEC_DELETE_SA, *POFFLOAD_IPSEC_DELETE_SA;
3356+
3357+ typedef enum _UDP_ENCAP_TYPE {
3358+ OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_IKE,
3359+ OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_OTHER
3360+ } UDP_ENCAP_TYPE, *PUDP_ENCAP_TYPE;
3361+
3362+ typedef struct _OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY {
3363+ UDP_ENCAP_TYPE UdpEncapType;
3364+ USHORT DstEncapPort;
3365+ } OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY, *POFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY;
3366+
3367+ typedef struct _OFFLOAD_IPSEC_ADD_UDPESP_SA {
3368+ IPAddr SrcAddr;
3369+ IPMask SrcMask;
3370+ IPAddr DstAddr;
3371+ IPMask DstMask;
3372+ ULONG Protocol;
3373+ USHORT SrcPort;
3374+ USHORT DstPort;
3375+ IPAddr SrcTunnelAddr;
3376+ IPAddr DstTunnelAddr;
3377+ USHORT Flags;
3378+ SHORT NumSAs;
3379+ OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
3380+ HANDLE OffloadHandle;
3381+ OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY EncapTypeEntry;
3382+ HANDLE EncapTypeEntryOffldHandle;
3383+ ULONG KeyLen;
3384+ UCHAR KeyMat[1];
3385+ } OFFLOAD_IPSEC_ADD_UDPESP_SA, *POFFLOAD_IPSEC_ADD_UDPESP_SA;
3386+
3387+ typedef struct _OFFLOAD_IPSEC_DELETE_UDPESP_SA {
3388+ HANDLE OffloadHandle;
3389+ HANDLE EncapTypeEntryOffldHandle;
3390+ } OFFLOAD_IPSEC_DELETE_UDPESP_SA, *POFFLOAD_IPSEC_DELETE_UDPESP_SA;
3391+
3392+ typedef ULONG NDIS_VLAN_ID;
3393+
3394+ typedef enum _NDIS_MEDIUM {
3395+ NdisMedium802_3,
3396+ NdisMedium802_5,
3397+ NdisMediumFddi,
3398+ NdisMediumWan,
3399+ NdisMediumLocalTalk,
3400+ NdisMediumDix,
3401+ NdisMediumArcnetRaw,
3402+ NdisMediumArcnet878_2,
3403+ NdisMediumAtm,
3404+ NdisMediumWirelessWan,
3405+ NdisMediumIrda,
3406+ NdisMediumBpc,
3407+ NdisMediumCoWan,
3408+ NdisMedium1394,
3409+ NdisMediumInfiniBand,
3410+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
3411+ NdisMediumTunnel,
3412+ NdisMediumNative802_11,
3413+ NdisMediumLoopback,
3414+#endif
3415+#if NTDDI_VERSION >= 0x06010000
3416+ NdisMediumWiMAX,
3417+ NdisMediumIP,
3418+#endif
3419+ NdisMediumMax
3420+ } NDIS_MEDIUM, *PNDIS_MEDIUM;
3421+
3422+ typedef enum _NDIS_PHYSICAL_MEDIUM {
3423+ NdisPhysicalMediumUnspecified,
3424+ NdisPhysicalMediumWirelessLan,
3425+ NdisPhysicalMediumCableModem,
3426+ NdisPhysicalMediumPhoneLine,
3427+ NdisPhysicalMediumPowerLine,
3428+ NdisPhysicalMediumDSL,
3429+ NdisPhysicalMediumFibreChannel,
3430+ NdisPhysicalMedium1394,
3431+ NdisPhysicalMediumWirelessWan,
3432+ NdisPhysicalMediumNative802_11,
3433+ NdisPhysicalMediumBluetooth,
3434+ NdisPhysicalMediumInfiniband,
3435+ NdisPhysicalMediumWiMax,
3436+ NdisPhysicalMediumUWB,
3437+ NdisPhysicalMedium802_3,
3438+ NdisPhysicalMedium802_5,
3439+ NdisPhysicalMediumIrda,
3440+ NdisPhysicalMediumWiredWAN,
3441+ NdisPhysicalMediumWiredCoWan,
3442+ NdisPhysicalMediumOther,
3443+ NdisPhysicalMediumMax
3444+ } NDIS_PHYSICAL_MEDIUM, *PNDIS_PHYSICAL_MEDIUM;
3445+
3446+ typedef struct _TRANSPORT_HEADER_OFFSET {
3447+ USHORT ProtocolType;
3448+ USHORT HeaderOffset;
3449+ } TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;
3450+
3451+ typedef struct _NETWORK_ADDRESS {
3452+ USHORT AddressLength;
3453+ USHORT AddressType;
3454+ UCHAR Address[1];
3455+ } NETWORK_ADDRESS, *PNETWORK_ADDRESS;
3456+
3457+ typedef struct _NETWORK_ADDRESS_LIST {
3458+ LONG AddressCount;
3459+ USHORT AddressType;
3460+ NETWORK_ADDRESS Address[1];
3461+ } NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;
3462+
3463+ typedef struct _NETWORK_ADDRESS_IP {
3464+ USHORT sin_port;
3465+ ULONG in_addr;
3466+ UCHAR sin_zero[8];
3467+ } NETWORK_ADDRESS_IP, *PNETWORK_ADDRESS_IP;
3468+
3469+#define NDIS_PROTOCOL_ID_DEFAULT 0x00
3470+#define NDIS_PROTOCOL_ID_TCP_IP 0x02
3471+#define NDIS_PROTOCOL_ID_IPX 0x06
3472+#define NDIS_PROTOCOL_ID_NBF 0x07
3473+#define NDIS_PROTOCOL_ID_MAX 0x0f
3474+#define NDIS_PROTOCOL_ID_MASK 0x0f
3475+
3476+#define READABLE_LOCAL_CLOCK 0x00000001
3477+#define CLOCK_NETWORK_DERIVED 0x00000002
3478+#define CLOCK_PRECISION 0x00000004
3479+#define RECEIVE_TIME_INDICATION_CAPABLE 0x00000008
3480+#define TIMED_SEND_CAPABLE 0x00000010
3481+#define TIME_STAMP_CAPABLE 0x00000020
3482+
3483+#define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001
3484+#define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002
3485+#define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004
3486+
3487+#define WAN_PROTOCOL_KEEPS_STATS 0x00000001
3488+
3489+#define NETWORK_ADDRESS_LENGTH_IP sizeof (NETWORK_ADDRESS_IP)
3490+#define NETWORK_ADDRESS_LENGTH_IPX sizeof (NETWORK_ADDRESS_IPX)
3491+
3492+ typedef struct _NETWORK_ADDRESS_IPX {
3493+ ULONG NetworkAddress;
3494+ UCHAR NodeAddress[6];
3495+ USHORT Socket;
3496+ } NETWORK_ADDRESS_IPX, *PNETWORK_ADDRESS_IPX;
3497+
3498+ typedef enum _NDIS_HARDWARE_STATUS {
3499+ NdisHardwareStatusReady,
3500+ NdisHardwareStatusInitializing,
3501+ NdisHardwareStatusReset,
3502+ NdisHardwareStatusClosing,
3503+ NdisHardwareStatusNotReady
3504+ } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS;
3505+
3506+ typedef struct _GEN_GET_TIME_CAPS {
3507+ ULONG Flags;
3508+ ULONG ClockPrecision;
3509+ } GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;
3510+
3511+ typedef struct _GEN_GET_NETCARD_TIME {
3512+ ULONGLONG ReadTime;
3513+ } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME;
3514+
3515+ typedef struct _NDIS_PM_PACKET_PATTERN {
3516+ ULONG Priority;
3517+ ULONG Reserved;
3518+ ULONG MaskSize;
3519+ ULONG PatternOffset;
3520+ ULONG PatternSize;
3521+ ULONG PatternFlags;
3522+ } NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN;
3523+
3524+ typedef enum _NDIS_DEVICE_POWER_STATE {
3525+ NdisDeviceStateUnspecified = 0,
3526+ NdisDeviceStateD0,
3527+ NdisDeviceStateD1,
3528+ NdisDeviceStateD2,
3529+ NdisDeviceStateD3,
3530+ NdisDeviceStateMaximum
3531+ } NDIS_DEVICE_POWER_STATE, *PNDIS_DEVICE_POWER_STATE;
3532+
3533+ typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES {
3534+ NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
3535+ NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
3536+ NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
3537+ } NDIS_PM_WAKE_UP_CAPABILITIES, *PNDIS_PM_WAKE_UP_CAPABILITIES;
3538+
3539+ typedef struct _NDIS_PNP_CAPABILITIES {
3540+ ULONG Flags;
3541+ NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities;
3542+ } NDIS_PNP_CAPABILITIES, *PNDIS_PNP_CAPABILITIES;
3543+
3544+ typedef enum _NDIS_FDDI_ATTACHMENT_TYPE {
3545+ NdisFddiTypeIsolated = 1,
3546+ NdisFddiTypeLocalA,
3547+ NdisFddiTypeLocalB,
3548+ NdisFddiTypeLocalAB,
3549+ NdisFddiTypeLocalS,
3550+ NdisFddiTypeWrapA,
3551+ NdisFddiTypeWrapB,
3552+ NdisFddiTypeWrapAB,
3553+ NdisFddiTypeWrapS,
3554+ NdisFddiTypeCWrapA,
3555+ NdisFddiTypeCWrapB,
3556+ NdisFddiTypeCWrapS,
3557+ NdisFddiTypeThrough
3558+ } NDIS_FDDI_ATTACHMENT_TYPE, *PNDIS_FDDI_ATTACHMENT_TYPE;
3559+
3560+ typedef enum _NDIS_FDDI_RING_MGT_STATE {
3561+ NdisFddiRingIsolated = 1,
3562+ NdisFddiRingNonOperational,
3563+ NdisFddiRingOperational,
3564+ NdisFddiRingDetect,
3565+ NdisFddiRingNonOperationalDup,
3566+ NdisFddiRingOperationalDup,
3567+ NdisFddiRingDirected,
3568+ NdisFddiRingTrace
3569+ } NDIS_FDDI_RING_MGT_STATE, *PNDIS_FDDI_RING_MGT_STATE;
3570+
3571+ typedef enum _NDIS_FDDI_LCONNECTION_STATE {
3572+ NdisFddiStateOff = 1,
3573+ NdisFddiStateBreak,
3574+ NdisFddiStateTrace,
3575+ NdisFddiStateConnect,
3576+ NdisFddiStateNext,
3577+ NdisFddiStateSignal,
3578+ NdisFddiStateJoin,
3579+ NdisFddiStateVerify,
3580+ NdisFddiStateActive,
3581+ NdisFddiStateMaintenance
3582+ } NDIS_FDDI_LCONNECTION_STATE, *PNDIS_FDDI_LCONNECTION_STATE;
3583+
3584+ typedef enum _NDIS_WAN_MEDIUM_SUBTYPE {
3585+ NdisWanMediumHub,
3586+ NdisWanMediumX_25,
3587+ NdisWanMediumIsdn,
3588+ NdisWanMediumSerial,
3589+ NdisWanMediumFrameRelay,
3590+ NdisWanMediumAtm,
3591+ NdisWanMediumSonet,
3592+ NdisWanMediumSW56K,
3593+ NdisWanMediumPPTP,
3594+ NdisWanMediumL2TP,
3595+ NdisWanMediumIrda,
3596+ NdisWanMediumParallel,
3597+ NdisWanMediumPppoe,
3598+#if NTDDI_VERSION >= 0x06000000
3599+ NdisWanMediumSSTP,
3600+ NdisWanMediumAgileVPN,
3601+#endif
3602+ } NDIS_WAN_MEDIUM_SUBTYPE, *PNDIS_WAN_MEDIUM_SUBTYPE;
3603+
3604+ typedef enum _NDIS_WAN_HEADER_FORMAT {
3605+ NdisWanHeaderNative,
3606+ NdisWanHeaderEthernet
3607+ } NDIS_WAN_HEADER_FORMAT, *PNDIS_WAN_HEADER_FORMAT;
3608+
3609+ typedef enum _NDIS_WAN_QUALITY {
3610+ NdisWanRaw,
3611+ NdisWanErrorControl,
3612+ NdisWanReliable
3613+ } NDIS_WAN_QUALITY, *PNDIS_WAN_QUALITY;
3614+
3615+ typedef struct _NDIS_WAN_PROTOCOL_CAPS {
3616+ ULONG Flags;
3617+ ULONG Reserved;
3618+ } NDIS_WAN_PROTOCOL_CAPS, *PNDIS_WAN_PROTOCOL_CAPS;
3619+
3620+ typedef enum _NDIS_802_5_RING_STATE {
3621+ NdisRingStateOpened = 1,
3622+ NdisRingStateClosed,
3623+ NdisRingStateOpening,
3624+ NdisRingStateClosing,
3625+ NdisRingStateOpenFailure,
3626+ NdisRingStateRingFailure
3627+ } NDIS_802_5_RING_STATE, *PNDIS_802_5_RING_STATE;
3628+
3629+ typedef enum _NDIS_MEDIA_STATE {
3630+ NdisMediaStateConnected,
3631+ NdisMediaStateDisconnected
3632+ } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE;
3633+
3634+ typedef ULONG Priority_802_3;
3635+
3636+ typedef struct _NDIS_CO_LINK_SPEED {
3637+ ULONG Outbound;
3638+ ULONG Inbound;
3639+ } NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED;
3640+
3641+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
3642+#define NDIS_LINK_SPEED_UNKNOWN NET_IF_LINK_SPEED_UNKNOWN
3643+
3644+ typedef struct _NDIS_LINK_SPEED {
3645+ ULONG64 XmitLinkSpeed;
3646+ ULONG64 RcvLinkSpeed;
3647+ } NDIS_LINK_SPEED, *PNDIS_LINK_SPEED;
3648+#endif
3649+
3650+#ifndef _NDIS_
3651+ typedef int NDIS_STATUS, *PNDIS_STATUS;
3652+#endif
3653+
3654+/*
3655+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
3656+#ifndef __WINDOT11_H__
3657+#include <windot11.h>
3658+#endif
3659+#endif
3660+ */
3661+
3662+#define fNDIS_GUID_TO_OID 0x00000001
3663+#define fNDIS_GUID_TO_STATUS 0x00000002
3664+#define fNDIS_GUID_ANSI_STRING 0x00000004
3665+#define fNDIS_GUID_UNICODE_STRING 0x00000008
3666+#define fNDIS_GUID_ARRAY 0x00000010
3667+#define fNDIS_GUID_ALLOW_READ 0x00000020
3668+#define fNDIS_GUID_ALLOW_WRITE 0x00000040
3669+#define fNDIS_GUID_METHOD 0x00000080
3670+#define fNDIS_GUID_NDIS_RESERVED 0x00000100
3671+#define fNDIS_GUID_SUPPORT_COMMON_HEADER 0x00000200
3672+
3673+#define NDIS_PACKET_TYPE_DIRECTED 0x00000001
3674+#define NDIS_PACKET_TYPE_MULTICAST 0x00000002
3675+#define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004
3676+#define NDIS_PACKET_TYPE_BROADCAST 0x00000008
3677+#define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010
3678+#define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020
3679+#define NDIS_PACKET_TYPE_SMT 0x00000040
3680+#define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080
3681+#define NDIS_PACKET_TYPE_GROUP 0x00001000
3682+#define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000
3683+#define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000
3684+#define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000
3685+#define NDIS_PACKET_TYPE_NO_LOCAL 0x00010000
3686+
3687+#define NDIS_RING_SIGNAL_LOSS 0x00008000
3688+#define NDIS_RING_HARD_ERROR 0x00004000
3689+#define NDIS_RING_SOFT_ERROR 0x00002000
3690+#define NDIS_RING_TRANSMIT_BEACON 0x00001000
3691+#define NDIS_RING_LOBE_WIRE_FAULT 0x00000800
3692+#define NDIS_RING_AUTO_REMOVAL_ERROR 0x00000400
3693+#define NDIS_RING_REMOVE_RECEIVED 0x00000200
3694+#define NDIS_RING_COUNTER_OVERFLOW 0x00000100
3695+#define NDIS_RING_SINGLE_STATION 0x00000080
3696+#define NDIS_RING_RING_RECOVERY 0x00000040
3697+
3698+#define NDIS_PROT_OPTION_ESTIMATED_LENGTH 0x00000001
3699+#define NDIS_PROT_OPTION_NO_LOOPBACK 0x00000002
3700+#define NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT 0x00000004
3701+#define NDIS_PROT_OPTION_SEND_RESTRICTED 0x00000008
3702+
3703+#define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001
3704+#define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002
3705+#define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004
3706+#define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008
3707+
3708+#define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010
3709+
3710+#define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020
3711+#define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040
3712+#define NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00000080
3713+#define NDIS_MAC_OPTION_RECEIVE_AT_DPC 0x00000100
3714+#define NDIS_MAC_OPTION_8021Q_VLAN 0x00000200
3715+#define NDIS_MAC_OPTION_RESERVED 0x80000000
3716+
3717+#define NDIS_MEDIA_CAP_TRANSMIT 0x00000001
3718+#define NDIS_MEDIA_CAP_RECEIVE 0x00000002
3719+
3720+#define NDIS_CO_MAC_OPTION_DYNAMIC_LINK_SPEED 0x00000001
3721+
3722+ typedef struct _NDIS_GUID {
3723+ GUID Guid;
3724+ _ANONYMOUS_UNION union {
3725+ NDIS_OID Oid;
3726+ NDIS_STATUS Status;
3727+ };
3728+ ULONG Size;
3729+ ULONG Flags;
3730+ } NDIS_GUID, *PNDIS_GUID;
3731+
3732+ typedef struct _NDIS_IRDA_PACKET_INFO {
3733+ ULONG ExtraBOFs;
3734+ ULONG MinTurnAroundTime;
3735+ } NDIS_IRDA_PACKET_INFO, *PNDIS_IRDA_PACKET_INFO;
3736+
3737+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
3738+#define NDIS_MAKE_NET_LUID(PNLUID, IFTYPE, NLUIDIDX) { (PNLUID)->Info.IfType = IFTYPE; (PNLUID)->Info.NetLuidIndex = NLUIDIDX; (PNLUID)->Info.Reserved = 0; }
3739+
3740+#define MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED 32
3741+
3742+#define NDIS_IF_MAX_STRING_SIZE IF_MAX_STRING_SIZE
3743+#define NDIS_MAX_PHYS_ADDRESS_LENGTH IF_MAX_PHYS_ADDRESS_LENGTH
3744+
3745+#define NDIS_LINK_STATE_XMIT_LINK_SPEED_AUTO_NEGOTIATED 0x00000001
3746+#define NDIS_LINK_STATE_RCV_LINK_SPEED_AUTO_NEGOTIATED 0x00000002
3747+#define NDIS_LINK_STATE_DUPLEX_AUTO_NEGOTIATED 0x00000004
3748+#define NDIS_LINK_STATE_PAUSE_FUNCTIONS_AUTO_NEGOTIATED 0x00000008
3749+
3750+#define NDIS_LINK_STATE_REVISION_1 1
3751+#define NDIS_LINK_PARAMETERS_REVISION_1 1
3752+#define NDIS_OPER_STATE_REVISION_1 1
3753+#define NDIS_IP_OPER_STATUS_INFO_REVISION_1 1
3754+#define NDIS_IP_OPER_STATE_REVISION_1 1
3755+
3756+#define NDIS_SIZEOF_LINK_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_LINK_STATE, AutoNegotiationFlags)
3757+#define NDIS_SIZEOF_LINK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_LINK_PARAMETERS, AutoNegotiationFlags)
3758+#define NDIS_SIZEOF_OPER_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OPER_STATE, OperationalStatusFlags)
3759+#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)
3760+#define NDIS_SIZEOF_IP_OPER_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_IP_OPER_STATE, IpOperationalStatus)
3761+
3762+ typedef IF_COUNTED_STRING NDIS_IF_COUNTED_STRING, *PNDIS_IF_COUNTED_STRING;
3763+ typedef IF_PHYSICAL_ADDRESS NDIS_IF_PHYSICAL_ADDRESS, *PNDIS_IF_PHYSICAL_ADDRESS;
3764+ typedef NET_IF_MEDIA_CONNECT_STATE NDIS_MEDIA_CONNECT_STATE, *PNDIS_MEDIA_CONNECT_STATE;
3765+ typedef NET_IF_MEDIA_DUPLEX_STATE NDIS_MEDIA_DUPLEX_STATE, *PNDIS_MEDIA_DUPLEX_STATE;
3766+
3767+ typedef enum _NDIS_SUPPORTED_PAUSE_FUNCTIONS {
3768+ NdisPauseFunctionsUnsupported,
3769+ NdisPauseFunctionsSendOnly,
3770+ NdisPauseFunctionsReceiveOnly,
3771+ NdisPauseFunctionsSendAndReceive,
3772+ NdisPauseFunctionsUnknown
3773+ } NDIS_SUPPORTED_PAUSE_FUNCTIONS, *PNDIS_SUPPORTED_PAUSE_FUNCTIONS;
3774+
3775+ typedef struct _NDIS_LINK_STATE {
3776+ NDIS_OBJECT_HEADER Header;
3777+ NDIS_MEDIA_CONNECT_STATE MediaConnectState;
3778+ NDIS_MEDIA_DUPLEX_STATE MediaDuplexState;
3779+ ULONG64 XmitLinkSpeed;
3780+ ULONG64 RcvLinkSpeed;
3781+ NDIS_SUPPORTED_PAUSE_FUNCTIONS PauseFunctions;
3782+ ULONG AutoNegotiationFlags;
3783+ } NDIS_LINK_STATE, *PNDIS_LINK_STATE;
3784+
3785+ typedef struct _NDIS_LINK_PARAMETERS {
3786+ NDIS_OBJECT_HEADER Header;
3787+ NDIS_MEDIA_DUPLEX_STATE MediaDuplexState;
3788+ ULONG64 XmitLinkSpeed;
3789+ ULONG64 RcvLinkSpeed;
3790+ NDIS_SUPPORTED_PAUSE_FUNCTIONS PauseFunctions;
3791+ ULONG AutoNegotiationFlags;
3792+ } NDIS_LINK_PARAMETERS, *PNDIS_LINK_PARAMETERS;
3793+
3794+ typedef struct _NDIS_OPER_STATE {
3795+ NDIS_OBJECT_HEADER Header;
3796+ NET_IF_OPER_STATUS OperationalStatus;
3797+ ULONG OperationalStatusFlags;
3798+ } NDIS_OPER_STATE, *PNDIS_OPER_STATE;
3799+
3800+ typedef struct _NDIS_IP_OPER_STATUS {
3801+ ULONG AddressFamily;
3802+ NET_IF_OPER_STATUS OperationalStatus;
3803+ ULONG OperationalStatusFlags;
3804+ } NDIS_IP_OPER_STATUS, *PNDIS_IP_OPER_STATUS;
3805+
3806+ typedef struct _NDIS_IP_OPER_STATUS_INFO {
3807+ NDIS_OBJECT_HEADER Header;
3808+ ULONG Flags;
3809+ ULONG NumberofAddressFamiliesReturned;
3810+ NDIS_IP_OPER_STATUS IpOperationalStatus[MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED];
3811+ } NDIS_IP_OPER_STATUS_INFO, *PNDIS_IP_OPER_STATUS_INFO;
3812+
3813+ typedef struct _NDIS_IP_OPER_STATE {
3814+ NDIS_OBJECT_HEADER Header;
3815+ ULONG Flags;
3816+ NDIS_IP_OPER_STATUS IpOperationalStatus;
3817+ } NDIS_IP_OPER_STATE, *PNDIS_IP_OPER_STATE;
3818+
3819+#define NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 0
3820+#define NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED 1
3821+#define NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED 2
3822+#define NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED 3
3823+#define NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED 4
3824+
3825+#define NDIS_OFFLOAD_PARAMETERS_LSOV1_DISABLED 1
3826+#define NDIS_OFFLOAD_PARAMETERS_LSOV1_ENABLED 2
3827+
3828+#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_DISABLED 1
3829+#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_ENABLED 2
3830+#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_ESP_ENABLED 3
3831+#define NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_AND_ESP_ENABLED 4
3832+
3833+#define NDIS_OFFLOAD_PARAMETERS_LSOV2_DISABLED 1
3834+#define NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED 2
3835+
3836+#if NDIS_SUPPORT_NDIS61
3837+#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_DISABLED 1
3838+#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_ENABLED 2
3839+#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_ESP_ENABLED 3
3840+#define NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_AND_ESP_ENABLED 4
3841+#endif
3842+
3843+#if NDIS_SUPPORT_NDIS630
3844+#define NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED 1
3845+#define NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED 2
3846+
3847+#define NDIS_ENCAPSULATION_TYPE_GRE_MAC 0x00000001
3848+#define NDIS_ENCAPSULATION_TYPE_MAX NDIS_ENCAPSULATION_TYPE_GRE_MAC
3849+#endif
3850+
3851+#define NDIS_OFFLOAD_PARAMETERS_CONNECTION_OFFLOAD_DISABLED 1
3852+#define NDIS_OFFLOAD_PARAMETERS_CONNECTION_OFFLOAD_ENABLED 2
3853+
3854+#define NDIS_OFFLOAD_PARAMETERS_REVISION_1 1
3855+#if NDIS_SUPPORT_NDIS61
3856+#define NDIS_OFFLOAD_PARAMETERS_REVISION_2 2
3857+#endif
3858+#if NDIS_SUPPORT_NDIS630
3859+#define NDIS_OFFLOAD_PARAMETERS_REVISION_3 3
3860+#define NDIS_OFFLOAD_PARAMETERS_SKIP_REGISTRY_UPDATE 0x00000001
3861+#endif
3862+
3863+ typedef struct _NDIS_OFFLOAD_PARAMETERS {
3864+ NDIS_OBJECT_HEADER Header;
3865+ UCHAR IPv4Checksum;
3866+ UCHAR TCPIPv4Checksum;
3867+ UCHAR UDPIPv4Checksum;
3868+ UCHAR TCPIPv6Checksum;
3869+ UCHAR UDPIPv6Checksum;
3870+ UCHAR LsoV1;
3871+ UCHAR IPsecV1;
3872+ UCHAR LsoV2IPv4;
3873+ UCHAR LsoV2IPv6;
3874+ UCHAR TcpConnectionIPv4;
3875+ UCHAR TcpConnectionIPv6;
3876+ ULONG Flags;
3877+#if NDIS_SUPPORT_NDIS61
3878+ UCHAR IPsecV2;
3879+ UCHAR IPsecV2IPv4;
3880+#endif
3881+#if NDIS_SUPPORT_NDIS630
3882+ _ANONYMOUS_STRUCT struct {
3883+ UCHAR RscIPv4;
3884+ UCHAR RscIPv6;
3885+ };
3886+#endif
3887+#if NDIS_SUPPORT_NDIS630
3888+ _ANONYMOUS_STRUCT struct {
3889+ UCHAR EncapsulatedPacketTaskOffload;
3890+ UCHAR EncapsulationTypes;
3891+ };
3892+#endif
3893+ } NDIS_OFFLOAD_PARAMETERS, *PNDIS_OFFLOAD_PARAMETERS;
3894+
3895+#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, Flags)
3896+#if NDIS_SUPPORT_NDIS61
3897+#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, IPsecV2IPv4)
3898+#endif
3899+#if NDIS_SUPPORT_NDIS630
3900+#define NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD_PARAMETERS, EncapsulationTypes)
3901+#endif
3902+
3903+#define NDIS_OFFLOAD_NOT_SUPPORTED 0
3904+#define NDIS_OFFLOAD_SUPPORTED 1
3905+
3906+#define NDIS_OFFLOAD_SET_NO_CHANGE 0
3907+#define NDIS_OFFLOAD_SET_ON 1
3908+#define NDIS_OFFLOAD_SET_OFF 2
3909+
3910+#define NDIS_ENCAPSULATION_NOT_SUPPORTED 0x00000000
3911+#define NDIS_ENCAPSULATION_NULL 0x00000001
3912+#define NDIS_ENCAPSULATION_IEEE_802_3 0x00000002
3913+#define NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q 0x00000004
3914+#define NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB 0x00000008
3915+#define NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED 0x00000010
3916+
3917+ typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_V1 {
3918+ struct {
3919+ ULONG Encapsulation;
3920+ ULONG MaxOffLoadSize;
3921+ ULONG MinSegmentCount;
3922+ ULONG TcpOptions:2;
3923+ ULONG IpOptions:2;
3924+ } IPv4;
3925+ } NDIS_TCP_LARGE_SEND_OFFLOAD_V1, *PNDIS_TCP_LARGE_SEND_OFFLOAD_V1;
3926+
3927+ typedef struct _NDIS_TCP_IP_CHECKSUM_OFFLOAD {
3928+ struct {
3929+ ULONG Encapsulation;
3930+ ULONG IpOptionsSupported:2;
3931+ ULONG TcpOptionsSupported:2;
3932+ ULONG TcpChecksum:2;
3933+ ULONG UdpChecksum:2;
3934+ ULONG IpChecksum:2;
3935+ } IPv4Transmit;
3936+ struct {
3937+ ULONG Encapsulation;
3938+ ULONG IpOptionsSupported:2;
3939+ ULONG TcpOptionsSupported:2;
3940+ ULONG TcpChecksum:2;
3941+ ULONG UdpChecksum:2;
3942+ ULONG IpChecksum:2;
3943+ } IPv4Receive;
3944+ struct {
3945+ ULONG Encapsulation;
3946+ ULONG IpExtensionHeadersSupported:2;
3947+ ULONG TcpOptionsSupported:2;
3948+ ULONG TcpChecksum:2;
3949+ ULONG UdpChecksum:2;
3950+ } IPv6Transmit;
3951+ struct {
3952+ ULONG Encapsulation;
3953+ ULONG IpExtensionHeadersSupported:2;
3954+ ULONG TcpOptionsSupported:2;
3955+ ULONG TcpChecksum:2;
3956+ ULONG UdpChecksum:2;
3957+ } IPv6Receive;
3958+ } NDIS_TCP_IP_CHECKSUM_OFFLOAD, *PNDIS_TCP_IP_CHECKSUM_OFFLOAD;
3959+ typedef struct _NDIS_IPSEC_OFFLOAD_V1 {
3960+ struct {
3961+ ULONG Encapsulation;
3962+ ULONG AhEspCombined;
3963+ ULONG TransportTunnelCombined;
3964+ ULONG IPv4Options;
3965+ ULONG Flags;
3966+ } Supported;
3967+ struct {
3968+ ULONG Md5 : 2;
3969+ ULONG Sha_1 : 2;
3970+ ULONG Transport : 2;
3971+ ULONG Tunnel : 2;
3972+ ULONG Send : 2;
3973+ ULONG Receive : 2;
3974+ } IPv4AH;
3975+ struct {
3976+ ULONG Des : 2;
3977+ ULONG Reserved : 2;
3978+ ULONG TripleDes : 2;
3979+ ULONG NullEsp : 2;
3980+ ULONG Transport : 2;
3981+ ULONG Tunnel : 2;
3982+ ULONG Send : 2;
3983+ ULONG Receive : 2;
3984+ } IPv4ESP;
3985+ } NDIS_IPSEC_OFFLOAD_V1, *PNDIS_IPSEC_OFFLOAD_V1;
3986+
3987+ typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_V2 {
3988+ struct {
3989+ ULONG Encapsulation;
3990+ ULONG MaxOffLoadSize;
3991+ ULONG MinSegmentCount;
3992+ }IPv4;
3993+ struct {
3994+ ULONG Encapsulation;
3995+ ULONG MaxOffLoadSize;
3996+ ULONG MinSegmentCount;
3997+ ULONG IpExtensionHeadersSupported:2;
3998+ ULONG TcpOptionsSupported:2;
3999+ } IPv6;
4000+ } NDIS_TCP_LARGE_SEND_OFFLOAD_V2, *PNDIS_TCP_LARGE_SEND_OFFLOAD_V2;
4001+
4002+#if NDIS_SUPPORT_NDIS61
4003+#define IPSEC_OFFLOAD_V2_AUTHENTICATION_MD5 0x00000001
4004+#define IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_1 0x00000002
4005+#define IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_256 0x00000004
4006+#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_128 0x00000008
4007+#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_192 0x00000010
4008+#define IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_256 0x00000020
4009+
4010+#define IPSEC_OFFLOAD_V2_ENCRYPTION_NONE 0x00000001
4011+#define IPSEC_OFFLOAD_V2_ENCRYPTION_DES_CBC 0x00000002
4012+#define IPSEC_OFFLOAD_V2_ENCRYPTION_3_DES_CBC 0x00000004
4013+#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_128 0x00000008
4014+#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_192 0x00000010
4015+#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_256 0x00000020
4016+#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_128 0x00000040
4017+#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_192 0x00000080
4018+#define IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_256 0x00000100
4019+
4020+ typedef struct _NDIS_IPSEC_OFFLOAD_V2 {
4021+ ULONG Encapsulation;
4022+ BOOLEAN IPv6Supported;
4023+ BOOLEAN IPv4Options;
4024+ BOOLEAN IPv6NonIPsecExtensionHeaders;
4025+ BOOLEAN Ah;
4026+ BOOLEAN Esp;
4027+ BOOLEAN AhEspCombined;
4028+ BOOLEAN Transport;
4029+ BOOLEAN Tunnel;
4030+ BOOLEAN TransportTunnelCombined;
4031+ BOOLEAN LsoSupported;
4032+ BOOLEAN ExtendedSequenceNumbers;
4033+ ULONG UdpEsp;
4034+ ULONG AuthenticationAlgorithms;
4035+ ULONG EncryptionAlgorithms;
4036+ ULONG SaOffloadCapacity;
4037+ } NDIS_IPSEC_OFFLOAD_V2, *PNDIS_IPSEC_OFFLOAD_V2;
4038+#endif
4039+
4040+#if NDIS_SUPPORT_NDIS630
4041+#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED 0x00000000
4042+#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 0x00000001
4043+#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 0x00000002
4044+#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 0x00000004
4045+#define NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 0x00000008
4046+#endif
4047+
4048+#define NDIS_OFFLOAD_FLAGS_GROUP_CHECKSUM_CAPABILITIES 0x1
4049+#if NDIS_SUPPORT_NDIS630
4050+#define IPSEC_OFFLOAD_V2_AND_TCP_CHECKSUM_COEXISTENCE 0x2
4051+#define IPSEC_OFFLOAD_V2_AND_UDP_CHECKSUM_COEXISTENCE 0x4
4052+#endif
4053+
4054+#define NDIS_MAXIMUM_PORTS 0x1000000
4055+
4056+#define NDIS_DEFAULT_PORT_NUMBER ((NDIS_PORT_NUMBER) 0)
4057+
4058+#define NDIS_WMI_DEFAULT_METHOD_ID 1
4059+
4060+#define NDIS_WMI_OBJECT_TYPE_SET 0x01
4061+#define NDIS_WMI_OBJECT_TYPE_METHOD 0x02
4062+#define NDIS_WMI_OBJECT_TYPE_EVENT 0x03
4063+#define NDIS_WMI_OBJECT_TYPE_ENUM_ADAPTER 0x04
4064+#define NDIS_WMI_OBJECT_TYPE_OUTPUT_INFO 0x05
4065+
4066+#define NDIS_DEVICE_TYPE_ENDPOINT 0x00000001
4067+
4068+#define NDIS_OFFLOAD_REVISION_1 1
4069+#define NDIS_TCP_CONNECTION_OFFLOAD_REVISION_1 1
4070+#define NDIS_PORT_AUTHENTICATION_PARAMETERS_REVISION_1 1
4071+#define NDIS_WMI_METHOD_HEADER_REVISION_1 1
4072+#define NDIS_WMI_SET_HEADER_REVISION_1 1
4073+#define NDIS_WMI_EVENT_HEADER_REVISION_1 1
4074+#define NDIS_WMI_ENUM_ADAPTER_REVISION_1 1
4075+#if NDIS_SUPPORT_NDIS61
4076+#define NDIS_TCP_CONNECTION_OFFLOAD_REVISION_2 2
4077+#define NDIS_OFFLOAD_REVISION_2 2
4078+#endif
4079+#if NDIS_SUPPORT_NDIS630
4080+#define NDIS_OFFLOAD_REVISION_3 3
4081+#define NDIS_TCP_RECV_SEG_COALESC_OFFLOAD_REVISION_1 1
4082+#endif
4083+
4084+#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, Flags)
4085+#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, Flags)
4086+#define NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_CONNECTION_OFFLOAD, Flags)
4087+#define NDIS_SIZEOF_WMI_TCP_CONNECTION_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_TCP_CONNECTION_OFFLOAD, Flags)
4088+#define NDIS_SIZEOF_PORT_AUTHENTICATION_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_AUTHENTICATION_PARAMETERS, RcvAuthorizationState)
4089+#define NDIS_SIZEOF_WMI_METHOD_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_METHOD_HEADER, Padding)
4090+#define NDIS_SIZEOF_WMI_SET_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_SET_HEADER, Padding)
4091+#define NDIS_SIZEOF_WMI_EVENT_HEADER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_EVENT_HEADER, Padding)
4092+#define NDIS_SIZEOF_WMI_ENUM_ADAPTER_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_ENUM_ADAPTER, DeviceName)
4093+#if NDIS_SUPPORT_NDIS61
4094+#define NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_CONNECTION_OFFLOAD, Flags)
4095+#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, IPsecV2)
4096+#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, IPsecV2)
4097+#endif
4098+#if NDIS_SUPPORT_NDIS630
4099+#define NDIS_SIZEOF_NDIS_WMI_OFFLOAD_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OFFLOAD, EncapsulatedPacketTaskOffloadGre)
4100+#define NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_3 RTL_SIZEOF_THROUGH_FIELD (NDIS_OFFLOAD, EncapsulatedPacketTaskOffloadGre)
4101+#define NDIS_SIZEOF_TCP_RECV_SEG_COALESC_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD, IPv6.Enabled)
4102+#define NDIS_SIZEOF_ENCAPSULATED_PACKET_TASK_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD, MaxHeaderSizeSupported)
4103+#endif
4104+
4105+#if NDIS_SUPPORT_NDIS630
4106+ typedef struct _NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD {
4107+ struct {
4108+ BOOLEAN Enabled;
4109+ } IPv4;
4110+ struct {
4111+ BOOLEAN Enabled;
4112+ } IPv6;
4113+ } NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD, *PNDIS_TCP_RECV_SEG_COALESCE_OFFLOAD;
4114+
4115+ typedef struct _NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD {
4116+ ULONG TransmitChecksumOffloadSupported:4;
4117+ ULONG ReceiveChecksumOffloadSupported:4;
4118+ ULONG LsoV2Supported:4;
4119+ ULONG RssSupported:4;
4120+ ULONG VmqSupported:4;
4121+ ULONG MaxHeaderSizeSupported;
4122+ } NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD, *PNDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD;
4123+#endif
4124+
4125+ typedef struct _NDIS_OFFLOAD {
4126+ NDIS_OBJECT_HEADER Header;
4127+ NDIS_TCP_IP_CHECKSUM_OFFLOAD Checksum;
4128+ NDIS_TCP_LARGE_SEND_OFFLOAD_V1 LsoV1;
4129+ NDIS_IPSEC_OFFLOAD_V1 IPsecV1;
4130+ NDIS_TCP_LARGE_SEND_OFFLOAD_V2 LsoV2;
4131+ ULONG Flags;
4132+#if NDIS_SUPPORT_NDIS61
4133+ NDIS_IPSEC_OFFLOAD_V2 IPsecV2;
4134+#endif
4135+#if NDIS_SUPPORT_NDIS630
4136+ NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD Rsc;
4137+ NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD EncapsulatedPacketTaskOffloadGre;
4138+#endif
4139+ } NDIS_OFFLOAD, *PNDIS_OFFLOAD;
4140+
4141+ typedef struct _NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 {
4142+ struct {
4143+ ULONG Encapsulation;
4144+ ULONG MaxOffLoadSize;
4145+ ULONG MinSegmentCount;
4146+ ULONG TcpOptions;
4147+ ULONG IpOptions;
4148+ } IPv4;
4149+ } NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1, *PNDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1;
4150+
4151+ typedef struct _NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD {
4152+ struct {
4153+ ULONG Encapsulation;
4154+ ULONG IpOptionsSupported;
4155+ ULONG TcpOptionsSupported;
4156+ ULONG TcpChecksum;
4157+ ULONG UdpChecksum;
4158+ ULONG IpChecksum;
4159+ } IPv4Transmit;
4160+ struct {
4161+ ULONG Encapsulation;
4162+ ULONG IpOptionsSupported;
4163+ ULONG TcpOptionsSupported;
4164+ ULONG TcpChecksum;
4165+ ULONG UdpChecksum;
4166+ ULONG IpChecksum;
4167+ } IPv4Receive;
4168+ struct {
4169+ ULONG Encapsulation;
4170+ ULONG IpExtensionHeadersSupported;
4171+ ULONG TcpOptionsSupported;
4172+ ULONG TcpChecksum;
4173+ ULONG UdpChecksum;
4174+ } IPv6Transmit;
4175+ struct {
4176+ ULONG Encapsulation;
4177+ ULONG IpExtensionHeadersSupported;
4178+ ULONG TcpOptionsSupported;
4179+ ULONG TcpChecksum;
4180+ ULONG UdpChecksum;
4181+ } IPv6Receive;
4182+ } NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD, *PNDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD;
4183+
4184+ typedef struct _NDIS_WMI_IPSEC_OFFLOAD_V1 {
4185+ struct {
4186+ ULONG Encapsulation;
4187+ ULONG AhEspCombined;
4188+ ULONG TransportTunnelCombined;
4189+ ULONG IPv4Options;
4190+ ULONG Flags;
4191+ } Supported;
4192+ struct {
4193+ ULONG Md5;
4194+ ULONG Sha_1;
4195+ ULONG Transport;
4196+ ULONG Tunnel;
4197+ ULONG Send;
4198+ ULONG Receive;
4199+ } IPv4AH;
4200+ struct {
4201+ ULONG Des;
4202+ ULONG Reserved;
4203+ ULONG TripleDes;
4204+ ULONG NullEsp;
4205+ ULONG Transport;
4206+ ULONG Tunnel;
4207+ ULONG Send;
4208+ ULONG Receive;
4209+ } IPv4ESP;
4210+ } NDIS_WMI_IPSEC_OFFLOAD_V1, *PNDIS_WMI_IPSEC_OFFLOAD_V1;
4211+
4212+ typedef struct _NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 {
4213+ struct {
4214+ ULONG Encapsulation;
4215+ ULONG MaxOffLoadSize;
4216+ ULONG MinSegmentCount;
4217+ } IPv4;
4218+ struct {
4219+ ULONG Encapsulation;
4220+ ULONG MaxOffLoadSize;
4221+ ULONG MinSegmentCount;
4222+ ULONG IpExtensionHeadersSupported;
4223+ ULONG TcpOptionsSupported;
4224+ } IPv6;
4225+ } NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2, *PNDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2;
4226+
4227+ typedef struct _NDIS_WMI_OFFLOAD {
4228+ NDIS_OBJECT_HEADER Header;
4229+ NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD Checksum;
4230+ NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 LsoV1;
4231+ NDIS_WMI_IPSEC_OFFLOAD_V1 IPsecV1;
4232+ NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 LsoV2;
4233+ ULONG Flags;
4234+#if NDIS_SUPPORT_NDIS61
4235+ NDIS_IPSEC_OFFLOAD_V2 IPsecV2;
4236+#endif
4237+#if NDIS_SUPPORT_NDIS630
4238+ NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD Rsc;
4239+ NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD EncapsulatedPacketTaskOffloadGre;
4240+#endif
4241+ } NDIS_WMI_OFFLOAD, *PNDIS_WMI_OFFLOAD;
4242+
4243+ typedef struct _NDIS_TCP_CONNECTION_OFFLOAD {
4244+ NDIS_OBJECT_HEADER Header;
4245+ ULONG Encapsulation;
4246+ ULONG SupportIPv4:2;
4247+ ULONG SupportIPv6:2;
4248+ ULONG SupportIPv6ExtensionHeaders:2;
4249+ ULONG SupportSack:2;
4250+#if NDIS_SUPPORT_NDIS61
4251+ ULONG CongestionAlgorithm:4;
4252+#endif
4253+ ULONG TcpConnectionOffloadCapacity;
4254+ ULONG Flags;
4255+ } NDIS_TCP_CONNECTION_OFFLOAD, *PNDIS_TCP_CONNECTION_OFFLOAD;
4256+
4257+ typedef struct _NDIS_WMI_TCP_CONNECTION_OFFLOAD {
4258+ NDIS_OBJECT_HEADER Header;
4259+ ULONG Encapsulation;
4260+ ULONG SupportIPv4;
4261+ ULONG SupportIPv6;
4262+ ULONG SupportIPv6ExtensionHeaders;
4263+ ULONG SupportSack;
4264+ ULONG TcpConnectionOffloadCapacity;
4265+ ULONG Flags;
4266+ } NDIS_WMI_TCP_CONNECTION_OFFLOAD, *PNDIS_WMI_TCP_CONNECTION_OFFLOAD;
4267+
4268+ typedef ULONG NDIS_PORT_NUMBER, *PNDIS_PORT_NUMBER;
4269+
4270+ typedef enum _NDIS_PORT_TYPE {
4271+ NdisPortTypeUndefined,
4272+ NdisPortTypeBridge,
4273+ NdisPortTypeRasConnection,
4274+ NdisPortType8021xSupplicant,
4275+#if NDIS_SUPPORT_NDIS630
4276+ NdisPortTypeNdisImPlatform,
4277+#endif
4278+ NdisPortTypeMax,
4279+ } NDIS_PORT_TYPE, *PNDIS_PORT_TYPE;
4280+
4281+ typedef enum _NDIS_PORT_AUTHORIZATION_STATE {
4282+ NdisPortAuthorizationUnknown,
4283+ NdisPortAuthorized,
4284+ NdisPortUnauthorized,
4285+ NdisPortReauthorizing
4286+ } NDIS_PORT_AUTHORIZATION_STATE, *PNDIS_PORT_AUTHORIZATION_STATE;
4287+
4288+ typedef enum _NDIS_PORT_CONTROL_STATE {
4289+ NdisPortControlStateUnknown,
4290+ NdisPortControlStateControlled,
4291+ NdisPortControlStateUncontrolled
4292+ } NDIS_PORT_CONTROL_STATE, *PNDIS_PORT_CONTROL_STATE;
4293+
4294+ typedef NDIS_PORT_CONTROL_STATE NDIS_PORT_CONTROLL_STATE;
4295+ typedef PNDIS_PORT_CONTROL_STATE PNDIS_PORT_CONTROLL_STATE;
4296+
4297+ typedef struct _NDIS_PORT_AUTHENTICATION_PARAMETERS {
4298+ NDIS_OBJECT_HEADER Header;
4299+ NDIS_PORT_CONTROL_STATE SendControlState;
4300+ NDIS_PORT_CONTROL_STATE RcvControlState;
4301+ NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState;
4302+ NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState;
4303+ } NDIS_PORT_AUTHENTICATION_PARAMETERS, *PNDIS_PORT_AUTHENTICATION_PARAMETERS;
4304+
4305+ typedef enum _NDIS_NETWORK_CHANGE_TYPE {
4306+ NdisPossibleNetworkChange = 1,
4307+ NdisDefinitelyNetworkChange,
4308+ NdisNetworkChangeFromMediaConnect,
4309+ NdisNetworkChangeMax
4310+ } NDIS_NETWORK_CHANGE_TYPE, *PNDIS_NETWORK_CHANGE_TYPE;
4311+
4312+ typedef struct _NDIS_WMI_METHOD_HEADER {
4313+ NDIS_OBJECT_HEADER Header;
4314+ NDIS_PORT_NUMBER PortNumber;
4315+ NET_LUID NetLuid;
4316+ ULONG64 RequestId;
4317+ ULONG Timeout;
4318+ UCHAR Padding[4];
4319+ } NDIS_WMI_METHOD_HEADER, *PNDIS_WMI_METHOD_HEADER;
4320+
4321+ typedef struct _NDIS_WMI_SET_HEADER {
4322+ NDIS_OBJECT_HEADER Header;
4323+ NDIS_PORT_NUMBER PortNumber;
4324+ NET_LUID NetLuid;
4325+ ULONG64 RequestId;
4326+ ULONG Timeout;
4327+ UCHAR Padding[4];
4328+ } NDIS_WMI_SET_HEADER, *PNDIS_WMI_SET_HEADER;
4329+
4330+ typedef struct _NDIS_WMI_EVENT_HEADER {
4331+ NDIS_OBJECT_HEADER Header;
4332+ NET_IFINDEX IfIndex;
4333+ NET_LUID NetLuid;
4334+ ULONG64 RequestId;
4335+ NDIS_PORT_NUMBER PortNumber;
4336+ ULONG DeviceNameLength;
4337+ ULONG DeviceNameOffset;
4338+ UCHAR Padding[4];
4339+ } NDIS_WMI_EVENT_HEADER, *PNDIS_WMI_EVENT_HEADER;
4340+
4341+ typedef struct _NDIS_WMI_ENUM_ADAPTER {
4342+ NDIS_OBJECT_HEADER Header;
4343+ NET_IFINDEX IfIndex;
4344+ NET_LUID NetLuid;
4345+ USHORT DeviceNameLength;
4346+ CHAR DeviceName[1];
4347+ } NDIS_WMI_ENUM_ADAPTER, *PNDIS_WMI_ENUM_ADAPTER;
4348+
4349+#if NDIS_SUPPORT_NDIS61
4350+#define NDIS_HD_SPLIT_COMBINE_ALL_HEADERS 0x00000001
4351+
4352+#define NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT 0x00000001
4353+#define NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS 0x00000002
4354+#define NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS 0x00000004
4355+#define NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS 0x00000008
4356+
4357+#define NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT 0x00000001
4358+
4359+#define NDIS_HD_SPLIT_PARAMETERS_REVISION_1 1
4360+#define NDIS_HD_SPLIT_CURRENT_CONFIG_REVISION_1 1
4361+
4362+#define NDIS_SIZEOF_HD_SPLIT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HD_SPLIT_PARAMETERS, HDSplitCombineFlags)
4363+#define NDIS_SIZEOF_HD_SPLIT_CURRENT_CONFIG_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HD_SPLIT_CURRENT_CONFIG, MaxHeaderSize)
4364+
4365+ typedef struct _NDIS_HD_SPLIT_PARAMETERS {
4366+ NDIS_OBJECT_HEADER Header;
4367+ ULONG HDSplitCombineFlags;
4368+ } NDIS_HD_SPLIT_PARAMETERS, *PNDIS_HD_SPLIT_PARAMETERS;
4369+
4370+ typedef struct _NDIS_HD_SPLIT_CURRENT_CONFIG {
4371+ NDIS_OBJECT_HEADER Header;
4372+ ULONG HardwareCapabilities;
4373+ ULONG CurrentCapabilities;
4374+ ULONG HDSplitFlags;
4375+ ULONG HDSplitCombineFlags;
4376+ ULONG BackfillSize;
4377+ ULONG MaxHeaderSize;
4378+ } NDIS_HD_SPLIT_CURRENT_CONFIG, *PNDIS_HD_SPLIT_CURRENT_CONFIG;
4379+#endif
4380+
4381+#define NDIS_WMI_OUTPUT_INFO_REVISION_1 1
4382+
4383+ typedef struct NDIS_WMI_OUTPUT_INFO {
4384+ NDIS_OBJECT_HEADER Header;
4385+ ULONG Flags;
4386+ UCHAR SupportedRevision;
4387+ ULONG DataOffset;
4388+ } NDIS_WMI_OUTPUT_INFO, *PNDIS_WMI_OUTPUT_INFO;
4389+
4390+#if NDIS_SUPPORT_NDIS620
4391+#define NDIS_PM_WOL_BITMAP_PATTERN_SUPPORTED 0x00000001
4392+#define NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED 0x00000002
4393+#define NDIS_PM_WOL_IPV4_TCP_SYN_SUPPORTED 0x00000004
4394+#define NDIS_PM_WOL_IPV6_TCP_SYN_SUPPORTED 0x00000008
4395+#define NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_SUPPORTED 0x00000200
4396+#define NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_SUPPORTED 0x00000800
4397+#define NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_SUPPORTED 0x00010000
4398+
4399+#define NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED 0x00000001
4400+#define NDIS_PM_PROTOCOL_OFFLOAD_NS_SUPPORTED 0x00000002
4401+#define NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_SUPPORTED 0x00000080
4402+
4403+#if NDIS_SUPPORT_NDIS630
4404+#define NDIS_PM_WAKE_ON_MEDIA_CONNECT_SUPPORTED 0x00000001
4405+#define NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_SUPPORTED 0x00000002
4406+
4407+#define NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_SUPPORTED 0x00000001
4408+#define NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_SUPPORTED 0x00000002
4409+#define NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_SUPPORTED 0x00000004
4410+#define NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_SUPPORTED 0x00000008
4411+
4412+#define NDIS_WWAN_WAKE_ON_REGISTER_STATE_SUPPORTED 0x00000001
4413+#define NDIS_WWAN_WAKE_ON_SMS_RECEIVE_SUPPORTED 0x00000002
4414+#define NDIS_WWAN_WAKE_ON_USSD_RECEIVE_SUPPORTED 0x00000004
4415+
4416+#define NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED 0x00000001
4417+#define NDIS_PM_SELECTIVE_SUSPEND_SUPPORTED 0x00000002
4418+#endif
4419+
4420+#define NDIS_PM_WOL_BITMAP_PATTERN_ENABLED 0x00000001
4421+#define NDIS_PM_WOL_MAGIC_PACKET_ENABLED 0x00000002
4422+#define NDIS_PM_WOL_IPV4_TCP_SYN_ENABLED 0x00000004
4423+#define NDIS_PM_WOL_IPV6_TCP_SYN_ENABLED 0x00000008
4424+#define NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED 0x00000200
4425+#define NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED 0x00000800
4426+#define NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_ENABLED 0x00010000
4427+
4428+#define NDIS_PM_PROTOCOL_OFFLOAD_ARP_ENABLED 0x00000001
4429+#define NDIS_PM_PROTOCOL_OFFLOAD_NS_ENABLED 0x00000002
4430+#define NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_ENABLED 0x00000080
4431+
4432+#define NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED 0x1
4433+#if NDIS_SUPPORT_NDIS630
4434+#define NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_ENABLED 0x2
4435+#define NDIS_PM_SELECTIVE_SUSPEND_ENABLED 0x10
4436+
4437+#define NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_ENABLED 0x1
4438+#define NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_ENABLED 0x2
4439+#define NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_ENABLED 0x4
4440+#define NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_ENABLED 0x8
4441+
4442+#define NDIS_WWAN_WAKE_ON_REGISTER_STATE_ENABLED 0x1
4443+#define NDIS_WWAN_WAKE_ON_SMS_RECEIVE_ENABLED 0x2
4444+#define NDIS_WWAN_WAKE_ON_USSD_RECEIVE_ENABLED 0x4
4445+#endif
4446+
4447+#define NDIS_PM_WOL_PRIORITY_LOWEST 0xffffffff
4448+#define NDIS_PM_WOL_PRIORITY_NORMAL 0x10000000
4449+#define NDIS_PM_WOL_PRIORITY_HIGHEST 0x00000001
4450+
4451+#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST 0xffffffff
4452+#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_NORMAL 0x10000000
4453+#define NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST 0x00000001
4454+
4455+#define NDIS_PM_MAX_STRING_SIZE 64
4456+
4457+#define EAPOL_REQUEST_ID_WOL_FLAG_MUST_ENCRYPT 0x00000001
4458+
4459+#define NDIS_PM_MAX_PATTERN_ID 0x0000ffff
4460+
4461+#define NDIS_PM_PRIVATE_PATTERN_ID 0x00000001
4462+
4463+#define DOT11_RSN_KEK_LENGTH 16
4464+#define DOT11_RSN_KCK_LENGTH 16
4465+
4466+
4467+#define NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED 0x00000001
4468+#define NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED 0x00000002
4469+#define NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED 0x00000004
4470+#define NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED 0x00000008
4471+#define NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED 0x00000010
4472+
4473+#define NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED 0x00000001
4474+#define NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED 0x00000002
4475+#define NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED 0x00000004
4476+#define NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED 0x00000008
4477+#define NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED 0x00000010
4478+#define NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED 0x00000020
4479+
4480+#define NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED 0x1
4481+#define NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED 0x2
4482+#define NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED 0x4
4483+
4484+#define NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED 0x1
4485+#define NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED 0x1
4486+#define NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED 0x1
4487+
4488+#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED 0x00000001
4489+#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED 0x00000002
4490+#define NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED 0x00000004
4491+
4492+#define NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED 0x00000001
4493+#define NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED 0x00000002
4494+#define NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED 0x00000004
4495+#if NDIS_SUPPORT_NDIS630
4496+#define NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED 0x00000008
4497+#define NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED 0x00000010
4498+#define NDIS_RECEIVE_FILTER_ANY_VLAN_SUPPORTED 0x00000020
4499+#define NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE 0x00000040
4500+#define NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE 0x00000080
4501+#define NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE 0x00000100
4502+#endif
4503+
4504+#define NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED 0x00000001
4505+#define NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED 0x00000002
4506+
4507+#define NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED 0x00000001
4508+
4509+#if NDIS_SUPPORT_NDIS630
4510+#define NDIS_NIC_SWITCH_CAPS_VLAN_SUPPORTED 0x00000001
4511+#define NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED 0x00000002
4512+#define NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED 0x00000004
4513+#define NDIS_NIC_SWITCH_CAPS_VF_RSS_SUPPORTED 0x00000008
4514+#define NDIS_NIC_SWITCH_CAPS_SINGLE_VPORT_POOL 0x00000010
4515+#endif
4516+
4517+
4518+#define NDIS_DEFAULT_RECEIVE_QUEUE_ID 0
4519+#define NDIS_DEFAULT_RECEIVE_QUEUE_GROUP_ID 0
4520+#define NDIS_DEFAULT_RECEIVE_FILTER_ID 0
4521+
4522+#define NDIS_RECEIVE_FILTER_FIELD_MAC_HEADER_VLAN_UNTAGGED_OR_ZERO 0x00000001
4523+#define NDIS_RECEIVE_FILTER_PACKET_ENCAPSULATION_GRE 0x00000002
4524+
4525+#define NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION 0x00000001
4526+#define NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED 0x00000002
4527+#define NDIS_RECEIVE_QUEUE_PARAMETERS_FLAGS_CHANGED 0x00010000
4528+#define NDIS_RECEIVE_QUEUE_PARAMETERS_PROCESSOR_AFFINITY_CHANGED 0x00020000
4529+#define NDIS_RECEIVE_QUEUE_PARAMETERS_SUGGESTED_RECV_BUFFER_NUMBERS_CHANGED 0x00040000
4530+#define NDIS_RECEIVE_QUEUE_PARAMETERS_NAME_CHANGED 0x00080000
4531+#if NDIS_SUPPORT_NDIS630
4532+#define NDIS_RECEIVE_QUEUE_PARAMETERS_INTERRUPT_COALESCING_DOMAIN_ID_CHANGED 0x00100000
4533+#endif
4534+
4535+#define NDIS_RECEIVE_QUEUE_PARAMETERS_CHANGE_MASK 0xffff0000
4536+
4537+#if NDIS_SUPPORT_NDIS630
4538+#define NDIS_RECEIVE_FILTER_INFO_ARRAY_VPORT_ID_SPECIFIED 0x00000001
4539+#endif
4540+
4541+#define NDIS_PM_CAPABILITIES_REVISION_1 1
4542+#define NDIS_PM_PARAMETERS_REVISION_1 1
4543+#define NDIS_PM_WOL_PATTERN_REVISION_1 1
4544+#define NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1 1
4545+#define NDIS_WMI_PM_ADMIN_CONFIG_REVISION_1 1
4546+#define NDIS_WMI_PM_ACTIVE_CAPABILITIES_REVISION_1 1
4547+#define NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1 1
4548+#define NDIS_NIC_SWITCH_CAPABILITIES_REVISION_1 1
4549+#define NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS_REVISION_1 1
4550+#define NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_1 1
4551+#define NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_1 1
4552+#define NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS_REVISION_1 1
4553+#define NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_1 1
4554+#define NDIS_RECEIVE_QUEUE_FREE_PARAMETERS_REVISION_1 1
4555+#define NDIS_RECEIVE_QUEUE_INFO_REVISION_1 1
4556+#define NDIS_RECEIVE_QUEUE_INFO_ARRAY_REVISION_1 1
4557+#define NDIS_RECEIVE_FILTER_INFO_REVISION_1 1
4558+#define NDIS_RECEIVE_FILTER_INFO_ARRAY_REVISION_1 1
4559+#define NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS_REVISION_1 1
4560+#define NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY_REVISION_1 1
4561+#if NDIS_SUPPORT_NDIS630
4562+#define NDIS_PM_CAPABILITIES_REVISION_2 2
4563+#define NDIS_PM_PARAMETERS_REVISION_2 2
4564+#define NDIS_PM_WOL_PATTERN_REVISION_2 2
4565+#define NDIS_PM_WAKE_REASON_REVISION_1 1
4566+#define NDIS_PM_WAKE_PACKET_REVISION_1 1
4567+#define NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2 2
4568+#define NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2 2
4569+#define NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_2 2
4570+#define NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_2 2
4571+#define NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_2 2
4572+#define NDIS_RECEIVE_FILTER_INFO_ARRAY_REVISION_2 2
4573+#define NDIS_RECEIVE_QUEUE_INFO_REVISION_2 2
4574+#endif
4575+
4576+#define NDIS_SIZEOF_WMI_OUTPUT_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_OUTPUT_INFO, DataOffset)
4577+#define NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_CAPABILITIES, MinLinkChangeWakeUp)
4578+#define NDIS_SIZEOF_NDIS_PM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PARAMETERS, WakeUpFlags)
4579+#define NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WOL_PATTERN, WoLPattern)
4580+#define NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PROTOCOL_OFFLOAD, ProtocolOffloadParameters)
4581+#define NDIS_SIZEOF_WMI_PM_ADMIN_CONFIG_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_PM_ADMIN_CONFIG, PMWiFiRekeyOffload)
4582+#define NDIS_SIZEOF_WMI_PM_ACTIVE_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_PM_ACTIVE_CAPABILITIES, PMWiFiRekeyOffload)
4583+#define NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CAPABILITIES, MaxLookaheadSplitSize)
4584+#define NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_CAPABILITIES, NdisReserved3)
4585+#define NDIS_SIZEOF_RECEIVE_FILTER_GLOBAL_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS, EnabledQueueTypes)
4586+#define NDIS_SIZEOF_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, ResultValue)
4587+#define NDIS_SIZEOF_RECEIVE_FILTER_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_PARAMETERS, RequestedFilterIdBitCount)
4588+#define NDIS_SIZEOF_RECEIVE_FILTER_CLEAR_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS, FilterId)
4589+#define NDIS_SIZEOF_RECEIVE_QUEUE_FREE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_FREE_PARAMETERS, QueueId)
4590+#define NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_PARAMETERS, QueueName)
4591+#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO, QueueName)
4592+#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO_ARRAY, ElementSize)
4593+#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO, FilterId)
4594+#define NDIS_SIZEOF_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY, ElementSize)
4595+#define NDIS_SIZEOF_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS, CompletionStatus)
4596+#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO_ARRAY, ElementSize)
4597+#if NDIS_SUPPORT_NDIS630
4598+#define NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_CAPABILITIES, MediaSpecificWakeUpEvents)
4599+#define NDIS_SIZEOF_NDIS_PM_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_PARAMETERS, MediaSpecificWakeUpEvents)
4600+#define NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WOL_PATTERN, WoLPattern)
4601+#define NDIS_SIZEOF_PM_WAKE_REASON_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WAKE_REASON, InfoBufferSize)
4602+#define NDIS_SIZEOF_PM_WAKE_PACKET_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PM_WAKE_PACKET, SavedPacketOffset)
4603+#define NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_CAPABILITIES, NdisReserved)
4604+#define NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_CAPABILITIES, NdisReserved17)
4605+#define NDIS_SIZEOF_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, ResultValue)
4606+#define NDIS_SIZEOF_RECEIVE_FILTER_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_PARAMETERS, VPortId)
4607+#define NDIS_SIZEOF_RECEIVE_FILTER_INFO_ARRAY_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_INFO_ARRAY, VPortId)
4608+#define NDIS_SIZEOF_RECEIVE_QUEUE_INFO_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_INFO, InterruptCoalescingDomainId)
4609+#define NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_QUEUE_PARAMETERS, InterruptCoalescingDomainId)
4610+#endif
4611+
4612+ typedef enum _NDIS_PM_WOL_PACKET {
4613+ NdisPMWoLPacketUnspecified,
4614+ NdisPMWoLPacketBitmapPattern,
4615+ NdisPMWoLPacketMagicPacket,
4616+ NdisPMWoLPacketIPv4TcpSyn,
4617+ NdisPMWoLPacketIPv6TcpSyn,
4618+ NdisPMWoLPacketEapolRequestIdMessage,
4619+ NdisPMWoLPacketMaximum
4620+ } NDIS_PM_WOL_PACKET, *PNDIS_PM_WOL_PACKET;
4621+
4622+ typedef enum _NDIS_PM_PROTOCOL_OFFLOAD_TYPE {
4623+ NdisPMProtocolOffloadIdUnspecified,
4624+ NdisPMProtocolOffloadIdIPv4ARP,
4625+ NdisPMProtocolOffloadIdIPv6NS,
4626+ NdisPMProtocolOffload80211RSNRekey,
4627+ NdisPMProtocolOffloadIdMaximum
4628+ } NDIS_PM_PROTOCOL_OFFLOAD_TYPE, *PNDIS_PM_PROTOCOL_OFFLOAD_TYPE;
4629+
4630+ typedef struct _NDIS_PM_COUNTED_STRING {
4631+ USHORT Length;
4632+ WCHAR String[NDIS_PM_MAX_STRING_SIZE + 1];
4633+ } NDIS_PM_COUNTED_STRING, *PNDIS_PM_COUNTED_STRING;
4634+
4635+ typedef struct _NDIS_PM_CAPABILITIES {
4636+ NDIS_OBJECT_HEADER Header;
4637+ ULONG Flags;
4638+ ULONG SupportedWoLPacketPatterns;
4639+ ULONG NumTotalWoLPatterns;
4640+ ULONG MaxWoLPatternSize;
4641+ ULONG MaxWoLPatternOffset;
4642+ ULONG MaxWoLPacketSaveBuffer;
4643+ ULONG SupportedProtocolOffloads;
4644+ ULONG NumArpOffloadIPv4Addresses;
4645+ ULONG NumNSOffloadIPv6Addresses;
4646+ NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
4647+ NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
4648+ NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
4649+#if NDIS_SUPPORT_NDIS630
4650+ ULONG SupportedWakeUpEvents;
4651+ ULONG MediaSpecificWakeUpEvents;
4652+#endif
4653+ } NDIS_PM_CAPABILITIES, *PNDIS_PM_CAPABILITIES;
4654+
4655+ typedef struct _NDIS_PM_PARAMETERS {
4656+ NDIS_OBJECT_HEADER Header;
4657+ ULONG EnabledWoLPacketPatterns;
4658+ ULONG EnabledProtocolOffloads;
4659+ ULONG WakeUpFlags;
4660+#if NDIS_SUPPORT_NDIS630
4661+ ULONG MediaSpecificWakeUpEvents;
4662+#endif
4663+ } NDIS_PM_PARAMETERS, *PNDIS_PM_PARAMETERS;
4664+
4665+ typedef struct _NDIS_PM_WOL_PATTERN {
4666+ NDIS_OBJECT_HEADER Header;
4667+ ULONG Flags;
4668+ ULONG Priority;
4669+ NDIS_PM_WOL_PACKET WoLPacketType;
4670+ NDIS_PM_COUNTED_STRING FriendlyName;
4671+ ULONG PatternId;
4672+ ULONG NextWoLPatternOffset;
4673+ union _WOL_PATTERN {
4674+ struct _IPV4_TCP_SYN_WOL_PACKET_PARAMETERS {
4675+ ULONG Flags;
4676+ UCHAR IPv4SourceAddress[4];
4677+ UCHAR IPv4DestAddress[4];
4678+ USHORT TCPSourcePortNumber;
4679+ USHORT TCPDestPortNumber;
4680+ } IPv4TcpSynParameters;
4681+ struct _IPV6_TCP_SYN_WOL_PACKET_PARAMETERS {
4682+ ULONG Flags;
4683+ UCHAR IPv6SourceAddress[16];
4684+ UCHAR IPv6DestAddress[16];
4685+ USHORT TCPSourcePortNumber;
4686+ USHORT TCPDestPortNumber;
4687+ } IPv6TcpSynParameters;
4688+ struct _EAPOL_REQUEST_ID_MESSAGE_WOL_PACKET_PARAMETERS {
4689+ ULONG Flags;
4690+ } EapolRequestIdMessageParameters;
4691+ struct _WOL_BITMAP_PATTERN {
4692+ ULONG Flags;
4693+ ULONG MaskOffset;
4694+ ULONG MaskSize;
4695+ ULONG PatternOffset;
4696+ ULONG PatternSize;
4697+ } WoLBitMapPattern;
4698+ } WoLPattern;
4699+ } NDIS_PM_WOL_PATTERN, *PNDIS_PM_WOL_PATTERN;
4700+
4701+ typedef struct _NDIS_PM_PROTOCOL_OFFLOAD {
4702+ NDIS_OBJECT_HEADER Header;
4703+ ULONG Flags;
4704+ ULONG Priority;
4705+ NDIS_PM_PROTOCOL_OFFLOAD_TYPE ProtocolOffloadType;
4706+ NDIS_PM_COUNTED_STRING FriendlyName;
4707+ ULONG ProtocolOffloadId;
4708+ ULONG NextProtocolOffloadOffset;
4709+ union _PROTOCOL_OFFLOAD_PARAMETERS {
4710+ struct _IPV4_ARP_PARAMETERS {
4711+ ULONG Flags;
4712+ UCHAR RemoteIPv4Address[4];
4713+ UCHAR HostIPv4Address[4];
4714+ UCHAR MacAddress[6];
4715+ } IPv4ARPParameters;
4716+ struct _IPV6_NS_PARAMETERS {
4717+ ULONG Flags;
4718+ UCHAR RemoteIPv6Address[16];
4719+ UCHAR SolicitedNodeIPv6Address[16];
4720+ UCHAR MacAddress[6];
4721+ UCHAR TargetIPv6Addresses[2][16];
4722+ } IPv6NSParameters;
4723+ struct _DOT11_RSN_REKEY_PARAMETERS {
4724+ ULONG Flags;
4725+ UCHAR KCK[DOT11_RSN_KCK_LENGTH];
4726+ UCHAR KEK[DOT11_RSN_KEK_LENGTH];
4727+ ULONGLONG KeyReplayCounter;
4728+ } Dot11RSNRekeyParameters;
4729+ } ProtocolOffloadParameters;
4730+ } NDIS_PM_PROTOCOL_OFFLOAD, *PNDIS_PM_PROTOCOL_OFFLOAD;
4731+
4732+#if NDIS_SUPPORT_NDIS630
4733+ typedef enum _NDIS_PM_WAKE_REASON_TYPE {
4734+ NdisWakeReasonUnspecified = 0x0000,
4735+ NdisWakeReasonPacket = 0x0001,
4736+ NdisWakeReasonMediaDisconnect = 0x0002,
4737+ NdisWakeReasonMediaConnect = 0x0003,
4738+ NdisWakeReasonWlanNLODiscovery = 0x1000,
4739+ NdisWakeReasonWlanAPAssociationLost = 0x1001,
4740+ NdisWakeReasonWlanGTKHandshakeError = 0x1002,
4741+ NdisWakeReasonWlan4WayHandshakeRequest = 0x1003,
4742+ NdisWakeReasonWwanRegisterState = 0x2000,
4743+ NdisWakeReasonWwanSMSReceive = 0x2001,
4744+ NdisWakeReasonWwanUSSDReceive = 0x2002,
4745+ } NDIS_PM_WAKE_REASON_TYPE, *PNDIS_PM_WAKE_REASON_TYPE;
4746+
4747+ typedef struct _NDIS_PM_WAKE_REASON {
4748+ NDIS_OBJECT_HEADER Header;
4749+ ULONG Flags;
4750+ NDIS_PM_WAKE_REASON_TYPE WakeReason;
4751+ ULONG InfoBufferOffset;
4752+ ULONG InfoBufferSize;
4753+ } NDIS_PM_WAKE_REASON, *PNDIS_PM_WAKE_REASON;
4754+
4755+ typedef struct _NDIS_PM_WAKE_PACKET {
4756+ NDIS_OBJECT_HEADER Header;
4757+ ULONG Flags;
4758+ ULONG PatternId;
4759+ NDIS_PM_COUNTED_STRING PatternFriendlyName;
4760+ ULONG OriginalPacketSize;
4761+ ULONG SavedPacketSize;
4762+ ULONG SavedPacketOffset;
4763+ } NDIS_PM_WAKE_PACKET, *PNDIS_PM_WAKE_PACKET;
4764+#endif
4765+
4766+ typedef enum _NDIS_PM_ADMIN_CONFIG_STATE {
4767+ NdisPMAdminConfigUnspecified = 0,
4768+ NdisPMAdminConfigDisabled = 1,
4769+ NdisPMAdminConfigEnabled = 2
4770+ } NDIS_PM_ADMIN_CONFIG_STATE, *PNDIS_PM_ADMIN_CONFIG_STATE;
4771+
4772+ typedef struct _NDIS_WMI_PM_ADMIN_CONFIG {
4773+ NDIS_OBJECT_HEADER Header;
4774+ NDIS_PM_ADMIN_CONFIG_STATE WakeOnPattern;
4775+ NDIS_PM_ADMIN_CONFIG_STATE WakeOnMagicPacket;
4776+ NDIS_PM_ADMIN_CONFIG_STATE DeviceSleepOnDisconnect;
4777+ NDIS_PM_ADMIN_CONFIG_STATE PMARPOffload;
4778+ NDIS_PM_ADMIN_CONFIG_STATE PMNSOffload;
4779+ NDIS_PM_ADMIN_CONFIG_STATE PMWiFiRekeyOffload;
4780+ } NDIS_WMI_PM_ADMIN_CONFIG, *PNDIS_WMI_PM_ADMIN_CONFIG;
4781+
4782+ typedef enum _NDIS_PM_CAPABILITY_STATE {
4783+ NdisPMAdminConfigUnsupported = 0,
4784+ NdisPMAdminConfigInactive = 1,
4785+ NdisPMAdminConfigActive = 2
4786+ } NDIS_PM_CAPABILITY_STATE, *PNDIS_PM_CAPABILITY_STATE;
4787+
4788+ typedef struct _NDIS_WMI_PM_ACTIVE_CAPABILITIES {
4789+ NDIS_OBJECT_HEADER Header;
4790+ NDIS_PM_CAPABILITY_STATE WakeOnPattern;
4791+ NDIS_PM_CAPABILITY_STATE WakeOnMagicPacket;
4792+ NDIS_PM_CAPABILITY_STATE DeviceSleepOnDisconnect;
4793+ NDIS_PM_CAPABILITY_STATE PMARPOffload;
4794+ NDIS_PM_CAPABILITY_STATE PMNSOffload;
4795+ NDIS_PM_CAPABILITY_STATE PMWiFiRekeyOffload;
4796+ } NDIS_WMI_PM_ACTIVE_CAPABILITIES, *PNDIS_WMI_PM_ACTIVE_CAPABILITIES;
4797+
4798+ typedef struct _NDIS_RECEIVE_FILTER_CAPABILITIES {
4799+ NDIS_OBJECT_HEADER Header;
4800+ ULONG Flags;
4801+ ULONG EnabledFilterTypes;
4802+ ULONG EnabledQueueTypes;
4803+ ULONG NumQueues;
4804+ ULONG SupportedQueueProperties;
4805+ ULONG SupportedFilterTests;
4806+ ULONG SupportedHeaders;
4807+ ULONG SupportedMacHeaderFields;
4808+ ULONG MaxMacHeaderFilters;
4809+ ULONG MaxQueueGroups;
4810+ ULONG MaxQueuesPerQueueGroup;
4811+ ULONG MinLookaheadSplitSize;
4812+ ULONG MaxLookaheadSplitSize;
4813+#if NDIS_SUPPORT_NDIS630
4814+ ULONG SupportedARPHeaderFields;
4815+ ULONG SupportedIPv4HeaderFields;
4816+ ULONG SupportedIPv6HeaderFields;
4817+ ULONG SupportedUdpHeaderFields;
4818+ ULONG MaxFieldTestsPerPacketCoalescingFilter;
4819+ ULONG MaxPacketCoalescingFilters;
4820+ ULONG NdisReserved;
4821+#endif
4822+ } NDIS_RECEIVE_FILTER_CAPABILITIES, *PNDIS_RECEIVE_FILTER_CAPABILITIES;
4823+
4824+ typedef struct _NDIS_NIC_SWITCH_CAPABILITIES {
4825+ NDIS_OBJECT_HEADER Header;
4826+ ULONG Flags;
4827+ ULONG NdisReserved1;
4828+ ULONG NumTotalMacAddresses;
4829+ ULONG NumMacAddressesPerPort;
4830+ ULONG NumVlansPerPort;
4831+ ULONG NdisReserved2;
4832+ ULONG NdisReserved3;
4833+#if NDIS_SUPPORT_NDIS630
4834+ ULONG NicSwitchCapabilities;
4835+ ULONG MaxNumSwitches;
4836+ ULONG MaxNumVPorts;
4837+ ULONG NdisReserved4;
4838+ ULONG MaxNumVFs;
4839+ ULONG MaxNumQueuePairs;
4840+ ULONG NdisReserved5;
4841+ ULONG NdisReserved6;
4842+ ULONG NdisReserved7;
4843+ ULONG MaxNumQueuePairsPerNonDefaultVPort;
4844+ ULONG NdisReserved8;
4845+ ULONG NdisReserved9;
4846+ ULONG NdisReserved10;
4847+ ULONG NdisReserved11;
4848+ ULONG NdisReserved12;
4849+ ULONG MaxNumMacAddresses;
4850+ ULONG NdisReserved13;
4851+ ULONG NdisReserved14;
4852+ ULONG NdisReserved15;
4853+ ULONG NdisReserved16;
4854+ ULONG NdisReserved17;
4855+#endif
4856+ } NDIS_NIC_SWITCH_CAPABILITIES, *PNDIS_NIC_SWITCH_CAPABILITIES;
4857+
4858+ typedef struct _NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS {
4859+ NDIS_OBJECT_HEADER Header;
4860+ ULONG Flags;
4861+ ULONG EnabledFilterTypes;
4862+ ULONG EnabledQueueTypes;
4863+ } NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS, *PNDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS;
4864+
4865+ typedef ULONG NDIS_RECEIVE_QUEUE_ID, *PNDIS_RECEIVE_QUEUE_ID;
4866+ typedef ULONG NDIS_RECEIVE_QUEUE_GROUP_ID, *PNDIS_RECEIVE_QUEUE_GROUP_ID;
4867+ typedef ULONG NDIS_RECEIVE_FILTER_ID, *PNDIS_RECEIVE_FILTER_ID;
4868+
4869+ typedef enum _NDIS_RECEIVE_FILTER_TYPE {
4870+ NdisReceiveFilterTypeUndefined,
4871+ NdisReceiveFilterTypeVMQueue,
4872+ NdisReceiveFilterTypePacketCoalescing,
4873+ NdisReceiveFilterTypeMaximum
4874+ } NDIS_RECEIVE_FILTER_TYPE, *PNDIS_RECEIVE_FILTER_TYPE;
4875+
4876+ typedef enum _NDIS_FRAME_HEADER {
4877+ NdisFrameHeaderUndefined,
4878+ NdisFrameHeaderMac,
4879+ NdisFrameHeaderArp,
4880+ NdisFrameHeaderIPv4,
4881+ NdisFrameHeaderIPv6,
4882+ NdisFrameHeaderUdp,
4883+ NdisFrameHeaderMaximum
4884+ } NDIS_FRAME_HEADER, *PNDIS_FRAME_HEADER;
4885+
4886+ typedef enum _NDIS_MAC_HEADER_FIELD {
4887+ NdisMacHeaderFieldUndefined,
4888+ NdisMacHeaderFieldDestinationAddress,
4889+ NdisMacHeaderFieldSourceAddress,
4890+ NdisMacHeaderFieldProtocol,
4891+ NdisMacHeaderFieldVlanId,
4892+ NdisMacHeaderFieldPriority,
4893+ NdisMacHeaderFieldPacketType,
4894+ NdisMacHeaderFieldMaximum
4895+ } NDIS_MAC_HEADER_FIELD, *PNDIS_MAC_HEADER_FIELD;
4896+
4897+ typedef enum _NDIS_MAC_PACKET_TYPE {
4898+ NdisMacPacketTypeUndefined = 0,
4899+ NdisMacPacketTypeUnicast = 1,
4900+ NdisMacPacketTypeMulticast = 2,
4901+ NdisMacPacketTypeBroadcast = 3,
4902+ NdisMacPacketTypeMaximum
4903+ } NDIS_MAC_PACKET_TYPE, *PNDIS_MAC_PACKET_TYPE;
4904+
4905+ typedef enum _NDIS_ARP_HEADER_FIELD {
4906+ NdisARPHeaderFieldUndefined,
4907+ NdisARPHeaderFieldOperation,
4908+ NdisARPHeaderFieldSPA,
4909+ NdisARPHeaderFieldTPA,
4910+ NdisARPHeaderFieldMaximum
4911+ } NDIS_ARP_HEADER_FIELD, *PNDIS_ARP_HEADER_FIELD;
4912+
4913+ typedef enum _NDIS_IPV4_HEADER_FIELD {
4914+ NdisIPv4HeaderFieldUndefined,
4915+ NdisIPv4HeaderFieldProtocol,
4916+ NdisIPv4HeaderFieldMaximum
4917+ } NDIS_IPV4_HEADER_FIELD, *PNDIS_IPV4_HEADER_FIELD;
4918+
4919+ typedef enum _NDIS_IPV6_HEADER_FIELD {
4920+ NdisIPv6HeaderFieldUndefined,
4921+ NdisIPv6HeaderFieldProtocol,
4922+ NdisIPv6HeaderFieldMaximum
4923+ } NDIS_IPV6_HEADER_FIELD, *PNDIS_IPV6_HEADER_FIELD;
4924+
4925+ typedef enum _NDIS_UDP_HEADER_FIELD {
4926+ NdisUdpHeaderFieldUndefined,
4927+ NdisUdpHeaderFieldDestinationPort,
4928+ NdisUdpHeaderFieldMaximum
4929+ } NDIS_UDP_HEADER_FIELD, *PNDIS_UDP_HEADER_FIELD;
4930+
4931+ typedef enum _NDIS_RECEIVE_FILTER_TEST {
4932+ NdisReceiveFilterTestUndefined,
4933+ NdisReceiveFilterTestEqual,
4934+ NdisReceiveFilterTestMaskEqual,
4935+ NdisReceiveFilterTestNotEqual,
4936+ NdisReceiveFilterTestMaximum
4937+ } NDIS_RECEIVE_FILTER_TEST, *PNDIS_RECEIVE_FILTER_TEST;
4938+
4939+ typedef struct _NDIS_RECEIVE_FILTER_FIELD_PARAMETERS {
4940+ NDIS_OBJECT_HEADER Header;
4941+ ULONG Flags;
4942+ NDIS_FRAME_HEADER FrameHeader;
4943+ NDIS_RECEIVE_FILTER_TEST ReceiveFilterTest;
4944+ union _HEADER_FIELD {
4945+ NDIS_MAC_HEADER_FIELD MacHeaderField;
4946+ NDIS_ARP_HEADER_FIELD ArpHeaderField;
4947+ NDIS_IPV4_HEADER_FIELD IPv4HeaderField;
4948+ NDIS_IPV6_HEADER_FIELD IPv6HeaderField;
4949+ NDIS_UDP_HEADER_FIELD UdpHeaderField;
4950+ } HeaderField;
4951+ union _FIELD_VALUE {
4952+ UCHAR FieldByteValue;
4953+ USHORT FieldShortValue;
4954+ ULONG FieldLongValue;
4955+ ULONG64 FieldLong64Value;
4956+ UCHAR FieldByteArrayValue[16];
4957+ } FieldValue;
4958+ union _RESULT_VALUE {
4959+ UCHAR ResultByteValue;
4960+ USHORT ResultShortValue;
4961+ ULONG ResultLongValue;
4962+ ULONG64 ResultLong64Value;
4963+ UCHAR ResultByteArrayValue[16];
4964+ } ResultValue;
4965+ } NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, *PNDIS_RECEIVE_FILTER_FIELD_PARAMETERS;
4966+
4967+#if NDIS_SUPPORT_NDIS630
4968+ typedef ULONG NDIS_NIC_SWITCH_VPORT_ID, *PNDIS_NIC_SWITCH_VPORT_ID;
4969+#endif
4970+
4971+ typedef struct _NDIS_RECEIVE_FILTER_PARAMETERS {
4972+ NDIS_OBJECT_HEADER Header;
4973+ ULONG Flags;
4974+ NDIS_RECEIVE_FILTER_TYPE FilterType;
4975+ NDIS_RECEIVE_QUEUE_ID QueueId;
4976+ NDIS_RECEIVE_FILTER_ID FilterId;
4977+ ULONG FieldParametersArrayOffset;
4978+ ULONG FieldParametersArrayNumElements;
4979+ ULONG FieldParametersArrayElementSize;
4980+ ULONG RequestedFilterIdBitCount;
4981+#if NDIS_SUPPORT_NDIS630
4982+ ULONG MaxCoalescingDelay;
4983+ NDIS_NIC_SWITCH_VPORT_ID VPortId;
4984+#endif
4985+ } NDIS_RECEIVE_FILTER_PARAMETERS, *PNDIS_RECEIVE_FILTER_PARAMETERS;
4986+
4987+ typedef struct _NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS {
4988+ NDIS_OBJECT_HEADER Header;
4989+ ULONG Flags;
4990+ NDIS_RECEIVE_QUEUE_ID QueueId;
4991+ NDIS_RECEIVE_FILTER_ID FilterId;
4992+ } NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS, *PNDIS_RECEIVE_FILTER_CLEAR_PARAMETERS;
4993+
4994+ typedef enum _NDIS_RECEIVE_QUEUE_TYPE {
4995+ NdisReceiveQueueTypeUnspecified,
4996+ NdisReceiveQueueTypeVMQueue,
4997+ NdisReceiveQueueTypeMaximum
4998+ } NDIS_RECEIVE_QUEUE_TYPE, *PNDIS_RECEIVE_QUEUE_TYPE;
4999+
5000+ typedef NDIS_IF_COUNTED_STRING NDIS_QUEUE_NAME, *PNDIS_QUEUE_NAME;
5001+ typedef NDIS_IF_COUNTED_STRING NDIS_VM_NAME, *PNDIS_VM_NAME;
5002+ typedef NDIS_IF_COUNTED_STRING NDIS_VM_FRIENDLYNAME, *PNDIS_VM_FRIENDLYNAME;
5003+ typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME;
5004+ typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL;
5005+ typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NAME, *PNDIS_SWITCH_NAME;
5006+ typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_FRIENDLYNAME, *PNDIS_SWITCH_FRIENDLYNAME;
5007+ typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_NAME, *PNDIS_SWITCH_PORT_NAME;
5008+ typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_PORT_FRIENDLYNAME, *PNDIS_SWITCH_PORT_FRIENDLYNAME;
5009+ typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NIC_NAME, *PNDIS_SWITCH_NIC_NAME;
5010+ typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_NIC_FRIENDLYNAME, *PNDIS_SWITCH_NIC_FRIENDLYNAME;
5011+ typedef NDIS_IF_COUNTED_STRING NDIS_SWITCH_EXTENSION_FRIENDLYNAME, *PNDIS_SWITCH_EXTENSION_FRIENDLYNAME;
5012+ typedef NDIS_IF_COUNTED_STRING NDIS_VENDOR_NAME, *PNDIS_VENDOR_NAME;
5013+
5014+ typedef struct _NDIS_RECEIVE_QUEUE_PARAMETERS {
5015+ NDIS_OBJECT_HEADER Header;
5016+ ULONG Flags;
5017+ NDIS_RECEIVE_QUEUE_TYPE QueueType;
5018+ NDIS_RECEIVE_QUEUE_ID QueueId;
5019+ NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
5020+ GROUP_AFFINITY ProcessorAffinity;
5021+ ULONG NumSuggestedReceiveBuffers;
5022+ ULONG MSIXTableEntry;
5023+ ULONG LookaheadSize;
5024+ NDIS_VM_NAME VmName;
5025+ NDIS_QUEUE_NAME QueueName;
5026+#if NDIS_SUPPORT_NDIS630
5027+ ULONG PortId;
5028+ ULONG InterruptCoalescingDomainId;
5029+#endif
5030+ } NDIS_RECEIVE_QUEUE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_PARAMETERS;
5031+
5032+ typedef struct _NDIS_RECEIVE_QUEUE_FREE_PARAMETERS {
5033+ NDIS_OBJECT_HEADER Header;
5034+ ULONG Flags;
5035+ NDIS_RECEIVE_QUEUE_ID QueueId;
5036+ } NDIS_RECEIVE_QUEUE_FREE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_FREE_PARAMETERS;
5037+
5038+ typedef enum _NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE {
5039+ NdisReceiveQueueOperationalStateUndefined,
5040+ NdisReceiveQueueOperationalStateRunning,
5041+ NdisReceiveQueueOperationalStatePaused,
5042+ NdisReceiveQueueOperationalStateDmaStopped,
5043+ NdisReceiveQueueOperationalStateMaximum
5044+ } NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE, *PNDIS_RECEIVE_QUEUE_OPERATIONAL_STATE;
5045+
5046+ typedef struct _NDIS_RECEIVE_QUEUE_INFO {
5047+ NDIS_OBJECT_HEADER Header;
5048+ ULONG Flags;
5049+ NDIS_RECEIVE_QUEUE_TYPE QueueType;
5050+ NDIS_RECEIVE_QUEUE_ID QueueId;
5051+ NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
5052+ NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE QueueState;
5053+ GROUP_AFFINITY ProcessorAffinity;
5054+ ULONG NumSuggestedReceiveBuffers;
5055+ ULONG MSIXTableEntry;
5056+ ULONG LookaheadSize;
5057+ NDIS_VM_NAME VmName;
5058+ NDIS_QUEUE_NAME QueueName;
5059+#if NDIS_SUPPORT_NDIS630
5060+ ULONG NumFilters;
5061+ ULONG InterruptCoalescingDomainId;
5062+#endif
5063+ } NDIS_RECEIVE_QUEUE_INFO, *PNDIS_RECEIVE_QUEUE_INFO;
5064+
5065+ typedef struct _NDIS_RECEIVE_QUEUE_INFO_ARRAY {
5066+ NDIS_OBJECT_HEADER Header;
5067+ ULONG FirstElementOffset;
5068+ ULONG NumElements;
5069+ ULONG ElementSize;
5070+ } NDIS_RECEIVE_QUEUE_INFO_ARRAY, *PNDIS_RECEIVE_QUEUE_INFO_ARRAY;
5071+
5072+ typedef struct _NDIS_RECEIVE_FILTER_INFO {
5073+ NDIS_OBJECT_HEADER Header;
5074+ ULONG Flags;
5075+ NDIS_RECEIVE_FILTER_TYPE FilterType;
5076+ NDIS_RECEIVE_FILTER_ID FilterId;
5077+ } NDIS_RECEIVE_FILTER_INFO, *PNDIS_RECEIVE_FILTER_INFO;
5078+
5079+ typedef struct _NDIS_RECEIVE_FILTER_INFO_ARRAY {
5080+ NDIS_OBJECT_HEADER Header;
5081+ NDIS_RECEIVE_QUEUE_ID QueueId;
5082+ ULONG FirstElementOffset;
5083+ ULONG NumElements;
5084+ ULONG ElementSize;
5085+#if NDIS_SUPPORT_NDIS630
5086+ ULONG Flags;
5087+ NDIS_NIC_SWITCH_VPORT_ID VPortId;
5088+#endif
5089+ } NDIS_RECEIVE_FILTER_INFO_ARRAY, *PNDIS_RECEIVE_FILTER_INFO_ARRAY;
5090+
5091+ typedef struct _NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS {
5092+ NDIS_OBJECT_HEADER Header;
5093+ ULONG Flags;
5094+ NDIS_RECEIVE_QUEUE_ID QueueId;
5095+ NDIS_STATUS CompletionStatus;
5096+ } NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS;
5097+
5098+ typedef struct _NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY {
5099+ NDIS_OBJECT_HEADER Header;
5100+ ULONG Flags;
5101+ ULONG FirstElementOffset;
5102+ ULONG NumElements;
5103+ ULONG ElementSize;
5104+ } NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY, *PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY;
5105+#endif
5106+
5107+#if NTDDI_VERSION >= 0x06000000 || NDIS_SUPPORT_NDIS6
5108+#define NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS 0x01000000
5109+#define NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR 0x02000000
5110+#define NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC 0x04000000
5111+#if NDIS_SUPPORT_NDIS620
5112+#define NDIS_RSS_CAPS_USING_MSI_X 0x08000000
5113+#endif
5114+#if NDIS_SUPPORT_NDIS630
5115+#define NDIS_RSS_CAPS_RSS_AVAILABLE_ON_PORTS 0x10000000
5116+#define NDIS_RSS_CAPS_SUPPORTS_MSI_X 0x20000000
5117+#endif
5118+#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4 0x00000100
5119+#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6 0x00000200
5120+#define NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX 0x00000400
5121+
5122+#define NdisHashFunctionToeplitz 0x00000001
5123+#define NdisHashFunctionReserved1 0x00000002
5124+#define NdisHashFunctionReserved2 0x00000004
5125+#define NdisHashFunctionReserved3 0x00000008
5126+
5127+#define NDIS_HASH_FUNCTION_MASK 0x000000ff
5128+#define NDIS_HASH_TYPE_MASK 0x00ffff00
5129+
5130+#define NDIS_RSS_HASH_FUNC_FROM_HASH_INFO(HINFO) ((HINFO) & (NDIS_HASH_FUNCTION_MASK))
5131+#define NDIS_RSS_HASH_TYPE_FROM_HASH_INFO(HINFO) ((HINFO) & (NDIS_HASH_TYPE_MASK))
5132+#define NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC(HTYPE, HFCT) ((HTYPE) | (HFCT))
5133+
5134+#define NDIS_HASH_IPV4 0x00000100
5135+#define NDIS_HASH_TCP_IPV4 0x00000200
5136+#define NDIS_HASH_IPV6 0x00000400
5137+#define NDIS_HASH_IPV6_EX 0x00000800
5138+#define NDIS_HASH_TCP_IPV6 0x00001000
5139+#define NDIS_HASH_TCP_IPV6_EX 0x00002000
5140+
5141+#define NDIS_RSS_PARAM_FLAG_BASE_CPU_UNCHANGED 0x0001
5142+#define NDIS_RSS_PARAM_FLAG_HASH_INFO_UNCHANGED 0x0002
5143+#define NDIS_RSS_PARAM_FLAG_ITABLE_UNCHANGED 0x0004
5144+#define NDIS_RSS_PARAM_FLAG_HASH_KEY_UNCHANGED 0x0008
5145+#define NDIS_RSS_PARAM_FLAG_DISABLE_RSS 0x0010
5146+
5147+#define NDIS_RSS_INDIRECTION_TABLE_SIZE_REVISION_1 128
5148+#define NDIS_RSS_HASH_SECRET_KEY_SIZE_REVISION_1 40
5149+
5150+#define NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_1 128
5151+#define NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_1 40
5152+
5153+#if NDIS_SUPPORT_NDIS620
5154+#define NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_2 (128 * sizeof (PROCESSOR_NUMBER))
5155+#define NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_2 40
5156+#endif
5157+
5158+#define NDIS_RECEIVE_HASH_FLAG_ENABLE_HASH 0x00000001
5159+#define NDIS_RECEIVE_HASH_FLAG_HASH_INFO_UNCHANGED 0x00000002
5160+#define NDIS_RECEIVE_HASH_FLAG_HASH_KEY_UNCHANGED 0x00000004
5161+
5162+#define NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS 0x00000001
5163+
5164+#define NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 1
5165+#define NDIS_RECEIVE_HASH_PARAMETERS_REVISION_1 1
5166+#define NDIS_PORT_STATE_REVISION_1 1
5167+#define NDIS_PORT_CHARACTERISTICS_REVISION_1 1
5168+#define NDIS_PORT_ARRAY_REVISION_1 1
5169+#define NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_1 1
5170+#if NDIS_SUPPORT_NDIS620
5171+#define NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_2 2
5172+#endif
5173+#if NDIS_SUPPORT_NDIS630
5174+#define NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 2
5175+#endif
5176+
5177+#define NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_CAPABILITIES, NumberOfReceiveQueues)
5178+#define NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_PARAMETERS, HashSecretKeyOffset)
5179+#define NDIS_SIZEOF_RECEIVE_HASH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_HASH_PARAMETERS, HashSecretKeyOffset)
5180+#define NDIS_SIZEOF_PORT_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_STATE, Flags)
5181+#define NDIS_SIZEOF_PORT_CHARACTERISTICS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_CHARACTERISTICS, RcvAuthorizationState)
5182+#define NDIS_SIZEOF_PORT_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_PORT_ARRAY, Ports)
5183+#if NDIS_SUPPORT_NDIS620
5184+#define NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_PARAMETERS, ProcessorMasksEntrySize)
5185+#endif
5186+#if NDIS_SUPPORT_NDIS630
5187+#define NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_SCALE_CAPABILITIES, NumberOfIndirectionTableEntries)
5188+#endif
5189+
5190+ typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES {
5191+ NDIS_OBJECT_HEADER Header;
5192+ ULONG CapabilitiesFlags;
5193+ ULONG NumberOfInterruptMessages;
5194+ ULONG NumberOfReceiveQueues;
5195+#if NDIS_SUPPORT_NDIS630
5196+ USHORT NumberOfIndirectionTableEntries;
5197+#endif
5198+ } NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES;
5199+
5200+ typedef struct _NDIS_RECEIVE_SCALE_PARAMETERS {
5201+ NDIS_OBJECT_HEADER Header;
5202+ USHORT Flags;
5203+ USHORT BaseCpuNumber;
5204+ ULONG HashInformation;
5205+ USHORT IndirectionTableSize;
5206+ ULONG IndirectionTableOffset;
5207+ USHORT HashSecretKeySize;
5208+ ULONG HashSecretKeyOffset;
5209+#if NDIS_SUPPORT_NDIS620
5210+ ULONG ProcessorMasksOffset;
5211+ ULONG NumberOfProcessorMasks;
5212+ ULONG ProcessorMasksEntrySize;
5213+#endif
5214+ } NDIS_RECEIVE_SCALE_PARAMETERS, *PNDIS_RECEIVE_SCALE_PARAMETERS;
5215+
5216+ typedef struct _NDIS_RECEIVE_HASH_PARAMETERS {
5217+ NDIS_OBJECT_HEADER Header;
5218+ ULONG Flags;
5219+ ULONG HashInformation;
5220+ USHORT HashSecretKeySize;
5221+ ULONG HashSecretKeyOffset;
5222+ } NDIS_RECEIVE_HASH_PARAMETERS, *PNDIS_RECEIVE_HASH_PARAMETERS;
5223+
5224+ typedef enum _NDIS_PROCESSOR_VENDOR {
5225+ NdisProcessorVendorUnknown,
5226+ NdisProcessorVendorGenuinIntel,
5227+ NdisProcessorVendorGenuineIntel = NdisProcessorVendorGenuinIntel,
5228+ NdisProcessorVendorAuthenticAMD
5229+ } NDIS_PROCESSOR_VENDOR, *PNDIS_PROCESSOR_VENDOR;
5230+
5231+#if NDIS_SUPPORT_NDIS620
5232+#define NDIS_HYPERVISOR_INFO_FLAG_HYPERVISOR_PRESENT 0x00000001
5233+
5234+#define NDIS_RSS_PROCESSOR_INFO_REVISION_1 1
5235+#define NDIS_SYSTEM_PROCESSOR_INFO_EX_REVISION_1 1
5236+#define NDIS_HYPERVISOR_INFO_REVISION_1 1
5237+#define NDIS_WMI_RECEIVE_QUEUE_INFO_REVISION_1 1
5238+#define NDIS_WMI_RECEIVE_QUEUE_PARAMETERS_REVISION_1 1
5239+#if NDIS_SUPPORT_NDIS630
5240+#define NDIS_RSS_PROCESSOR_INFO_REVISION_2 2
5241+#endif
5242+
5243+#define NDIS_SIZEOF_RSS_PROCESSOR_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR, PreferenceIndex)
5244+#define NDIS_SIZEOF_RSS_PROCESSOR_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR_INFO, RssProcessorEntrySize)
5245+#define NDIS_SIZEOF_SYSTEM_PROCESSOR_INFO_EX_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SYSTEM_PROCESSOR_INFO_EX, ProcessorInfoEntrySize)
5246+#define NDIS_SIZEOF_HYPERVISOR_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_HYPERVISOR_INFO, PartitionType)
5247+#define NDIS_SIZEOF_WMI_RECEIVE_QUEUE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_RECEIVE_QUEUE_PARAMETERS, QueueName)
5248+#define NDIS_SIZEOF_WMI_RECEIVE_QUEUE_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_WMI_RECEIVE_QUEUE_INFO, QueueName)
5249+#if NDIS_SUPPORT_NDIS630
5250+#define NDIS_SIZEOF_RSS_PROCESSOR_INFO_REVISION_2 RTL_SIZEOF_THROUGH_FIELD (NDIS_RSS_PROCESSOR_INFO, RssProfile)
5251+#endif
5252+
5253+ typedef struct _NDIS_RSS_PROCESSOR {
5254+ PROCESSOR_NUMBER ProcNum;
5255+ USHORT PreferenceIndex;
5256+ USHORT Reserved;
5257+ } NDIS_RSS_PROCESSOR, *PNDIS_RSS_PROCESSOR;
5258+
5259+#if NDIS_SUPPORT_NDIS630
5260+ typedef enum _NDIS_RSS_PROFILE {
5261+ NdisRssProfileClosest = 1,
5262+ NdisRssProfileClosestStatic,
5263+ NdisRssProfileNuma,
5264+ NdisRssProfileNumaStatic,
5265+ NdisRssProfileConservative,
5266+ NdisRssProfileMaximum,
5267+ } NDIS_RSS_PROFILE, *PNDIS_RSS_PROFILE;
5268+#endif
5269+
5270+ typedef struct _NDIS_RSS_PROCESSOR_INFO {
5271+ NDIS_OBJECT_HEADER Header;
5272+ ULONG Flags;
5273+ PROCESSOR_NUMBER RssBaseProcessor;
5274+ ULONG MaxNumRssProcessors;
5275+ USHORT PreferredNumaNode;
5276+ ULONG RssProcessorArrayOffset;
5277+ ULONG RssProcessorCount;
5278+ ULONG RssProcessorEntrySize;
5279+#if NDIS_SUPPORT_NDIS630
5280+ PROCESSOR_NUMBER RssMaxProcessor;
5281+ NDIS_RSS_PROFILE RssProfile;
5282+#endif
5283+ } NDIS_RSS_PROCESSOR_INFO, *PNDIS_RSS_PROCESSOR_INFO;
5284+
5285+ typedef struct _NDIS_PROCESSOR_INFO_EX {
5286+ PROCESSOR_NUMBER ProcNum;
5287+ ULONG SocketId;
5288+ ULONG CoreId;
5289+ ULONG HyperThreadId;
5290+ USHORT NodeId;
5291+ USHORT NodeDistance;
5292+ } NDIS_PROCESSOR_INFO_EX, *PNDIS_PROCESSOR_INFO_EX;
5293+
5294+ typedef struct _NDIS_SYSTEM_PROCESSOR_INFO_EX {
5295+ NDIS_OBJECT_HEADER Header;
5296+ ULONG Flags;
5297+ NDIS_PROCESSOR_VENDOR ProcessorVendor;
5298+ ULONG NumSockets;
5299+ ULONG NumCores;
5300+ ULONG NumCoresPerSocket;
5301+ ULONG MaxHyperThreadingProcsPerCore;
5302+ ULONG ProcessorInfoOffset;
5303+ ULONG NumberOfProcessors;
5304+ ULONG ProcessorInfoEntrySize;
5305+ } NDIS_SYSTEM_PROCESSOR_INFO_EX, *PNDIS_SYSTEM_PROCESSOR_INFO_EX;
5306+
5307+ typedef enum _NDIS_HYPERVISOR_PARTITION_TYPE {
5308+ NdisHypervisorPartitionTypeUnknown,
5309+ NdisHypervisorPartitionTypeMsHvParent,
5310+ NdisHypervisorPartitionMsHvChild,
5311+ NdisHypervisorPartitionTypeMax
5312+ } NDIS_HYPERVISOR_PARTITION_TYPE, *PNDIS_HYPERVISOR_PARTITION_TYPE;
5313+
5314+ typedef struct _NDIS_HYPERVISOR_INFO {
5315+ NDIS_OBJECT_HEADER Header;
5316+ ULONG Flags;
5317+ NDIS_HYPERVISOR_PARTITION_TYPE PartitionType;
5318+ } NDIS_HYPERVISOR_INFO, *PNDIS_HYPERVISOR_INFO;
5319+
5320+ typedef struct _NDIS_WMI_GROUP_AFFINITY {
5321+ ULONG64 Mask;
5322+ USHORT Group;
5323+ USHORT Reserved[3];
5324+ } NDIS_WMI_GROUP_AFFINITY, *PNDIS_WMI_GROUP_AFFINITY;
5325+
5326+ typedef struct _NDIS_WMI_RECEIVE_QUEUE_PARAMETERS {
5327+ NDIS_OBJECT_HEADER Header;
5328+ ULONG Flags;
5329+ NDIS_RECEIVE_QUEUE_TYPE QueueType;
5330+ NDIS_RECEIVE_QUEUE_ID QueueId;
5331+ NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
5332+ NDIS_WMI_GROUP_AFFINITY ProcessorAffinity;
5333+ ULONG NumSuggestedReceiveBuffers;
5334+ ULONG MSIXTableEntry;
5335+ ULONG LookaheadSize;
5336+ NDIS_VM_NAME VmName;
5337+ NDIS_QUEUE_NAME QueueName;
5338+ } NDIS_WMI_RECEIVE_QUEUE_PARAMETERS, *PNDIS_WMI_RECEIVE_QUEUE_PARAMETERS;
5339+
5340+ typedef struct _NDIS_WMI_RECEIVE_QUEUE_INFO {
5341+ NDIS_OBJECT_HEADER Header;
5342+ ULONG Flags;
5343+ NDIS_RECEIVE_QUEUE_TYPE QueueType;
5344+ NDIS_RECEIVE_QUEUE_ID QueueId;
5345+ NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
5346+ NDIS_RECEIVE_QUEUE_OPERATIONAL_STATE QueueState;
5347+ NDIS_WMI_GROUP_AFFINITY ProcessorAffinity;
5348+ ULONG NumSuggestedReceiveBuffers;
5349+ ULONG MSIXTableEntry;
5350+ ULONG LookaheadSize;
5351+ NDIS_VM_NAME VmName;
5352+ NDIS_QUEUE_NAME QueueName;
5353+ } NDIS_WMI_RECEIVE_QUEUE_INFO, *PNDIS_WMI_RECEIVE_QUEUE_INFO;
5354+#endif
5355+
5356+#if NDIS_SUPPORT_NDIS630
5357+
5358+#define NDIS_NDK_PERFORMANCE_COUNTER_MASK(CNTFIELD) (((ULONG64) 1) << (FIELD_OFFSET (NDIS_NDK_PERFORMANCE_COUNTERS, CNTFIELD) / sizeof (ULONG64)))
5359+
5360+#define OID_NDK_SET_STATE 0xfc040201
5361+#define OID_NDK_STATISTICS 0xfc040202
5362+#define OID_NDK_CONNECTIONS 0xfc040203
5363+#define OID_NDK_LOCAL_ENDPOINTS 0xfc040204
5364+
5365+#define OID_QOS_HARDWARE_CAPABILITIES 0xfc050001
5366+#define OID_QOS_CURRENT_CAPABILITIES 0xfc050002
5367+#define OID_QOS_PARAMETERS 0xfc050003
5368+#define OID_QOS_OPERATIONAL_PARAMETERS 0xfc050004
5369+#define OID_QOS_REMOTE_PARAMETERS 0xfc050005
5370+
5371+#define NDIS_QOS_MAXIMUM_PRIORITIES 8
5372+#define NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES 8
5373+
5374+#define NDIS_QOS_CAPABILITIES_STRICT_TSA_SUPPORTED 0x00000001
5375+#define NDIS_QOS_CAPABILITIES_MACSEC_BYPASS_SUPPORTED 0x00000002
5376+#define NDIS_QOS_CAPABILITIES_CEE_DCBX_SUPPORTED 0x00000004
5377+#define NDIS_QOS_CAPABILITIES_IEEE_DCBX_SUPPORTED 0x00000008
5378+
5379+#define NDIS_QOS_CLASSIFICATION_SET_BY_MINIPORT_MASK 0xff000000
5380+#define NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT 0x01000000
5381+
5382+#define NDIS_QOS_CONDITION_RESERVED 0x0
5383+#define NDIS_QOS_CONDITION_DEFAULT 0x1
5384+#define NDIS_QOS_CONDITION_TCP_PORT 0x2
5385+#define NDIS_QOS_CONDITION_UDP_PORT 0x3
5386+#define NDIS_QOS_CONDITION_TCP_OR_UDP_PORT 0x4
5387+#define NDIS_QOS_CONDITION_ETHERTYPE 0x5
5388+#define NDIS_QOS_CONDITION_NETDIRECT_PORT 0x6
5389+#define NDIS_QOS_CONDITION_MAXIMUM 0x7
5390+
5391+#define NDIS_QOS_ACTION_PRIORITY 0x0
5392+#define NDIS_QOS_ACTION_MAXIMUM 0x1
5393+
5394+#define NDIS_QOS_PARAMETERS_ETS_CHANGED 0x00000001
5395+#define NDIS_QOS_PARAMETERS_ETS_CONFIGURED 0x00000002
5396+#define NDIS_QOS_PARAMETERS_PFC_CHANGED 0x00000100
5397+#define NDIS_QOS_PARAMETERS_PFC_CONFIGURED 0x00000200
5398+#define NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED 0x00010000
5399+#define NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED 0x00020000
5400+#define NDIS_QOS_PARAMETERS_WILLING 0x80000000
5401+
5402+#define NDIS_QOS_TSA_STRICT 0x0
5403+#define NDIS_QOS_TSA_CBS 0x1
5404+#define NDIS_QOS_TSA_ETS 0x2
5405+#define NDIS_QOS_TSA_MAXIMUM 0x3
5406+
5407+#define NDIS_PF_FUNCTION_ID (USHORT) -1
5408+#define NDIS_INVALID_VF_FUNCTION_ID (USHORT) -1
5409+#define NDIS_INVALID_RID (ULONG) -1
5410+#define NDIS_DEFAULT_VPORT_ID 0
5411+#define NDIS_DEFAULT_SWITCH_ID 0
5412+#define NDIS_INVALID_SWITCH_ID (ULONG) -1
5413+
5414+#define NDIS_NIC_SWITCH_PARAMETERS_CHANGE_MASK 0xffff0000
5415+#define NDIS_NIC_SWITCH_PARAMETERS_SWITCH_NAME_CHANGED 0x00010000
5416+
5417+#define NDIS_SRIOV_CAPS_SRIOV_SUPPORTED 0x00000001
5418+#define NDIS_SRIOV_CAPS_PF_MINIPORT 0x00000002
5419+#define NDIS_SRIOV_CAPS_VF_MINIPORT 0x00000004
5420+
5421+#define NDIS_NIC_SWITCH_VF_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH 0x00000001
5422+
5423+#define NDIS_NIC_SWITCH_VPORT_PARAMS_LOOKAHEAD_SPLIT_ENABLED 0x00000001
5424+#define NDIS_NIC_SWITCH_VPORT_PARAMS_CHANGE_MASK 0xffff0000
5425+#define NDIS_NIC_SWITCH_VPORT_PARAMS_FLAGS_CHANGED 0x00010000
5426+#define NDIS_NIC_SWITCH_VPORT_PARAMS_NAME_CHANGED 0x00020000
5427+#define NDIS_NIC_SWITCH_VPORT_PARAMS_INT_MOD_CHANGED 0x00040000
5428+#define NDIS_NIC_SWITCH_VPORT_PARAMS_STATE_CHANGED 0x00080000
5429+#define NDIS_NIC_SWITCH_VPORT_PARAMS_PROCESSOR_AFFINITY_CHANGED 0x00100000
5430+
5431+#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION 0x00000001
5432+#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH 0x00000002
5433+
5434+#define NDIS_NIC_SWITCH_VPORT_INFO_LOOKAHEAD_SPLIT_ENABLED 0x00000001
5435+
5436+ DEFINE_GUID (GUID_NDIS_NDK_CAPABILITIES, 0x7969ba4d, 0xdd80, 0x4bc7, 0xb3, 0xe6, 0x68, 0x04, 0x39, 0x97, 0xe5, 0x19);
5437+ DEFINE_GUID (GUID_NDIS_NDK_STATE, 0x530c69c9, 0x2f51, 0x49de, 0xa1, 0xaf, 0x08, 0x8d, 0x54, 0xff, 0xa4, 0x74);
5438+
5439+#define NDIS_NDK_CAPABILITIES_REVISION_1 1
5440+#define NDIS_NDK_STATISTICS_INFO_REVISION_1 1
5441+#define NDIS_NDK_CONNECTIONS_REVISION_1 1
5442+#define NDIS_NDK_LOCAL_ENDPOINTS_REVISION_1 1
5443+#define NDIS_QOS_CAPABILITIES_REVISION_1 1
5444+#define NDIS_QOS_CLASSIFICATION_ELEMENT_REVISION_1 1
5445+#define NDIS_QOS_PARAMETERS_REVISION_1 1
5446+#define NDIS_NIC_SWITCH_PARAMETERS_REVISION_1 1
5447+#define NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS_REVISION_1 1
5448+#define NDIS_NIC_SWITCH_INFO_REVISION_1 1
5449+#define NDIS_NIC_SWITCH_INFO_ARRAY_REVISION_1 1
5450+#define NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_1 1
5451+#define NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS_REVISION_1 1
5452+#define NDIS_NIC_SWITCH_VPORT_INFO_REVISION_1 1
5453+#define NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_REVISION_1 1
5454+#define NDIS_NIC_SWITCH_VF_PARAMETERS_REVISION_1 1
5455+#define NDIS_NIC_SWITCH_FREE_VF_PARAMETERS_REVISION_1 1
5456+#define NDIS_NIC_SWITCH_VF_INFO_REVISION_1 1
5457+#define NDIS_NIC_SWITCH_VF_INFO_ARRAY_REVISION_1 1
5458+#define NDIS_SRIOV_CAPABILITIES_REVISION_1 1
5459+#define NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 1
5460+#define NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 1
5461+#define NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 1
5462+#define NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 1
5463+#define NDIS_SRIOV_RESET_VF_PARAMETERS_REVISION_1 1
5464+#define NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS_REVISION_1 1
5465+#define NDIS_SRIOV_CONFIG_STATE_PARAMETERS_REVISION_1 1
5466+#define NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO_REVISION_1 1
5467+#define NDIS_SRIOV_PROBED_BARS_INFO_REVISION_1 1
5468+#define NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS_REVISION_1 1
5469+#define NDIS_SRIOV_BAR_RESOURCES_INFO_REVISION_1 1
5470+#define NDIS_SRIOV_PF_LUID_INFO_REVISION_1 1
5471+#define NDIS_SRIOV_VF_SERIAL_NUMBER_INFO_REVISION_1 1
5472+#define NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO_REVISION_1 1
5473+#define NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION_1 1
5474+#define NDIS_SWITCH_PORT_PROPERTY_SECURITY_REVISION_1 1
5475+#define NDIS_SWITCH_PORT_PROPERTY_VLAN_REVISION_1 1
5476+#define NDIS_SWITCH_PORT_PROPERTY_PROFILE_REVISION_1 1
5477+#define NDIS_SWITCH_PORT_PROPERTY_CUSTOM_REVISION_1 1
5478+#define NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_REVISION_1 1
5479+#define NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS_REVISION_1 1
5480+#define NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_REVISION_1 1
5481+#define NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_REVISION_1 1
5482+#define NDIS_SWITCH_PROPERTY_PARAMETERS_REVISION_1 1
5483+#define NDIS_SWITCH_PROPERTY_CUSTOM_REVISION_1 1
5484+#define NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS_REVISION_1 1
5485+#define NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM_REVISION_1 1
5486+#define NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS_REVISION_1 1
5487+#define NDIS_SWITCH_PROPERTY_ENUM_INFO_REVISION_1 1
5488+#define NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_REVISION_1 1
5489+#define NDIS_SWITCH_FEATURE_STATUS_CUSTOM_REVISION_1 1
5490+#define NDIS_SWITCH_PORT_PARAMETERS_REVISION_1 1
5491+#define NDIS_SWITCH_PORT_ARRAY_REVISION_1 1
5492+#define NDIS_SWITCH_PARAMETERS_REVISION_1 1
5493+#define NDIS_SWITCH_NIC_PARAMETERS_REVISION_1 1
5494+#define NDIS_SWITCH_NIC_ARRAY_REVISION_1 1
5495+#define NDIS_SWITCH_NIC_OID_REQUEST_REVISION_1 1
5496+#define NDIS_SWITCH_FEATURE_STATUS_PARAMETERS_REVISION_1 1
5497+#define NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 1
5498+
5499+#define NDIS_SIZEOF_NDK_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NDK_CAPABILITIES, NdkInfo)
5500+#define NDIS_SIZEOF_NDK_STATISTICS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NDK_STATISTICS_INFO, CounterSet)
5501+#define NDIS_SIZEOF_NDK_CONNECTIONS_REVISION_1(n) FIELD_OFFSET (NDIS_NDK_CONNECTIONS, Connections[n])
5502+#define NDIS_SIZEOF_NDK_LOCAL_ENDPOINTS_REVISION_1(n) FIELD_OFFSET (NDIS_NDK_LOCAL_ENDPOINTS, LocalEndpoints[n])
5503+#define NDIS_SIZEOF_QOS_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_CAPABILITIES, MaxNumPfcEnabledTrafficClasses)
5504+#define NDIS_SIZEOF_QOS_CLASSIFICATION_ELEMENT_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_CLASSIFICATION_ELEMENT, ActionField)
5505+#define NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_QOS_PARAMETERS, FirstClassificationElementOffset)
5506+#define NDIS_SIZEOF_NIC_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_PARAMETERS, NdisReserved3)
5507+#define NDIS_SIZEOF_NIC_SWITCH_DELETE_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS, SwitchId)
5508+#define NDIS_SIZEOF_NIC_SWITCH_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_INFO, NumActiveNonDefaultVPortVlanIds)
5509+#define NDIS_SIZEOF_NIC_SWITCH_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_INFO_ARRAY, ElementSize)
5510+#define NDIS_SIZEOF_NIC_SWITCH_VPORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_PARAMETERS, LookaheadSize)
5511+#define NDIS_SIZEOF_NIC_SWITCH_DELETE_VPORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS, VPortId)
5512+#define NDIS_SIZEOF_NIC_SWITCH_VPORT_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_INFO, NumFilters)
5513+#define NDIS_SIZEOF_NIC_SWITCH_VPORT_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VPORT_INFO_ARRAY, ElementSize)
5514+#define NDIS_SIZEOF_NIC_SWITCH_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_PARAMETERS, RequestorId)
5515+#define NDIS_SIZEOF_NIC_SWITCH_FREE_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_FREE_VF_PARAMETERS, VFId)
5516+#define NDIS_SIZEOF_NIC_SWITCH_VF_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_INFO, RequestorId)
5517+#define NDIS_SIZEOF_NIC_SWITCH_VF_INFO_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_NIC_SWITCH_VF_INFO_ARRAY, ElementSize)
5518+#define NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_CAPABILITIES, SriovCapabilities)
5519+#define NDIS_SIZEOF_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS, BufferOffset)
5520+#define NDIS_SIZEOF_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS, BufferOffset)
5521+#define NDIS_SIZEOF_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS, BufferOffset)
5522+#define NDIS_SIZEOF_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS, BufferOffset)
5523+#define NDIS_SIZEOF_SRIOV_RESET_VF_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_RESET_VF_PARAMETERS, VFId)
5524+#define NDIS_SIZEOF_SRIOV_SET_VF_POWER_STATE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS, WakeEnable)
5525+#define NDIS_SIZEOF_SRIOV_CONFIG_STATE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_CONFIG_STATE_PARAMETERS, Length)
5526+#define NDIS_SIZEOF_SRIOV_VF_VENDOR_DEVICE_ID_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO, DeviceId)
5527+#define NDIS_SIZEOF_SRIOV_PROBED_BARS_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_PROBED_BARS_INFO, BaseRegisterValuesOffset)
5528+#define NDIS_SIZEOF_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS, DestVPortId)
5529+#define NDIS_SIZEOF_SRIOV_BAR_RESOURCES_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_BAR_RESOURCES_INFO, BarResourcesOffset)
5530+#define NDIS_SIZEOF_SRIOV_PF_LUID_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_PF_LUID_INFO, Luid)
5531+#define NDIS_SIZEOF_SRIOV_VF_SERIAL_NUMBER_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_SERIAL_NUMBER_INFO, SerialNumber)
5532+#define NDIS_SIZEOF_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO, BlockMask)
5533+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_SECURITY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_SECURITY, AllowTeaming)
5534+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_VLAN_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_VLAN, VlanProperties)
5535+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_PROFILE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_PROFILE, CdnLabel)
5536+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_CUSTOM, PropertyBufferOffset)
5537+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_PARAMETERS, Reserved)
5538+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS, Reserved)
5539+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO, PropertyBufferOffset)
5540+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS, Reserved)
5541+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM, FeatureStatusBufferOffset)
5542+#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_CUSTOM, PropertyBufferOffset)
5543+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS, PropertyInstanceId)
5544+#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_PARAMETERS, PropertyBufferOffset)
5545+#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_ENUM_INFO_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_ENUM_INFO, PropertyBufferOffset)
5546+#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS, NumProperties)
5547+#define NDIS_SIZEOF_NDIS_SWITCH_FEATURE_STATUS_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_FEATURE_STATUS_PARAMETERS, FeatureStatusBufferLength)
5548+#define NDIS_SIZEOF_NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS, PropertyInstanceId)
5549+#define NDIS_SIZEOF_NDIS_SWITCH_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PARAMETERS, IsActive)
5550+#define NDIS_SIZEOF_NDIS_SWITCH_FEATURE_STATUS_CUSTOM_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_FEATURE_STATUS_CUSTOM, FeatureStatusCustomBufferOffset)
5551+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_PARAMETERS, PortState)
5552+#define NDIS_SIZEOF_NDIS_SWITCH_PORT_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_PORT_ARRAY, ElementSize)
5553+#define NDIS_SIZEOF_NDIS_SWITCH_NIC_OID_REQUEST_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_OID_REQUEST, OidRequest)
5554+#define NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_SAVE_STATE, SaveDataOffset)
5555+#define NDIS_SIZEOF_NDIS_SWITCH_NIC_PARAMETERS_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_PARAMETERS, VFAssigned)
5556+#define NDIS_SIZEOF_NDIS_SWITCH_NIC_ARRAY_REVISION_1 RTL_SIZEOF_THROUGH_FIELD (NDIS_SWITCH_NIC_ARRAY, ElementSize)
5557+
5558+#define NDIS_SWITCH_PORT_PROPERTY_CUSTOM_GET_BUFFER(PPROPC) ((PVOID) ((PUCHAR) (PPROPC) + (PPROPC)->PropertyBufferOffset))
5559+#define NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_GET_PROPERTY(PPARM) ((PVOID) ((PUCHAR) (PPARM) + (PPARM)->PropertyBufferOffset))
5560+#define NDIS_SWITCH_CREATE_PROPERTY_VERSION(VMAJOR, VMINOR) (((VMAJOR) << 8) + (VMINOR))
5561+#define NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_GET_FIRST_INFO(PEPARM) ((PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO) ((PUCHAR) (PEPARM) + (PEPARM)->FirstPropertyOffset))
5562+#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)))
5563+#define NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_GET_PROPERTY(PEINFO) ((PVOID) ((PUCHAR) (PEINFO) + (PEINFO)->PropertyBufferOffset))
5564+#define NDIS_SWITCH_CREATE_FEATURE_STATUS_VERSION(VMAJOR, VMINOR) (((VMAJOR) << 8) + (VMINOR))
5565+#define NDIS_SWITCH_PROPERTY_CUSTOM_GET_BUFFER(SWPROPC) ((PVOID) ((PUCHAR) (SWPROPC) + (SWPROPC)->PropertyBufferOffset))
5566+#define NDIS_SWITCH_PROPERTY_PARAMETERS_GET_PROPERTY(SWPARA) ((PVOID) ((PUCHAR) (SWPARA) + (SWPARA)->PropertyBufferOffset))
5567+#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)))
5568+#define NDIS_SWITCH_PROPERTY_ENUM_INFO_GET_PROPERTY(SWEINFO) ((PVOID) ((PUCHAR) (SWEINFO) + (SWEINFO)->PropertyBufferOffset))
5569+#define NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_GET_FIRST_INFO(SWEPARM) ((PNDIS_SWITCH_PROPERTY_ENUM_INFO) ((PUCHAR) (SWEPARM) + (SWEPARM)->FirstPropertyOffset))
5570+#define NDIS_SWITCH_PORT_AT_ARRAY_INDEX(PA, IDX) ((PNDIS_SWITCH_PORT_PARAMETERS) ((PUCHAR) (PA) + (PA)->FirstElementOffset + ((PA)->ElementSize * (IDX))))
5571+#define NDIS_SWITCH_NIC_AT_ARRAY_INDEX(NA, IDX) ((PNDIS_SWITCH_NIC_PARAMETERS) ((PUCHAR) (NA) + (NA)->FirstElementOffset + ((NA)->ElementSize * (IDX))))
5572+
5573+#include <ndkinfo.h>
5574+#ifndef __MINGW32__
5575+#include <ws2def.h>
5576+#ifndef __CYGWIN__
5577+#include <ws2ipdef.h>
5578+#endif
5579+#endif
5580+
5581+ typedef struct _NDIS_NDK_PERFORMANCE_COUNTERS {
5582+ ULONG64 Connect;
5583+ ULONG64 Accept;
5584+ ULONG64 ConnectFailure;
5585+ ULONG64 ConnectionError;
5586+ ULONG64 ActiveConnection;
5587+ ULONG64 Reserved01;
5588+ ULONG64 Reserved02;
5589+ ULONG64 Reserved03;
5590+ ULONG64 Reserved04;
5591+ ULONG64 Reserved05;
5592+ ULONG64 Reserved06;
5593+ ULONG64 Reserved07;
5594+ ULONG64 Reserved08;
5595+ ULONG64 Reserved09;
5596+ ULONG64 Reserved10;
5597+ ULONG64 Reserved11;
5598+ ULONG64 Reserved12;
5599+ ULONG64 Reserved13;
5600+ ULONG64 Reserved14;
5601+ ULONG64 Reserved15;
5602+ ULONG64 Reserved16;
5603+ ULONG64 Reserved17;
5604+ ULONG64 Reserved18;
5605+ ULONG64 Reserved19;
5606+ ULONG64 Reserved20;
5607+ ULONG64 CQError;
5608+ ULONG64 RDMAInOctets;
5609+ ULONG64 RDMAOutOctets;
5610+ ULONG64 RDMAInFrames;
5611+ ULONG64 RDMAOutFrames;
5612+ } NDIS_NDK_PERFORMANCE_COUNTERS, *PNDIS_NDK_PERFORMANCE_COUNTERS;
5613+
5614+ typedef struct _NDIS_NDK_CAPABILITIES {
5615+ NDIS_OBJECT_HEADER Header;
5616+ ULONG Flags;
5617+ ULONG MaxQpCount;
5618+ ULONG MaxCqCount;
5619+ ULONG MaxMrCount;
5620+ ULONG MaxPdCount;
5621+ ULONG MaxInboundReadLimit;
5622+ ULONG MaxOutboundReadLimit;
5623+ ULONG MaxMwCount;
5624+ ULONG MaxSrqCount;
5625+ ULONG64 MissingCounterMask;
5626+ NDK_ADAPTER_INFO *NdkInfo;
5627+ } NDIS_NDK_CAPABILITIES, *PNDIS_NDK_CAPABILITIES;
5628+
5629+ typedef struct _NDK_WMI_ADAPTER_INFO {
5630+ NDK_VERSION Version;
5631+ UINT32 VendorId;
5632+ UINT32 DeviceId;
5633+ ULONGLONG MaxRegistrationSize;
5634+ ULONGLONG MaxWindowSize;
5635+ ULONG FRMRPageCount;
5636+ ULONG MaxInitiatorRequestSge;
5637+ ULONG MaxReceiveRequestSge;
5638+ ULONG MaxReadRequestSge;
5639+ ULONG MaxTransferLength;
5640+ ULONG MaxInlineDataSize;
5641+ ULONG MaxInboundReadLimit;
5642+ ULONG MaxOutboundReadLimit;
5643+ ULONG MaxReceiveQueueDepth;
5644+ ULONG MaxInitiatorQueueDepth;
5645+ ULONG MaxSrqDepth;
5646+ ULONG MaxCqDepth;
5647+ ULONG LargeRequestThreshold;
5648+ ULONG MaxCallerData;
5649+ ULONG MaxCalleeData;
5650+ ULONG AdapterFlags;
5651+ } NDK_WMI_ADAPTER_INFO, *PNDK_WMI_ADAPTER_INFO;
5652+
5653+ typedef struct _NDIS_WMI_NDK_CAPABILITIES {
5654+ ULONG MaxQpCount;
5655+ ULONG MaxCqCount;
5656+ ULONG MaxMrCount;
5657+ ULONG MaxPdCount;
5658+ ULONG MaxInboundReadLimit;
5659+ ULONG MaxOutboundReadLimit;
5660+ ULONG MaxMwCount;
5661+ ULONG MaxSrqCount;
5662+ ULONG64 MissingCounterMask;
5663+ NDK_WMI_ADAPTER_INFO NdkInfo;
5664+ } NDIS_WMI_NDK_CAPABILITIES, *PNDIS_WMI_NDK_CAPABILITIES;
5665+
5666+ typedef struct _NDIS_NDK_STATISTICS_INFO {
5667+ NDIS_OBJECT_HEADER Header;
5668+ ULONG Flags;
5669+ NDIS_NDK_PERFORMANCE_COUNTERS CounterSet;
5670+ } NDIS_NDK_STATISTICS_INFO;
5671+
5672+ typedef struct _NDIS_NDK_CONNECTION_ENTRY {
5673+ SOCKADDR_INET Local;
5674+ SOCKADDR_INET Remote;
5675+ BOOLEAN UserModeOwner;
5676+ ULONG OwnerPid;
5677+ } NDIS_NDK_CONNECTION_ENTRY;
5678+
5679+ typedef struct _NDIS_NDK_CONNECTIONS {
5680+ NDIS_OBJECT_HEADER Header;
5681+ ULONG Flags;
5682+ ULONG Count;
5683+ BOOLEAN NDConnectionsMappedtoTCPConnections;
5684+ NDIS_NDK_CONNECTION_ENTRY Connections[1];
5685+ } NDIS_NDK_CONNECTIONS;
5686+
5687+ typedef struct _NDIS_NDK_LOCAL_ENDPOINT_ENTRY {
5688+ SOCKADDR_INET Local;
5689+ BOOLEAN UserModeOwner;
5690+ BOOLEAN Listener;
5691+ ULONG OwnerPid;
5692+ } NDIS_NDK_LOCAL_ENDPOINT_ENTRY;
5693+
5694+ typedef struct _NDIS_NDK_LOCAL_ENDPOINTS {
5695+ NDIS_OBJECT_HEADER Header;
5696+ ULONG Flags;
5697+ ULONG Count;
5698+ BOOLEAN NDLocalEndpointsMappedtoTCPLocalEndpoints;
5699+ NDIS_NDK_LOCAL_ENDPOINT_ENTRY LocalEndpoints[1];
5700+ } NDIS_NDK_LOCAL_ENDPOINTS;
5701+
5702+ typedef struct _NDIS_QOS_CAPABILITIES {
5703+ NDIS_OBJECT_HEADER Header;
5704+ ULONG Flags;
5705+ ULONG MaxNumTrafficClasses;
5706+ ULONG MaxNumEtsCapableTrafficClasses;
5707+ ULONG MaxNumPfcEnabledTrafficClasses;
5708+ } NDIS_QOS_CAPABILITIES, *PNDIS_QOS_CAPABILITIES;
5709+
5710+ typedef struct _NDIS_QOS_CLASSIFICATION_ELEMENT {
5711+ NDIS_OBJECT_HEADER Header;
5712+ ULONG Flags;
5713+ USHORT ConditionSelector;
5714+ USHORT ConditionField;
5715+ USHORT ActionSelector;
5716+ USHORT ActionField;
5717+ } NDIS_QOS_CLASSIFICATION_ELEMENT, *PNDIS_QOS_CLASSIFICATION_ELEMENT;
5718+
5719+ typedef struct _NDIS_QOS_PARAMETERS {
5720+ NDIS_OBJECT_HEADER Header;
5721+ ULONG Flags;
5722+ ULONG NumTrafficClasses;
5723+ UCHAR PriorityAssignmentTable[NDIS_QOS_MAXIMUM_PRIORITIES];
5724+ UCHAR TcBandwidthAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
5725+ UCHAR TsaAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
5726+ ULONG PfcEnable;
5727+ ULONG NumClassificationElements;
5728+ ULONG ClassificationElementSize;
5729+ ULONG FirstClassificationElementOffset;
5730+ } NDIS_QOS_PARAMETERS, *PNDIS_QOS_PARAMETERS;
5731+
5732+ typedef NDIS_IF_COUNTED_STRING NDIS_NIC_SWITCH_FRIENDLYNAME, *PNDIS_NIC_SWITCH_FRIENDLYNAME;
5733+ typedef NDIS_IF_COUNTED_STRING NDIS_VPORT_NAME, *PNDIS_VPORT_NAME;
5734+ typedef ULONG NDIS_NIC_SWITCH_ID, *PNDIS_NIC_SWITCH_ID;
5735+ typedef USHORT NDIS_SRIOV_FUNCTION_ID, *PNDIS_SRIOV_FUNCTION_ID;
5736+ typedef ULONG NDIS_VF_RID, *PNDIS_VF_RID;
5737+
5738+ typedef enum _NDIS_NIC_SWITCH_TYPE {
5739+ NdisNicSwitchTypeUnspecified,
5740+ NdisNicSwitchTypeExternal,
5741+ NdisNicSwitchTypeMax
5742+ } NDIS_NIC_SWITCH_TYPE, *PNDIS_NIC_SWITCH_TYPE;
5743+
5744+ typedef struct _NDIS_NIC_SWITCH_PARAMETERS {
5745+ NDIS_OBJECT_HEADER Header;
5746+ ULONG Flags;
5747+ NDIS_NIC_SWITCH_TYPE SwitchType;
5748+ NDIS_NIC_SWITCH_ID SwitchId;
5749+ NDIS_NIC_SWITCH_FRIENDLYNAME SwitchFriendlyName;
5750+ ULONG NumVFs;
5751+ ULONG NdisReserved1;
5752+ ULONG NdisReserved2;
5753+ ULONG NdisReserved3;
5754+ } NDIS_NIC_SWITCH_PARAMETERS, *PNDIS_NIC_SWITCH_PARAMETERS;
5755+
5756+ typedef struct _NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS {
5757+ NDIS_OBJECT_HEADER Header;
5758+ ULONG Flags;
5759+ NDIS_NIC_SWITCH_ID SwitchId;
5760+ } NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS, *PNDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS;
5761+
5762+ typedef struct _NDIS_NIC_SWITCH_INFO {
5763+ NDIS_OBJECT_HEADER Header;
5764+ ULONG Flags;
5765+ NDIS_NIC_SWITCH_TYPE SwitchType;
5766+ NDIS_NIC_SWITCH_ID SwitchId;
5767+ NDIS_NIC_SWITCH_FRIENDLYNAME SwitchFriendlyName;
5768+ ULONG NumVFs;
5769+ ULONG NumAllocatedVFs;
5770+ ULONG NumVPorts;
5771+ ULONG NumActiveVPorts;
5772+ ULONG NumQueuePairsForDefaultVPort;
5773+ ULONG NumQueuePairsForNonDefaultVPorts;
5774+ ULONG NumActiveDefaultVPortMacAddresses;
5775+ ULONG NumActiveNonDefaultVPortMacAddresses;
5776+ ULONG NumActiveDefaultVPortVlanIds;
5777+ ULONG NumActiveNonDefaultVPortVlanIds;
5778+ } NDIS_NIC_SWITCH_INFO, *PNDIS_NIC_SWITCH_INFO;
5779+
5780+ typedef struct _NDIS_NIC_SWITCH_INFO_ARRAY {
5781+ NDIS_OBJECT_HEADER Header;
5782+ ULONG FirstElementOffset;
5783+ ULONG NumElements;
5784+ ULONG ElementSize;
5785+ } NDIS_NIC_SWITCH_INFO_ARRAY, *PNDIS_NIC_SWITCH_INFO_ARRAY;
5786+
5787+ typedef enum _NDIS_NIC_SWITCH_VPORT_STATE {
5788+ NdisNicSwitchVPortStateUndefined,
5789+ NdisNicSwitchVPortStateActivated,
5790+ NdisNicSwitchVPortStateDeactivated,
5791+ NdisNicSwitchVPortStateMaximum
5792+ } NDIS_NIC_SWITCH_VPORT_STATE, *PNDIS_NIC_SWITCH_VPORT_STATE;
5793+
5794+ typedef enum _NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION {
5795+ NdisNicSwitchVPortInterruptModerationUndefined = 0,
5796+ NdisNicSwitchVPortInterruptModerationAdaptive = 1,
5797+ NdisNicSwitchVPortInterruptModerationOff = 2,
5798+ NdisNicSwitchVPortInterruptModerationLow = 100,
5799+ NdisNicSwitchVPortInterruptModerationMedium = 200,
5800+ NdisNicSwitchVPortInterruptModerationHigh = 300,
5801+ } NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION, *PNDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION;
5802+
5803+ typedef struct _NDIS_NIC_SWITCH_VPORT_PARAMETERS {
5804+ NDIS_OBJECT_HEADER Header;
5805+ ULONG Flags;
5806+ NDIS_NIC_SWITCH_ID SwitchId;
5807+ NDIS_NIC_SWITCH_VPORT_ID VPortId;
5808+ NDIS_VPORT_NAME VPortName;
5809+ NDIS_SRIOV_FUNCTION_ID AttachedFunctionId;
5810+ ULONG NumQueuePairs;
5811+ NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION InterruptModeration;
5812+ NDIS_NIC_SWITCH_VPORT_STATE VPortState;
5813+ GROUP_AFFINITY ProcessorAffinity;
5814+ ULONG LookaheadSize;
5815+ } NDIS_NIC_SWITCH_VPORT_PARAMETERS, *PNDIS_NIC_SWITCH_VPORT_PARAMETERS;
5816+
5817+ typedef struct _NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS {
5818+ NDIS_OBJECT_HEADER Header;
5819+ ULONG Flags;
5820+ NDIS_NIC_SWITCH_VPORT_ID VPortId;
5821+ } NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS, *PNDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS;
5822+
5823+ typedef struct _NDIS_NIC_SWITCH_VPORT_INFO {
5824+ NDIS_OBJECT_HEADER Header;
5825+ NDIS_NIC_SWITCH_VPORT_ID VPortId;
5826+ ULONG Flags;
5827+ NDIS_NIC_SWITCH_ID SwitchId;
5828+ NDIS_VPORT_NAME VPortName;
5829+ NDIS_SRIOV_FUNCTION_ID AttachedFunctionId;
5830+ ULONG NumQueuePairs;
5831+ NDIS_NIC_SWITCH_VPORT_INTERRUPT_MODERATION InterruptModeration;
5832+ NDIS_NIC_SWITCH_VPORT_STATE VPortState;
5833+ GROUP_AFFINITY ProcessorAffinity;
5834+ ULONG LookaheadSize;
5835+ ULONG NumFilters;
5836+ } NDIS_NIC_SWITCH_VPORT_INFO, *PNDIS_NIC_SWITCH_VPORT_INFO;
5837+
5838+ typedef struct _NDIS_NIC_SWITCH_VPORT_INFO_ARRAY {
5839+ NDIS_OBJECT_HEADER Header;
5840+ ULONG Flags;
5841+ NDIS_NIC_SWITCH_ID SwitchId;
5842+ NDIS_SRIOV_FUNCTION_ID AttachedFunctionId;
5843+ ULONG FirstElementOffset;
5844+ ULONG NumElements;
5845+ ULONG ElementSize;
5846+ } NDIS_NIC_SWITCH_VPORT_INFO_ARRAY, *PNDIS_NIC_SWITCH_VPORT_INFO_ARRAY;
5847+
5848+ typedef struct _NDIS_NIC_SWITCH_VF_PARAMETERS {
5849+ NDIS_OBJECT_HEADER Header;
5850+ ULONG Flags;
5851+ NDIS_NIC_SWITCH_ID SwitchId;
5852+ NDIS_VM_NAME VMName;
5853+ NDIS_VM_FRIENDLYNAME VMFriendlyName;
5854+ NDIS_SWITCH_NIC_NAME NicName;
5855+ USHORT MacAddressLength;
5856+ UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
5857+ UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
5858+ NDIS_SRIOV_FUNCTION_ID VFId;
5859+ NDIS_VF_RID RequestorId;
5860+ } NDIS_NIC_SWITCH_VF_PARAMETERS, *PNDIS_NIC_SWITCH_VF_PARAMETERS;
5861+
5862+ typedef struct _NDIS_NIC_SWITCH_FREE_VF_PARAMETERS {
5863+ NDIS_OBJECT_HEADER Header;
5864+ ULONG Flags;
5865+ NDIS_SRIOV_FUNCTION_ID VFId;
5866+ } NDIS_NIC_SWITCH_FREE_VF_PARAMETERS, *PNDIS_NIC_SWITCH_FREE_VF_PARAMETERS;
5867+
5868+ typedef struct _NDIS_NIC_SWITCH_VF_INFO {
5869+ NDIS_OBJECT_HEADER Header;
5870+ ULONG Flags;
5871+ NDIS_NIC_SWITCH_ID SwitchId;
5872+ NDIS_VM_NAME VMName;
5873+ NDIS_VM_FRIENDLYNAME VMFriendlyName;
5874+ NDIS_SWITCH_NIC_NAME NicName;
5875+ USHORT MacAddressLength;
5876+ UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
5877+ UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
5878+ NDIS_SRIOV_FUNCTION_ID VFId;
5879+ NDIS_VF_RID RequestorId;
5880+ } NDIS_NIC_SWITCH_VF_INFO, *PNDIS_NIC_SWITCH_VF_INFO;
5881+
5882+ typedef struct _NDIS_NIC_SWITCH_VF_INFO_ARRAY {
5883+ NDIS_OBJECT_HEADER Header;
5884+ ULONG Flags;
5885+ NDIS_NIC_SWITCH_ID SwitchId;
5886+ ULONG FirstElementOffset;
5887+ ULONG NumElements;
5888+ ULONG ElementSize;
5889+ } NDIS_NIC_SWITCH_VF_INFO_ARRAY, *PNDIS_NIC_SWITCH_VF_INFO_ARRAY;
5890+
5891+ typedef struct _NDIS_SRIOV_CAPABILITIES {
5892+ NDIS_OBJECT_HEADER Header;
5893+ ULONG Flags;
5894+ ULONG SriovCapabilities;
5895+ } NDIS_SRIOV_CAPABILITIES, *PNDIS_SRIOV_CAPABILITIES;
5896+
5897+ typedef struct _NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS {
5898+ NDIS_OBJECT_HEADER Header;
5899+ NDIS_SRIOV_FUNCTION_ID VFId;
5900+ ULONG Offset;
5901+ ULONG Length;
5902+ ULONG BufferOffset;
5903+ } NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS, *PNDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS;
5904+
5905+ typedef struct _NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS {
5906+ NDIS_OBJECT_HEADER Header;
5907+ NDIS_SRIOV_FUNCTION_ID VFId;
5908+ ULONG Offset;
5909+ ULONG Length;
5910+ ULONG BufferOffset;
5911+ } NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS, *PNDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS;
5912+
5913+ typedef struct _NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS {
5914+ NDIS_OBJECT_HEADER Header;
5915+ NDIS_SRIOV_FUNCTION_ID VFId;
5916+ ULONG BlockId;
5917+ ULONG Length;
5918+ ULONG BufferOffset;
5919+ } NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS, *PNDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS;
5920+
5921+ typedef struct _NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS {
5922+ NDIS_OBJECT_HEADER Header;
5923+ NDIS_SRIOV_FUNCTION_ID VFId;
5924+ ULONG BlockId;
5925+ ULONG Length;
5926+ ULONG BufferOffset;
5927+ } NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS, *PNDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS;
5928+
5929+ typedef struct _NDIS_SRIOV_RESET_VF_PARAMETERS {
5930+ NDIS_OBJECT_HEADER Header;
5931+ NDIS_SRIOV_FUNCTION_ID VFId;
5932+ } NDIS_SRIOV_RESET_VF_PARAMETERS, *PNDIS_SRIOV_RESET_VF_PARAMETERS;
5933+
5934+ typedef struct _NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS {
5935+ NDIS_OBJECT_HEADER Header;
5936+ NDIS_SRIOV_FUNCTION_ID VFId;
5937+ NDIS_DEVICE_POWER_STATE PowerState;
5938+ BOOLEAN WakeEnable;
5939+ } NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS, *PNDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS;
5940+
5941+ typedef struct _NDIS_SRIOV_CONFIG_STATE_PARAMETERS {
5942+ NDIS_OBJECT_HEADER Header;
5943+ ULONG BlockId;
5944+ ULONG Length;
5945+ } NDIS_SRIOV_CONFIG_STATE_PARAMETERS, *PNDIS_SRIOV_CONFIG_STATE_PARAMETERS;
5946+
5947+ typedef struct _NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO {
5948+ NDIS_OBJECT_HEADER Header;
5949+ NDIS_SRIOV_FUNCTION_ID VFId;
5950+ USHORT VendorId;
5951+ USHORT DeviceId;
5952+ } NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO, *PNDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO;
5953+
5954+ typedef struct _NDIS_SRIOV_PROBED_BARS_INFO {
5955+ NDIS_OBJECT_HEADER Header;
5956+ ULONG BaseRegisterValuesOffset;
5957+ } NDIS_SRIOV_PROBED_BARS_INFO, *PNDIS_SRIOV_PROBED_BARS_INFO;
5958+
5959+ typedef struct _NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS {
5960+ NDIS_OBJECT_HEADER Header;
5961+ NDIS_RECEIVE_FILTER_ID FilterId;
5962+ NDIS_RECEIVE_QUEUE_ID SourceQueueId;
5963+ NDIS_NIC_SWITCH_VPORT_ID SourceVPortId;
5964+ NDIS_RECEIVE_QUEUE_ID DestQueueId;
5965+ NDIS_NIC_SWITCH_VPORT_ID DestVPortId;
5966+ } NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS, *PNDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS;
5967+
5968+ typedef struct _NDIS_SRIOV_BAR_RESOURCES_INFO {
5969+ NDIS_OBJECT_HEADER Header;
5970+ NDIS_SRIOV_FUNCTION_ID VFId;
5971+ USHORT BarIndex;
5972+ ULONG BarResourcesOffset;
5973+ } NDIS_SRIOV_BAR_RESOURCES_INFO, *PNDIS_SRIOV_BAR_RESOURCES_INFO;
5974+
5975+ typedef struct _NDIS_SRIOV_PF_LUID_INFO {
5976+ NDIS_OBJECT_HEADER Header;
5977+ LUID Luid;
5978+ } NDIS_SRIOV_PF_LUID_INFO, *PNDIS_SRIOV_PF_LUID_INFO;
5979+
5980+ typedef struct _NDIS_SRIOV_VF_SERIAL_NUMBER_INFO {
5981+ NDIS_OBJECT_HEADER Header;
5982+ ULONG SerialNumber;
5983+ } NDIS_SRIOV_VF_SERIAL_NUMBER_INFO, *PNDIS_SRIOV_VF_SERIAL_NUMBER_INFO;
5984+
5985+ typedef struct _NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO {
5986+ NDIS_OBJECT_HEADER Header;
5987+ ULONG64 BlockMask;
5988+ } NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO, *PNDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO;
5989+
5990+ typedef GUID NDIS_SWITCH_OBJECT_INSTANCE_ID, *PNDIS_SWITCH_OBJECT_INSTANCE_ID;
5991+ typedef GUID NDIS_SWITCH_OBJECT_ID, *PNDIS_SWITCH_OBJECT_ID;
5992+ typedef USHORT NDIS_SWITCH_OBJECT_VERSION, *PNDIS_SWITCH_OBJECT_VERSION;
5993+ typedef USHORT NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION, *PNDIS_SWITCH_OBJECT_SERIALIZATION_VERSION;
5994+#ifndef _NDIS_SWITCH_PORT_ID
5995+#define _NDIS_SWITCH_PORT_ID NDIS_SWITCH_PORT_ID
5996+ typedef UINT32 NDIS_SWITCH_PORT_ID, *PNDIS_SWITCH_PORT_ID;
5997+ typedef USHORT NDIS_SWITCH_NIC_INDEX, *PNDIS_SWITCH_NIC_INDEX;
5998+#endif
5999+
6000+ typedef enum _NDIS_SWITCH_PORT_PROPERTY_TYPE {
6001+ NdisSwitchPortPropertyTypeUndefined,
6002+ NdisSwitchPortPropertyTypeCustom,
6003+ NdisSwitchPortPropertyTypeSecurity,
6004+ NdisSwitchPortPropertyTypeVlan,
6005+ NdisSwitchPortPropertyTypeProfile,
6006+ NdisSwitchPortPropertyTypeMaximum
6007+ } NDIS_SWITCH_PORT_PROPERTY_TYPE, *PNDIS_SWITCH_PORT_PROPERTY_TYPE;
6008+
6009+ typedef struct _NDIS_SWITCH_PORT_PROPERTY_SECURITY {
6010+ NDIS_OBJECT_HEADER Header;
6011+ ULONG Flags;
6012+ BOOLEAN AllowMacSpoofing;
6013+ BOOLEAN AllowIeeePriorityTag;
6014+ UINT32 VirtualSubnetId;
6015+ BOOLEAN AllowTeaming;
6016+ } NDIS_SWITCH_PORT_PROPERTY_SECURITY, *PNDIS_SWITCH_PORT_PROPERTY_SECURITY;
6017+
6018+ typedef enum _NDIS_SWITCH_PORT_VLAN_MODE {
6019+ NdisSwitchPortVlanModeUnknown = 0,
6020+ NdisSwitchPortVlanModeAccess = 1,
6021+ NdisSwitchPortVlanModeTrunk = 2,
6022+ NdisSwitchPortVlanModePrivate = 3,
6023+ NdisSwitchPortVlanModeMax = 4
6024+ } NDIS_SWITCH_PORT_VLAN_MODE, *PNDIS_SWITCH_PORT_VLAN_MODE;
6025+
6026+ typedef enum _NDIS_SWITCH_PORT_PVLAN_MODE {
6027+ NdisSwitchPortPvlanModeUndefined = 0,
6028+ NdisSwitchPortPvlanModeIsolated,
6029+ NdisSwitchPortPvlanModeCommunity,
6030+ NdisSwitchPortPvlanModePromiscuous
6031+ } NDIS_SWITCH_PORT_PVLAN_MODE, *PNDIS_SWITCH_PORT_PVLAN_MODE;
6032+
6033+ typedef struct _NDIS_SWITCH_PORT_PROPERTY_VLAN {
6034+ NDIS_OBJECT_HEADER Header;
6035+ ULONG Flags;
6036+ NDIS_SWITCH_PORT_VLAN_MODE OperationMode;
6037+ _ANONYMOUS_UNION union {
6038+ struct {
6039+ UINT16 AccessVlanId;
6040+ UINT16 NativeVlanId;
6041+ UINT64 PruneVlanIdArray[64];
6042+ UINT64 TrunkVlanIdArray[64];
6043+ } VlanProperties;
6044+ struct {
6045+ NDIS_SWITCH_PORT_PVLAN_MODE PvlanMode;
6046+ UINT16 PrimaryVlanId;
6047+ _ANONYMOUS_UNION union {
6048+ UINT16 SecondaryVlanId;
6049+ UINT64 SecondaryVlanIdArray[64];
6050+ };
6051+ } PvlanProperties;
6052+ };
6053+ } NDIS_SWITCH_PORT_PROPERTY_VLAN, *PNDIS_SWITCH_PORT_PROPERTY_VLAN;
6054+
6055+ typedef struct _NDIS_SWITCH_PORT_PROPERTY_PROFILE {
6056+ NDIS_OBJECT_HEADER Header;
6057+ ULONG Flags;
6058+ NDIS_SWITCH_PORT_PROPERTY_PROFILE_NAME ProfileName;
6059+ GUID ProfileId;
6060+ NDIS_VENDOR_NAME VendorName;
6061+ GUID VendorId;
6062+ UINT32 ProfileData;
6063+ GUID NetCfgInstanceId;
6064+ struct {
6065+ UINT32 PciSegmentNumber:16;
6066+ UINT32 PciBusNumber:8;
6067+ UINT32 PciDeviceNumber:5;
6068+ UINT32 PciFunctionNumber:3;
6069+ } PciLocation;
6070+ UINT32 CdnLabelId;
6071+ NDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL CdnLabel;
6072+ } NDIS_SWITCH_PORT_PROPERTY_PROFILE, *PNDIS_SWITCH_PORT_PROPERTY_PROFILE;
6073+
6074+ typedef struct _NDIS_SWITCH_PORT_PROPERTY_CUSTOM {
6075+ NDIS_OBJECT_HEADER Header;
6076+ ULONG Flags;
6077+ ULONG PropertyBufferLength;
6078+ ULONG PropertyBufferOffset;
6079+ } NDIS_SWITCH_PORT_PROPERTY_CUSTOM, *PNDIS_SWITCH_PORT_PROPERTY_CUSTOM;
6080+
6081+ typedef struct _NDIS_SWITCH_PORT_PROPERTY_PARAMETERS {
6082+ NDIS_OBJECT_HEADER Header;
6083+ ULONG Flags;
6084+ NDIS_SWITCH_PORT_ID PortId;
6085+ NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType;
6086+ NDIS_SWITCH_OBJECT_ID PropertyId;
6087+ NDIS_SWITCH_OBJECT_VERSION PropertyVersion;
6088+ NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
6089+ NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
6090+ ULONG PropertyBufferLength;
6091+ ULONG PropertyBufferOffset;
6092+ ULONG Reserved;
6093+ } NDIS_SWITCH_PORT_PROPERTY_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_PARAMETERS;
6094+
6095+ typedef struct _NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS {
6096+ NDIS_OBJECT_HEADER Header;
6097+ ULONG Flags;
6098+ NDIS_SWITCH_PORT_ID PortId;
6099+ NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType;
6100+ NDIS_SWITCH_OBJECT_ID PropertyId;
6101+ NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
6102+ } NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS;
6103+
6104+ typedef struct _NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS {
6105+ NDIS_OBJECT_HEADER Header;
6106+ ULONG Flags;
6107+ NDIS_SWITCH_PORT_ID PortId;
6108+ NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyType;
6109+ NDIS_SWITCH_OBJECT_ID PropertyId;
6110+ NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
6111+ ULONG FirstPropertyOffset;
6112+ ULONG NumProperties;
6113+ USHORT Reserved;
6114+ } NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS, *PNDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS;
6115+
6116+ typedef struct _NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO {
6117+ NDIS_OBJECT_HEADER Header;
6118+ ULONG Flags;
6119+ NDIS_SWITCH_OBJECT_VERSION PropertyVersion;
6120+ NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
6121+ ULONG QwordAlignedPropertyBufferLength;
6122+ ULONG PropertyBufferLength;
6123+ ULONG PropertyBufferOffset;
6124+ } NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO, *PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO;
6125+
6126+ typedef enum _NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE {
6127+ NdisSwitchPortFeatureStatusTypeUndefined,
6128+ NdisSwitchPortFeatureStatusTypeCustom,
6129+ NdisSwitchPortFeatureStatusTypeMaximum
6130+ } NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE, *PNDIS_SWITCH_PORT_FEATURE_STATUS_TYPE;
6131+
6132+ typedef struct _NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS {
6133+ NDIS_OBJECT_HEADER Header;
6134+ ULONG Flags;
6135+ NDIS_SWITCH_PORT_ID PortId;
6136+ NDIS_SWITCH_PORT_FEATURE_STATUS_TYPE FeatureStatusType;
6137+ NDIS_SWITCH_OBJECT_ID FeatureStatusId;
6138+ NDIS_SWITCH_OBJECT_VERSION FeatureStatusVersion;
6139+ NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
6140+ NDIS_SWITCH_OBJECT_INSTANCE_ID FeatureStatusInstanceId;
6141+ ULONG FeatureStatusBufferLength;
6142+ ULONG FeatureStatusBufferOffset;
6143+ ULONG Reserved;
6144+ } NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS, *PNDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS;
6145+
6146+ typedef struct _NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM {
6147+ NDIS_OBJECT_HEADER Header;
6148+ ULONG Flags;
6149+ ULONG FeatureStatusBufferLength;
6150+ ULONG FeatureStatusBufferOffset;
6151+ } NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM, *PNDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM;
6152+
6153+ typedef enum _NDIS_SWITCH_PROPERTY_TYPE {
6154+ NdisSwitchPropertyTypeUndefined,
6155+ NdisSwitchPropertyTypeCustom,
6156+ NdisSwitchPropertyTypeMaximum
6157+ } NDIS_SWITCH_PROPERTY_TYPE, *PNDIS_SWITCH_PROPERTY_TYPE;
6158+
6159+ typedef struct _NDIS_SWITCH_PROPERTY_CUSTOM {
6160+ NDIS_OBJECT_HEADER Header;
6161+ ULONG Flags;
6162+ ULONG PropertyBufferLength;
6163+ ULONG PropertyBufferOffset;
6164+ } NDIS_SWITCH_PROPERTY_CUSTOM, *PNDIS_SWITCH_PROPERTY_CUSTOM;
6165+
6166+ typedef struct _NDIS_SWITCH_PROPERTY_PARAMETERS {
6167+ NDIS_OBJECT_HEADER Header;
6168+ ULONG Flags;
6169+ NDIS_SWITCH_PROPERTY_TYPE PropertyType;
6170+ NDIS_SWITCH_OBJECT_ID PropertyId;
6171+ NDIS_SWITCH_OBJECT_VERSION PropertyVersion;
6172+ NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
6173+ NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
6174+ ULONG PropertyBufferLength;
6175+ ULONG PropertyBufferOffset;
6176+ } NDIS_SWITCH_PROPERTY_PARAMETERS, *PNDIS_SWITCH_PROPERTY_PARAMETERS;
6177+
6178+ typedef struct _NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS {
6179+ NDIS_OBJECT_HEADER Header;
6180+ ULONG Flags;
6181+ NDIS_SWITCH_PROPERTY_TYPE PropertyType;
6182+ NDIS_SWITCH_OBJECT_ID PropertyId;
6183+ NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
6184+ } NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS, *PNDIS_SWITCH_PROPERTY_DELETE_PARAMETERS;
6185+
6186+ typedef struct _NDIS_SWITCH_PROPERTY_ENUM_INFO {
6187+ NDIS_OBJECT_HEADER Header;
6188+ ULONG Flags;
6189+ NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyInstanceId;
6190+ NDIS_SWITCH_OBJECT_VERSION PropertyVersion;
6191+ ULONG QwordAlignedPropertyBufferLength;
6192+ ULONG PropertyBufferLength;
6193+ ULONG PropertyBufferOffset;
6194+ } NDIS_SWITCH_PROPERTY_ENUM_INFO, *PNDIS_SWITCH_PROPERTY_ENUM_INFO;
6195+
6196+ typedef struct _NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS {
6197+ NDIS_OBJECT_HEADER Header;
6198+ ULONG Flags;
6199+ NDIS_SWITCH_PROPERTY_TYPE PropertyType;
6200+ NDIS_SWITCH_OBJECT_ID PropertyId;
6201+ NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
6202+ ULONG FirstPropertyOffset;
6203+ ULONG NumProperties;
6204+ } NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS, *PNDIS_SWITCH_PROPERTY_ENUM_PARAMETERS;
6205+
6206+ typedef enum _NDIS_SWITCH_FEATURE_STATUS_TYPE {
6207+ NdisSwitchFeatureStatusTypeUndefined,
6208+ NdisSwitchFeatureStatusTypeCustom,
6209+ NdisSwitchFeatureStatusTypeMaximum
6210+ } NDIS_SWITCH_FEATURE_STATUS_TYPE, *PNDIS_SWITCH_FEATURE_STATUS_TYPE;
6211+
6212+ typedef struct _NDIS_SWITCH_FEATURE_STATUS_PARAMETERS {
6213+ NDIS_OBJECT_HEADER Header;
6214+ ULONG Flags;
6215+ NDIS_SWITCH_FEATURE_STATUS_TYPE FeatureStatusType;
6216+ NDIS_SWITCH_OBJECT_ID FeatureStatusId;
6217+ NDIS_SWITCH_OBJECT_INSTANCE_ID FeatureStatusInstanceId;
6218+ NDIS_SWITCH_OBJECT_VERSION FeatureStatusVersion;
6219+ NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION SerializationVersion;
6220+ ULONG FeatureStatusBufferOffset;
6221+ ULONG FeatureStatusBufferLength;
6222+ } NDIS_SWITCH_FEATURE_STATUS_PARAMETERS, *PNDIS_SWITCH_FEATURE_STATUS_PARAMETERS;
6223+
6224+ typedef struct _NDIS_SWITCH_FEATURE_STATUS_CUSTOM {
6225+ NDIS_OBJECT_HEADER Header;
6226+ ULONG Flags;
6227+ ULONG FeatureStatusCustomBufferLength;
6228+ ULONG FeatureStatusCustomBufferOffset;
6229+ } NDIS_SWITCH_FEATURE_STATUS_CUSTOM, *PNDIS_SWITCH_FEATURE_STATUS_CUSTOM;
6230+
6231+ typedef struct _NDIS_SWITCH_PARAMETERS {
6232+ NDIS_OBJECT_HEADER Header;
6233+ ULONG Flags;
6234+ NDIS_SWITCH_NAME SwitchName;
6235+ NDIS_SWITCH_FRIENDLYNAME SwitchFriendlyName;
6236+ UINT32 NumSwitchPorts;
6237+ BOOLEAN IsActive;
6238+ } NDIS_SWITCH_PARAMETERS, *PNDIS_SWITCH_PARAMETERS;
6239+
6240+ typedef enum _NDIS_SWITCH_PORT_TYPE {
6241+ NdisSwitchPortTypeGeneric = 0,
6242+ NdisSwitchPortTypeExternal = 1,
6243+ NdisSwitchPortTypeSynthetic = 2,
6244+ NdisSwitchPortTypeEmulated = 3,
6245+ NdisSwitchPortTypeInternal = 4
6246+ } NDIS_SWITCH_PORT_TYPE;
6247+
6248+ typedef enum _NDIS_SWITCH_PORT_STATE {
6249+ NdisSwitchPortStateUnknown = 0,
6250+ NdisSwitchPortStateCreated = 1,
6251+ NdisSwitchPortStateTeardown = 2,
6252+ NdisSwitchPortStateDeleted = 3
6253+ } NDIS_SWITCH_PORT_STATE;
6254+
6255+ typedef struct _NDIS_SWITCH_PORT_PARAMETERS {
6256+ NDIS_OBJECT_HEADER Header;
6257+ ULONG Flags;
6258+ NDIS_SWITCH_PORT_ID PortId;
6259+ NDIS_SWITCH_PORT_NAME PortName;
6260+ NDIS_SWITCH_PORT_FRIENDLYNAME PortFriendlyName;
6261+ NDIS_SWITCH_PORT_TYPE PortType;
6262+ BOOLEAN IsValidationPort;
6263+ NDIS_SWITCH_PORT_STATE PortState;
6264+ } NDIS_SWITCH_PORT_PARAMETERS, *PNDIS_SWITCH_PORT_PARAMETERS;
6265+
6266+ typedef struct _NDIS_SWITCH_PORT_ARRAY {
6267+ NDIS_OBJECT_HEADER Header;
6268+ ULONG Flags;
6269+ USHORT FirstElementOffset;
6270+ ULONG NumElements;
6271+ ULONG ElementSize;
6272+ } NDIS_SWITCH_PORT_ARRAY, *PNDIS_SWITCH_PORT_ARRAY;
6273+
6274+ typedef enum _NDIS_SWITCH_NIC_TYPE {
6275+ NdisSwitchNicTypeExternal = 0,
6276+ NdisSwitchNicTypeSynthetic = 1,
6277+ NdisSwitchNicTypeEmulated = 2,
6278+ NdisSwitchNicTypeInternal = 3
6279+ } NDIS_SWITCH_NIC_TYPE;
6280+
6281+ typedef enum _NDIS_SWITCH_NIC_STATE {
6282+ NdisSwitchNicStateUnknown = 0,
6283+ NdisSwitchNicStateCreated = 1,
6284+ NdisSwitchNicStateConnected = 2,
6285+ NdisSwitchNicStateDisconnected = 3,
6286+ NdisSwitchNicStateDeleted = 4
6287+ } NDIS_SWITCH_NIC_STATE;
6288+
6289+ typedef struct _NDIS_SWITCH_NIC_PARAMETERS {
6290+ NDIS_OBJECT_HEADER Header;
6291+ ULONG Flags;
6292+ NDIS_SWITCH_NIC_NAME NicName;
6293+ NDIS_SWITCH_NIC_FRIENDLYNAME NicFriendlyName;
6294+ NDIS_SWITCH_PORT_ID PortId;
6295+ NDIS_SWITCH_NIC_INDEX NicIndex;
6296+ NDIS_SWITCH_NIC_TYPE NicType;
6297+ NDIS_SWITCH_NIC_STATE NicState;
6298+ NDIS_VM_NAME VmName;
6299+ NDIS_VM_FRIENDLYNAME VmFriendlyName;
6300+ GUID NetCfgInstanceId;
6301+ ULONG MTU;
6302+ USHORT NumaNodeId;
6303+ UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
6304+ UCHAR VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
6305+ UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
6306+ BOOLEAN VFAssigned;
6307+ } NDIS_SWITCH_NIC_PARAMETERS, *PNDIS_SWITCH_NIC_PARAMETERS;
6308+
6309+ typedef struct _NDIS_SWITCH_NIC_ARRAY {
6310+ NDIS_OBJECT_HEADER Header;
6311+ ULONG Flags;
6312+ USHORT FirstElementOffset;
6313+ ULONG NumElements;
6314+ ULONG ElementSize;
6315+ } NDIS_SWITCH_NIC_ARRAY, *PNDIS_SWITCH_NIC_ARRAY;
6316+
6317+ typedef struct _NDIS_OID_REQUEST NDIS_OID_REQUEST, *PNDIS_OID_REQUEST;
6318+
6319+ typedef struct _NDIS_SWITCH_NIC_OID_REQUEST {
6320+ NDIS_OBJECT_HEADER Header;
6321+ ULONG Flags;
6322+ NDIS_SWITCH_PORT_ID SourcePortId;
6323+ NDIS_SWITCH_NIC_INDEX SourceNicIndex;
6324+ NDIS_SWITCH_PORT_ID DestinationPortId;
6325+ NDIS_SWITCH_NIC_INDEX DestinationNicIndex;
6326+ PNDIS_OID_REQUEST OidRequest;
6327+ } NDIS_SWITCH_NIC_OID_REQUEST, *PNDIS_SWITCH_NIC_OID_REQUEST;
6328+
6329+ typedef struct _NDIS_SWITCH_NIC_SAVE_STATE {
6330+ NDIS_OBJECT_HEADER Header;
6331+ ULONG Flags;
6332+ NDIS_SWITCH_PORT_ID PortId;
6333+ NDIS_SWITCH_NIC_INDEX NicIndex;
6334+ GUID ExtensionId;
6335+ NDIS_SWITCH_EXTENSION_FRIENDLYNAME ExtensionFriendlyName;
6336+ GUID FeatureClassId;
6337+ USHORT SaveDataSize;
6338+ USHORT SaveDataOffset;
6339+ } NDIS_SWITCH_NIC_SAVE_STATE, *PNDIS_SWITCH_NIC_SAVE_STATE;
6340+#endif
6341+
6342+ typedef struct _NDIS_PORT_STATE {
6343+ NDIS_OBJECT_HEADER Header;
6344+ NDIS_MEDIA_CONNECT_STATE MediaConnectState;
6345+ ULONG64 XmitLinkSpeed;
6346+ ULONG64 RcvLinkSpeed;
6347+ NET_IF_DIRECTION_TYPE Direction;
6348+ NDIS_PORT_CONTROL_STATE SendControlState;
6349+ NDIS_PORT_CONTROL_STATE RcvControlState;
6350+ NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState;
6351+ NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState;
6352+ ULONG Flags;
6353+ } NDIS_PORT_STATE, *PNDIS_PORT_STATE;
6354+
6355+ typedef struct _NDIS_PORT_CHARACTERISTICS {
6356+ NDIS_OBJECT_HEADER Header;
6357+ NDIS_PORT_NUMBER PortNumber;
6358+ ULONG Flags;
6359+ NDIS_PORT_TYPE Type;
6360+ NDIS_MEDIA_CONNECT_STATE MediaConnectState;
6361+ ULONG64 XmitLinkSpeed;
6362+ ULONG64 RcvLinkSpeed;
6363+ NET_IF_DIRECTION_TYPE Direction;
6364+ NDIS_PORT_CONTROL_STATE SendControlState;
6365+ NDIS_PORT_CONTROL_STATE RcvControlState;
6366+ NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState;
6367+ NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState;
6368+ } NDIS_PORT_CHARACTERISTICS, *PNDIS_PORT_CHARACTERISTICS;
6369+
6370+ typedef struct _NDIS_PORT NDIS_PORT, *PNDIS_PORT;
6371+
6372+ struct _NDIS_PORT {
6373+ PNDIS_PORT Next;
6374+ PVOID NdisReserved;
6375+ PVOID MiniportReserved;
6376+ PVOID ProtocolReserved;
6377+ NDIS_PORT_CHARACTERISTICS PortCharacteristics;
6378+ };
6379+
6380+ typedef struct _NDIS_PORT_ARRAY {
6381+ NDIS_OBJECT_HEADER Header;
6382+ ULONG NumberOfPorts;
6383+ ULONG OffsetFirstPort;
6384+ ULONG ElementSize;
6385+ NDIS_PORT_CHARACTERISTICS Ports[1];
6386+ } NDIS_PORT_ARRAY, *PNDIS_PORT_ARRAY;
6387+#endif
6388+#endif
6389+
6390+#ifdef __cplusplus
6391+}
6392+#endif
6393+
6394+/*
6395+#endif
6396+ */
6397+#endif
6398--- w32api-5.0.2/include/ndkinfo.h.orig 1970-01-01 01:00:00.000000000 +0100
6399+++ w32api-5.0.2/include/ndkinfo.h 2018-09-22 09:40:16.426289627 +0200
6400@@ -0,0 +1,55 @@
6401+/* https://github.com/Alexpux/mingw-w64/raw/master/mingw-w64-headers/include/ndkinfo.h */
6402+/**
6403+ * This file is part of the mingw-w64 runtime package.
6404+ * No warranty is given; refer to the file DISCLAIMER within this package.
6405+ */
6406+
6407+#ifndef _NDKINFO_H_
6408+#define _NDKINFO_H_
6409+
6410+/*
6411+#include <winapifamily.h>
6412+
6413+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
6414+ */
6415+
6416+#define NDK_ADAPTER_FLAG_IN_ORDER_DMA_SUPPORTED 0x1
6417+#define NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED 0x2
6418+#define NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED 0x4
6419+#define NDK_ADAPTER_FLAG_MULTI_ENGINE_SUPPORTED 0x8
6420+#define NDK_ADAPTER_FLAG_CQ_RESIZE_SUPPORTED 0x100
6421+#define NDK_ADAPTER_FLAG_LOOPBACK_CONNECTIONS_SUPPORTED 0x10000
6422+
6423+typedef struct {
6424+ USHORT Major;
6425+ USHORT Minor;
6426+} NDK_VERSION;
6427+
6428+typedef struct _NDK_ADAPTER_INFO {
6429+ NDK_VERSION Version;
6430+ UINT32 VendorId;
6431+ UINT32 DeviceId;
6432+ SIZE_T MaxRegistrationSize;
6433+ SIZE_T MaxWindowSize;
6434+ ULONG FRMRPageCount;
6435+ ULONG MaxInitiatorRequestSge;
6436+ ULONG MaxReceiveRequestSge;
6437+ ULONG MaxReadRequestSge;
6438+ ULONG MaxTransferLength;
6439+ ULONG MaxInlineDataSize;
6440+ ULONG MaxInboundReadLimit;
6441+ ULONG MaxOutboundReadLimit;
6442+ ULONG MaxReceiveQueueDepth;
6443+ ULONG MaxInitiatorQueueDepth;
6444+ ULONG MaxSrqDepth;
6445+ ULONG MaxCqDepth;
6446+ ULONG LargeRequestThreshold;
6447+ ULONG MaxCallerData;
6448+ ULONG MaxCalleeData;
6449+ ULONG AdapterFlags;
6450+} NDK_ADAPTER_INFO;
6451+
6452+/*
6453+#endif
6454+ */
6455+#endif
6456--- w32api-5.0.2/include/winsock2.h.orig 2017-11-28 14:28:34.000000000 +0100
6457+++ w32api-5.0.2/include/winsock2.h 2018-09-24 21:27:52.022015050 +0200
6458@@ -627,6 +627,7 @@
6459 typedef int (PASCAL *LPFN_WSAASYNCSELECT) (SOCKET, HWND, u_int, long);
6460
6461 typedef struct sockaddr_storage SOCKADDR_STORAGE, *PSOCKADDR_STORAGE;
6462+typedef u_short ADDRESS_FAMILY;
6463
6464 WINSOCK_API_LINKAGE SOCKET WINAPI WSAAccept (SOCKET, struct sockaddr *, LPINT, LPCONDITIONPROC, DWORD);
6465
6466--- w32api/include/iptypes.h.orig 2017-11-28 19:03:04.000000000 +0100
6467+++ w32api/include/iptypes.h 2018-09-24 21:51:51.068665286 +0200
6468@@ -124,6 +124,16 @@
6469 ScopeLevelOrganization = 8,
6470 ScopeLevelGlobal = 14
6471+, ScopeLevelCount = 16
6472 } SCOPE_LEVEL;
6473+typedef struct _SCOPE_ID {
6474+ _ANONYMOUS_UNION union {
6475+ _ANONYMOUS_STRUCT struct {
6476+ ULONG Zone : 28;
6477+ ULONG Level : 4;
6478+ };
6479+ ULONG Value;
6480+ };
6481+} SCOPE_ID, *PSCOPE_ID;
6482 typedef struct {
6483 ULONG Index;
6484 ULONG MediaType;
6485--- w32api-5.0.2/lib/iphlpapi.def.orig 2017-11-09 02:35:48.000000000 +0100
6486+++ w32api-5.0.2/lib/iphlpapi.def 2018-09-26 15:56:52.920268737 +0200
6487@@ -1,49 +1,264 @@
6488 LIBRARY IPHLPAPI.DLL
6489 EXPORTS
6490 AddIPAddress@20
6491+AllocateAndGetInterfaceInfoFromStack@20
6492+AllocateAndGetIpAddrTableFromStack@16
6493+CPNatfwtCreateProviderInstance@20
6494+CPNatfwtDeregisterProviderInstance@4
6495+CPNatfwtDestroyProviderInstance@4
6496+CPNatfwtIndicateReceivedBuffers@24
6497+CPNatfwtRegisterProviderInstance@20
6498+CancelIPChangeNotify@4
6499+CancelMibChangeNotify2@4
6500+ConvertGuidToStringA@12
6501+ConvertGuidToStringW@12
6502+ConvertInterfaceAliasToLuid@8
6503+ConvertInterfaceGuidToLuid@8
6504+ConvertInterfaceIndexToLuid@8
6505+ConvertInterfaceLuidToAlias@12
6506+ConvertInterfaceLuidToGuid@8
6507+ConvertInterfaceLuidToIndex@8
6508+ConvertInterfaceLuidToNameA@12
6509+ConvertInterfaceLuidToNameW@12
6510+ConvertInterfaceNameToLuidA@8
6511+ConvertInterfaceNameToLuidW@8
6512+ConvertInterfacePhysicalAddressToLuid@12
6513+ConvertIpv4MaskToLength@8
6514+ConvertLengthToIpv4Mask@8
6515+ConvertRemoteInterfaceAliasToLuid@12
6516+ConvertRemoteInterfaceGuidToLuid@12
6517+ConvertRemoteInterfaceIndexToLuid@12
6518+ConvertRemoteInterfaceLuidToAlias@16
6519+ConvertRemoteInterfaceLuidToGuid@12
6520+ConvertRemoteInterfaceLuidToIndex@12
6521+ConvertStringToGuidA@8
6522+ConvertStringToGuidW@8
6523+ConvertStringToInterfacePhysicalAddress@8
6524+CreateAnycastIpAddressEntry@4
6525+CreateIpForwardEntry2@4
6526 CreateIpForwardEntry@4
6527+CreateIpNetEntry2@4
6528 CreateIpNetEntry@4
6529+CreatePersistentTcpPortReservation@12
6530+CreatePersistentUdpPortReservation@12
6531 CreateProxyArpEntry@12
6532+CreateSortedAddressPairs@28
6533+CreateUnicastIpAddressEntry@4
6534+DeleteAnycastIpAddressEntry@4
6535 DeleteIPAddress@4
6536+DeleteIpForwardEntry2@4
6537 DeleteIpForwardEntry@4
6538+DeleteIpNetEntry2@4
6539 DeleteIpNetEntry@4
6540+DeletePersistentTcpPortReservation@8
6541+DeletePersistentUdpPortReservation@8
6542 DeleteProxyArpEntry@12
6543+DeleteUnicastIpAddressEntry@4
6544+DisableMediaSense@8
6545 EnableRouter@8
6546+FlushIpNetTable2@8
6547 FlushIpNetTable@4
6548-GetAdaptersAddresses@20
6549+FlushIpPathTable@4
6550+FreeMibTable@4
6551 GetAdapterIndex@8
6552+GetAdapterOrderMap@0
6553+GetAdaptersAddresses@20
6554 GetAdaptersInfo@8
6555+GetAnycastIpAddressEntry@4
6556+GetAnycastIpAddressTable@8
6557 GetBestInterface@8
6558+GetBestInterfaceEx@8
6559+GetBestRoute2@28
6560 GetBestRoute@12
6561+GetCurrentThreadCompartmentId@0
6562 GetExtendedTcpTable@24
6563+GetExtendedUdpTable@24
6564 GetFriendlyIfIndex@4
6565 GetIcmpStatistics@4
6566+GetIcmpStatisticsEx@8
6567+GetIfEntry2@4
6568 GetIfEntry@4
6569+GetIfStackTable@4
6570+GetIfTable2@4
6571+GetIfTable2Ex@8
6572 GetIfTable@12
6573 GetInterfaceInfo@8
6574+GetInvertedIfStackTable@4
6575 GetIpAddrTable@12
6576+GetIpErrorString@12
6577+GetIpForwardEntry2@4
6578+GetIpForwardTable2@8
6579 GetIpForwardTable@12
6580+GetIpInterfaceEntry@4
6581+GetIpInterfaceTable@8
6582+GetIpNetEntry2@4
6583+GetIpNetTable2@8
6584 GetIpNetTable@12
6585+GetIpPathEntry@4
6586+GetIpPathTable@8
6587 GetIpStatistics@4
6588+GetIpStatisticsEx@8
6589+GetMulticastIpAddressEntry@4
6590+GetMulticastIpAddressTable@8
6591+GetNetworkInformation@20
6592 GetNetworkParams@8
6593 GetNumberOfInterfaces@4
6594+GetOwnerModuleFromPidAndInfo@20
6595+GetOwnerModuleFromTcp6Entry@16
6596+GetOwnerModuleFromTcpEntry@16
6597+GetOwnerModuleFromUdp6Entry@16
6598+GetOwnerModuleFromUdpEntry@16
6599 GetPerAdapterInfo@12
6600+GetPerTcp6ConnectionEStats@44
6601+GetPerTcp6ConnectionStats@32
6602+GetPerTcpConnectionEStats@44
6603+GetPerTcpConnectionStats@32
6604 GetRTTAndHopCount@16
6605+GetSessionCompartmentId@4
6606+GetTcp6Table2@12
6607+GetTcp6Table@12
6608 GetTcpStatistics@4
6609+GetTcpStatisticsEx@8
6610+GetTcpTable2@12
6611 GetTcpTable@12
6612+GetTeredoPort@4
6613+GetUdp6Table@12
6614 GetUdpStatistics@4
6615+GetUdpStatisticsEx@8
6616 GetUdpTable@12
6617 GetUniDirectionalAdapterInfo@8
6618+GetUnicastIpAddressEntry@4
6619+GetUnicastIpAddressTable@8
6620+Icmp6CreateFile@0
6621+Icmp6ParseReplies@8
6622+Icmp6SendEcho2@48
6623+IcmpCloseHandle@4
6624+IcmpCreateFile@0
6625+IcmpParseReplies@8
6626+IcmpSendEcho2@44
6627+IcmpSendEcho2Ex@48
6628+IcmpSendEcho@32
6629+InitializeIpForwardEntry@4
6630+InitializeIpInterfaceEntry@4
6631+InitializeUnicastIpAddressEntry@4
6632+InternalCleanupPersistentStore@8
6633+InternalCreateAnycastIpAddressEntry@8
6634+InternalCreateIpForwardEntry2@8
6635+InternalCreateIpForwardEntry@4
6636+InternalCreateIpNetEntry2@8
6637+InternalCreateIpNetEntry@4
6638+InternalCreateUnicastIpAddressEntry@8
6639+InternalDeleteAnycastIpAddressEntry@8
6640+InternalDeleteIpForwardEntry2@8
6641+InternalDeleteIpForwardEntry@4
6642+InternalDeleteIpNetEntry2@8
6643+InternalDeleteIpNetEntry@4
6644+InternalDeleteUnicastIpAddressEntry@8
6645+InternalFindInterfaceByAddress@8
6646+InternalGetAnycastIpAddressEntry@8
6647+InternalGetAnycastIpAddressTable@12
6648+InternalGetForwardIpTable2@12
6649+InternalGetIfEntry2@8
6650+InternalGetIfTable2@8
6651+InternalGetIfTable@12
6652+InternalGetIpAddrTable@12
6653+InternalGetIpForwardEntry2@8
6654+InternalGetIpForwardTable@12
6655+InternalGetIpInterfaceEntry@8
6656+InternalGetIpInterfaceTable@12
6657+InternalGetIpNetEntry2@8
6658+InternalGetIpNetTable2@12
6659+InternalGetIpNetTable@12
6660+InternalGetMulticastIpAddressEntry@8
6661+InternalGetMulticastIpAddressTable@12
6662+InternalGetTcp6Table2@12
6663+InternalGetTcp6TableWithOwnerModule@12
6664+InternalGetTcp6TableWithOwnerPid@12
6665+InternalGetTcpTable2@12
6666+InternalGetTcpTable@12
6667+InternalGetTcpTableEx@12
6668+InternalGetTcpTableWithOwnerModule@12
6669+InternalGetTcpTableWithOwnerPid@12
6670+InternalGetTunnelPhysicalAdapter@8
6671+InternalGetUdp6TableWithOwnerModule@12
6672+InternalGetUdp6TableWithOwnerPid@12
6673+InternalGetUdpTable@12
6674+InternalGetUdpTableEx@12
6675+InternalGetUdpTableWithOwnerModule@12
6676+InternalGetUdpTableWithOwnerPid@12
6677+InternalGetUnicastIpAddressEntry@8
6678+InternalGetUnicastIpAddressTable@12
6679+InternalSetIfEntry@4
6680+InternalSetIpForwardEntry2@8
6681+InternalSetIpForwardEntry@4
6682+InternalSetIpInterfaceEntry@8
6683+InternalSetIpNetEntry2@8
6684+InternalSetIpNetEntry@4
6685+InternalSetIpStats@4
6686+InternalSetTcpEntry@4
6687+InternalSetTeredoPort@4
6688+InternalSetUnicastIpAddressEntry@8
6689 IpReleaseAddress@4
6690 IpRenewAddress@4
6691+LookupPersistentTcpPortReservation@12
6692+LookupPersistentUdpPortReservation@12
6693+NTPTimeToNTFileTime@12
6694+NTTimeToNTPTime@8
6695+NhGetGuidFromInterfaceName@16
6696+NhGetInterfaceDescriptionFromGuid@20
6697+NhGetInterfaceNameFromDeviceGuid@20
6698+NhGetInterfaceNameFromGuid@20
6699+NhpAllocateAndGetInterfaceInfoFromStack@20
6700 NotifyAddrChange@8
6701+NotifyIpInterfaceChange@20
6702+NotifyRouteChange2@20
6703 NotifyRouteChange@8
6704+NotifyStableUnicastIpAddressTable@20
6705+NotifyTeredoPortChange@16
6706+NotifyUnicastIpAddressChange@20
6707+ParseNetworkString@20
6708+_PfAddFiltersToInterface@24
6709+_PfAddGlobalFilterToInterface@8
6710+_PfBindInterfaceToIPAddress@12
6711+_PfBindInterfaceToIndex@16
6712+_PfCreateInterface@24
6713+_PfDeleteInterface@4
6714+_PfDeleteLog@0
6715+_PfGetInterfaceStatistics@16
6716+_PfMakeLog@4
6717+_PfRebindFilters@8
6718+_PfRemoveFilterHandles@12
6719+_PfRemoveFiltersFromInterface@20
6720+_PfRemoveGlobalFilterFromInterface@8
6721+_PfSetLogBuffer@28
6722+_PfTestPacket@20
6723+_PfUnBindInterface@4
6724+ResolveIpNetEntry2@8
6725+ResolveNeighbor@12
6726+RestoreMediaSense@8
6727 SendARP@16
6728 SetAdapterIpAddress@20
6729+SetCurrentThreadCompartmentId@4
6730 SetIfEntry@4
6731+SetIpForwardEntry2@4
6732 SetIpForwardEntry@4
6733+SetIpInterfaceEntry@4
6734+SetIpNetEntry2@4
6735 SetIpNetEntry@4
6736 SetIpStatistics@4
6737+SetIpStatisticsEx@8
6738 SetIpTTL@4
6739+SetNetworkInformation@12
6740+SetPerTcp6ConnectionEStats@24
6741+SetPerTcp6ConnectionStats@20
6742+SetPerTcpConnectionEStats@24
6743+SetPerTcpConnectionStats@20
6744+SetSessionCompartmentId@8
6745 SetTcpEntry@4
6746+SetUnicastIpAddressEntry@4
6747 UnenableRouter@8
6748+do_echo_rep@40
6749+do_echo_req@40
6750+if_indextoname@8
6751+if_nametoindex@4
6752+register_icmp@0
d28dcdb9
JB
6753--- w32api-5.0.2/include/shlobj.h.orig 2017-11-09 02:35:48.000000000 +0100
6754+++ w32api-5.0.2/include/shlobj.h 2019-03-17 21:21:15.503665619 +0100
6755@@ -1500,6 +1500,41 @@
6756 void WINAPI SHGetSetSettings(LPSHELLSTATE,DWORD,BOOL);
6757 #endif
6758
6759+#if NTDDI_VERSION >= 0x06000000
6760+typedef GUID KNOWNFOLDERID;
6761+#ifdef __cplusplus
6762+#define REFKNOWNFOLDERID const KNOWNFOLDERID &
6763+#else
6764+#define REFKNOWNFOLDERID const KNOWNFOLDERID * /* __MIDL_CONST */
6765+#endif
6766+
6767+ typedef enum {
6768+ KF_FLAG_DEFAULT = 0x00000000,
6769+#if NTDDI_VERSION >= 0x06010000
6770+ KF_FLAG_NO_APPCONTAINER_REDIRECTION = 0x00010000,
6771+#endif
6772+ KF_FLAG_CREATE = 0x00008000,
6773+ KF_FLAG_DONT_VERIFY = 0x00004000,
6774+ KF_FLAG_DONT_UNEXPAND = 0x00002000,
6775+ KF_FLAG_NO_ALIAS = 0x00001000,
6776+ KF_FLAG_INIT = 0x00000800,
6777+ KF_FLAG_DEFAULT_PATH = 0x00000400,
6778+ KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200,
6779+ KF_FLAG_SIMPLE_IDLIST = 0x00000100,
6780+ KF_FLAG_ALIAS_ONLY = 0x80000000
6781+ } KNOWN_FOLDER_FLAG;
6782+
6783+ DEFINE_ENUM_FLAG_OPERATORS (KNOWN_FOLDER_FLAG);
6784+
6785+ STDAPI SHGetKnownFolderIDList (REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, LPCITEMIDLIST *ppidl);
6786+ STDAPI SHSetKnownFolderPath (REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, PCWSTR pszPath);
6787+ STDAPI SHGetKnownFolderPath (REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, PWSTR *ppszPath);
6788+#endif
6789+
6790+#if NTDDI_VERSION >= 0x06010000
6791+ STDAPI SHGetKnownFolderItem (REFKNOWNFOLDERID rfid, KNOWN_FOLDER_FLAG flags, HANDLE hToken, REFIID riid, void **ppv);
6792+#endif
6793+
6794 #if (_WIN32_WINNT >= 0x0500) /* W2K */
6795 BOOL WINAPI ILIsEqual(LPCITEMIDLIST, LPCITEMIDLIST);
6796 BOOL WINAPI ILIsParent(LPCITEMIDLIST, LPCITEMIDLIST, BOOL);
6797--- w32api-5.0.2/include/winioctl.h.orig 2017-11-09 02:35:48.000000000 +0100
6798+++ w32api-5.0.2/include/winioctl.h 2019-03-17 21:22:23.789962347 +0100
6799@@ -96,6 +96,7 @@
6800 #define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM,41,METHOD_BUFFERED,FILE_ANY_ACCESS)
6801 #define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM,43,METHOD_BUFFERED,FILE_ANY_ACCESS)
6802 #define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,49,METHOD_BUFFERED,FILE_SPECIAL_ACCESS)
6803+#define FSCTL_SET_ZERO_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM,50,METHOD_BUFFERED,FILE_WRITE_DATA)
6804 #define FSCTL_ALLOW_EXTENDED_DASD_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM,32,METHOD_NEITHER,FILE_ANY_ACCESS)
6805
6806 typedef DWORD DEVICE_TYPE;
6807@@ -272,6 +273,15 @@
6808 LARGE_INTEGER MftZoneEnd;
6809 } NTFS_VOLUME_DATA_BUFFER, *PNTFS_VOLUME_DATA_BUFFER;
6810
6811+typedef struct _FILE_SET_SPARSE_BUFFER {
6812+ BOOLEAN SetSparse;
6813+} FILE_SET_SPARSE_BUFFER,*PFILE_SET_SPARSE_BUFFER;
6814+
6815+typedef struct _FILE_ZERO_DATA_INFORMATION {
6816+ LARGE_INTEGER FileOffset;
6817+ LARGE_INTEGER BeyondFinalZero;
6818+} FILE_ZERO_DATA_INFORMATION,*PFILE_ZERO_DATA_INFORMATION;
6819+
6820 _END_C_DECLS
6821
6822 #undef __WINIOCTL_H_SOURCED__
6823--- w32api-5.0.2/lib/shell32.def.orig 2017-11-09 02:35:48.000000000 +0100
6824+++ w32api-5.0.2/lib/shell32.def 2019-03-17 21:25:25.175646363 +0100
6825@@ -184,3 +184,7 @@
6826 ILRemoveLastID@4
6827 ILSaveToStream@8
6828 PathResolve@12
6829+SHGetKnownFolderIDList@16
6830+SHGetKnownFolderItem@20
6831+SHGetKnownFolderPath@16
6832+SHSetKnownFolderPath@16
This page took 0.882206 seconds and 4 git commands to generate.