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