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