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