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