wine  6.0.1
About: Wine is an Open Source implementation of the MS Windows API on top of X, OpenGL, and Unix. Think of Wine as a compatibility layer for running Windows programs.
  Fossies Dox: wine-6.0.1.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

wdm.h
Go to the documentation of this file.
1 /*
2  * Copyright 2004-2005 Ivan Leo Puoti
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 #ifndef _WDMDDK_
20 #define _WDMDDK_
21 #define _NTDDK_
22 
23 #include <ntstatus.h>
24 
25 #ifdef _WIN64
26 #define POINTER_ALIGNMENT DECLSPEC_ALIGN(8)
27 #else
28 #define POINTER_ALIGNMENT
29 #endif
30 
31 /* FIXME: We suppose that page size is 4096 */
32 #undef PAGE_SIZE
33 #undef PAGE_SHIFT
34 #define PAGE_SIZE 0x1000
35 #define PAGE_SHIFT 12
36 
37 #define BYTE_OFFSET(va) ((ULONG)((ULONG_PTR)(va) & (PAGE_SIZE - 1)))
38 #define PAGE_ALIGN(va) ((PVOID)((ULONG_PTR)(va) & ~(PAGE_SIZE - 1)))
39 #define ADDRESS_AND_SIZE_TO_SPAN_PAGES(va, length) \
40  ((BYTE_OFFSET(va) + ((SIZE_T)(length)) + (PAGE_SIZE - 1)) >> PAGE_SHIFT)
41 
42 typedef LONG KPRIORITY;
43 
45 
48 typedef struct _FILE_GET_QUOTA_INFORMATION *PFILE_GET_QUOTA_INFORMATION;
49 
50 struct _KDPC;
51 struct _KAPC;
52 struct _IRP;
53 struct _DEVICE_OBJECT;
54 struct _DRIVER_OBJECT;
55 struct _KPROCESS;
56 
57 typedef VOID (WINAPI *PKDEFERRED_ROUTINE)(struct _KDPC *, PVOID, PVOID, PVOID);
59 
61 typedef NTSTATUS (WINAPI *PDRIVER_DISPATCH)(struct _DEVICE_OBJECT *, struct _IRP *);
62 typedef void (WINAPI *PDRIVER_STARTIO)(struct _DEVICE_OBJECT *, struct _IRP *);
65 
66 typedef struct _DISPATCHER_HEADER {
74 
75 typedef struct _KEVENT {
78 
79 typedef struct _KSEMAPHORE {
83 
84 typedef struct _KDPC {
89  PKDEFERRED_ROUTINE DeferredRoutine;
95 
96 typedef enum _KDPC_IMPORTANCE {
102 
103 typedef struct _KDEVICE_QUEUE_ENTRY {
109 
110 typedef struct _KDEVICE_QUEUE {
117 
118 typedef struct _KMUTANT {
125 
127 {
131 
132 typedef enum _KWAIT_REASON
133 {
161 
162 typedef struct _KWAIT_BLOCK {
170 
171 typedef struct _OWNER_ENTRY
172 {
174  union
175  {
176  struct
177  {
182  };
184  };
186 
187 #define ResourceNeverExclusive 0x0010
188 #define ResourceReleaseByOtherThread 0x0020
189 #define ResourceOwnedExclusive 0x0080
190 
191 typedef struct _ERESOURCE
192 {
196  union
197  {
199  struct
200  {
203  };
204  };
212 #ifdef _WIN64
213  void *Reserved2;
214 #endif
215  union
216  {
217  void *Address;
219  };
222 
223 typedef struct _IO_TIMER *PIO_TIMER;
224 typedef struct _IO_TIMER_ROUTINE *PIO_TIMER_ROUTINE;
225 typedef struct _ETHREAD *PETHREAD;
226 typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD;
227 typedef struct _EPROCESS *PEPROCESS;
228 typedef struct _KPROCESS KPROCESS, *PKPROCESS, *PRKPROCESS;
229 typedef struct _IO_WORKITEM *PIO_WORKITEM;
230 typedef struct _OBJECT_TYPE *POBJECT_TYPE;
231 typedef struct _OBJECT_HANDLE_INFORMATION *POBJECT_HANDLE_INFORMATION;
232 typedef struct _ZONE_HEADER *PZONE_HEADER;
234 
235 typedef struct _KAPC_STATE
236 {
243 
244 #define FM_LOCK_BIT 0x1
245 
246 typedef struct _FAST_MUTEX
247 {
254 
255 #define MAXIMUM_VOLUME_LABEL_LENGTH (32 * sizeof(WCHAR))
256 
257 typedef struct _VPB {
267 } VPB, *PVPB;
268 
269 #define POOL_QUOTA_FAIL_INSTEAD_OF_RAISE 0x0008
270 #define POOL_RAISE_IF_ALLOCATION_FAILURE 0x0010
271 #define POOL_COLD_ALLOCATION 0x0100
272 #define POOL_NX_ALLOCATION 0x0200
273 
274 typedef enum _POOL_TYPE {
284 
285 typedef struct _WAIT_CONTEXT_BLOCK {
287  struct _DRIVER_CONTROL *DeviceRoutine;
294 
295 #define DO_BUFFERED_IO 0x00000004
296 #define DO_EXCLUSIVE 0x00000008
297 #define DO_DIRECT_IO 0x00000010
298 #define DO_MAP_IO_BUFFER 0x00000020
299 #define DO_DEVICE_INITIALIZING 0x00000080
300 #define DO_SHUTDOWN_REGISTERED 0x00000800
301 #define DO_BUS_ENUMERATED_DEVICE 0x00001000
302 #define DO_POWER_PAGABLE 0x00002000
303 #define DO_POWER_INRUSH 0x00004000
304 
305 #define IO_NO_INCREMENT 0
306 #define IO_CD_ROM_INCREMENT 1
307 #define IO_DISK_INCREMENT 1
308 #define IO_KEYBOARD_INCREMENT 6
309 #define IO_MAILSLOT_INCREMENT 2
310 #define IO_MOUSE_INCREMENT 6
311 #define IO_NAMED_PIPE_INCREMENT 2
312 #define IO_NETWORK_INCREMENT 2
313 #define IO_PARALLEL_INCREMENT 1
314 #define IO_SERIAL_INCREMENT 2
315 #define IO_SOUND_INCREMENT 8
316 #define IO_VIDEO_INCREMENT 1
317 
318 #ifndef DEVICE_TYPE
319 #define DEVICE_TYPE ULONG
320 #endif
321 #define IRP_MJ_MAXIMUM_FUNCTION 0x1b
322 #define IRP_MJ_CREATE 0x00
323 #define IRP_MJ_CREATE_NAMED_PIPE 0x01
324 #define IRP_MJ_CLOSE 0x02
325 #define IRP_MJ_READ 0x03
326 #define IRP_MJ_WRITE 0x04
327 #define IRP_MJ_QUERY_INFORMATION 0x05
328 #define IRP_MJ_SET_INFORMATION 0x06
329 #define IRP_MJ_QUERY_EA 0x07
330 #define IRP_MJ_SET_EA 0x08
331 #define IRP_MJ_FLUSH_BUFFERS 0x09
332 #define IRP_MJ_QUERY_VOLUME_INFORMATION 0x0a
333 #define IRP_MJ_SET_VOLUME_INFORMATION 0x0b
334 #define IRP_MJ_DIRECTORY_CONTROL 0x0c
335 #define IRP_MJ_FILE_SYSTEM_CONTROL 0x0d
336 #define IRP_MJ_DEVICE_CONTROL 0x0e
337 #define IRP_MJ_INTERNAL_DEVICE_CONTROL 0x0f
338 #define IRP_MJ_SHUTDOWN 0x10
339 #define IRP_MJ_LOCK_CONTROL 0x11
340 #define IRP_MJ_CLEANUP 0x12
341 #define IRP_MJ_CREATE_MAILSLOT 0x13
342 #define IRP_MJ_QUERY_SECURITY 0x14
343 #define IRP_MJ_SET_SECURITY 0x15
344 #define IRP_MJ_POWER 0x16
345 #define IRP_MJ_SYSTEM_CONTROL 0x17
346 #define IRP_MJ_DEVICE_CHANGE 0x18
347 #define IRP_MJ_QUERY_QUOTA 0x19
348 #define IRP_MJ_SET_QUOTA 0x1a
349 #define IRP_MJ_PNP 0x1b
350 
351 #define IRP_MN_START_DEVICE 0x00
352 #define IRP_MN_QUERY_REMOVE_DEVICE 0x01
353 #define IRP_MN_REMOVE_DEVICE 0x02
354 #define IRP_MN_CANCEL_REMOVE_DEVICE 0x03
355 #define IRP_MN_STOP_DEVICE 0x04
356 #define IRP_MN_QUERY_STOP_DEVICE 0x05
357 #define IRP_MN_CANCEL_STOP_DEVICE 0x06
358 #define IRP_MN_QUERY_DEVICE_RELATIONS 0x07
359 #define IRP_MN_QUERY_INTERFACE 0x08
360 #define IRP_MN_QUERY_CAPABILITIES 0x09
361 #define IRP_MN_QUERY_RESOURCES 0x0A
362 #define IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B
363 #define IRP_MN_QUERY_DEVICE_TEXT 0x0C
364 #define IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D
365 #define IRP_MN_READ_CONFIG 0x0F
366 #define IRP_MN_WRITE_CONFIG 0x10
367 #define IRP_MN_EJECT 0x11
368 #define IRP_MN_SET_LOCK 0x12
369 #define IRP_MN_QUERY_ID 0x13
370 #define IRP_MN_QUERY_PNP_DEVICE_STATE 0x14
371 #define IRP_MN_QUERY_BUS_INFORMATION 0x15
372 #define IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16
373 #define IRP_MN_SURPRISE_REMOVAL 0x17
374 #define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18
375 
376 #define IRP_MN_WAIT_WAKE 0x00
377 #define IRP_MN_POWER_SEQUENCE 0x01
378 #define IRP_MN_SET_POWER 0x02
379 #define IRP_MN_QUERY_POWER 0x03
380 
381 #define IRP_QUOTA_CHARGED 0x01
382 #define IRP_ALLOCATED_MUST_SUCCEED 0x02
383 #define IRP_ALLOCATED_FIXED_SIZE 0x04
384 #define IRP_LOOKASIDE_ALLOCATION 0x08
385 
386 #define IO_TYPE_ADAPTER 0x01
387 #define IO_TYPE_CONTROLLER 0x02
388 #define IO_TYPE_DEVICE 0x03
389 #define IO_TYPE_DRIVER 0x04
390 #define IO_TYPE_FILE 0x05
391 #define IO_TYPE_IRP 0x06
392 #define IO_TYPE_MASTER_ADAPTER 0x07
393 #define IO_TYPE_OPEN_PACKET 0x08
394 #define IO_TYPE_TIMER 0x09
395 #define IO_TYPE_VPB 0x0a
396 #define IO_TYPE_ERROR_LOG 0x0b
397 #define IO_TYPE_ERROR_MESSAGE 0x0c
398 #define IO_TYPE_DEVICE_OBJECT_EXTENSION 0x0d
399 
400 typedef struct _DEVICE_OBJECT {
407  struct _IRP *CurrentIrp;
415  union {
418  } Queue;
427  struct _DEVOBJ_EXTENSION *DeviceObjectExtension;
431 
432 typedef struct _DEVICE_RELATIONS {
437 
438 typedef struct _DRIVER_EXTENSION {
444 
445 typedef struct _DRIVER_OBJECT {
463 
464 /* Irp definitions */
465 typedef UCHAR KIRQL, *PKIRQL;
467 typedef enum _KAPC_ENVIRONMENT
468 {
474 
476  IN struct _DEVICE_OBJECT *DeviceObject,
477  IN struct _IRP *Irp);
478 
480  IN PVOID NormalContext,
481  IN PVOID SystemArgument1,
482  IN PVOID SystemArgument2);
483 
485  IN struct _KAPC *Apc,
490 
492  IN struct _KAPC *Apc);
493 
494 typedef struct _KAPC {
498  struct _KTHREAD *Thread;
510 
511 typedef struct _IRP {
514  struct _MDL *MdlAddress;
516  union {
517  struct _IRP *MasterIrp;
533  union {
534  struct {
542  union {
543  struct {
544  union {
546  struct {
552  struct {
554  union {
563  } Tail;
564 } IRP;
565 typedef struct _IRP *PIRP;
566 
567 #define IRP_NOCACHE 0x0001
568 #define IRP_PAGING_IO 0x0002
569 #define IRP_MOUNT_COMPLETION 0x0002
570 #define IRP_SYNCHRONOUS_API 0x0004
571 #define IRP_ASSOCIATED_IRP 0x0008
572 #define IRP_BUFFERED_IO 0x0010
573 #define IRP_DEALLOCATE_BUFFER 0x0020
574 #define IRP_INPUT_OPERATION 0x0040
575 #define IRP_SYNCHRONOUS_PAGING_IO 0x0040
576 #define IRP_CREATE_OPERATION 0x0080
577 #define IRP_READ_OPERATION 0x0100
578 #define IRP_WRITE_OPERATION 0x0200
579 #define IRP_CLOSE_OPERATION 0x0400
580 #define IRP_DEFER_IO_COMPLETION 0x0800
581 #define IRP_OB_QUERY_NAME 0x1000
582 #define IRP_HOLD_DEVICE_QUEUE 0x2000
583 
585  PVOID Context);
586 
588  PVOID Context);
589 
590 typedef struct _INTERFACE {
597 
598 typedef struct _SECTION_OBJECT_POINTERS {
603 
604 typedef struct _IO_COMPLETION_CONTEXT {
608 
609 typedef enum _DEVICE_RELATION_TYPE {
617 
618 typedef struct _FILE_OBJECT {
647 typedef struct _FILE_OBJECT *PFILE_OBJECT;
648 
649 #define INITIAL_PRIVILEGE_COUNT 3
650 
651 typedef struct _INITIAL_PRIVILEGE_SET {
656 
663 
664 typedef struct _ACCESS_STATE {
677  union {
681 
686 
687 typedef struct _IO_SECURITY_CONTEXT {
693 
694 typedef struct _DEVICE_CAPABILITIES {
725 
733 
734 typedef enum _INTERFACE_TYPE {
754 
756 
757 #define IO_RESOURCE_PREFERRED 0x01
758 #define IO_RESOURCE_DEFAULT 0x02
759 #define IO_RESOURCE_ALTERNATIVE 0x08
760 
761 typedef struct _IO_RESOURCE_DESCRIPTOR {
768  union {
769  struct {
774  } Port;
775  struct {
776  ULONG Length;
781  struct {
785  struct {
788  } Dma;
789  struct {
790  ULONG Length;
795  struct {
798  struct {
799  ULONG Length;
804  struct {
809  } u;
811 
812 typedef struct _IO_RESOURCE_LIST {
818 
828 
829 typedef enum _BUS_QUERY_ID_TYPE {
836 
837 typedef enum _CREATE_FILE_TYPE {
842 
843 typedef enum {
865 
866 typedef enum _DEVICE_TEXT_TYPE {
870 
877 
878 typedef struct _POWER_SEQUENCE {
883 
884 typedef enum _POWER_STATE_TYPE {
888 
889 typedef union _POWER_STATE {
893 
898  union {
899  struct {
903  struct {
905  ULONG Length;
906  } Port;
907  struct {
912  struct {
914  ULONG Length;
916  struct {
920  } Dma;
921  struct {
924  struct {
926  ULONG Length;
929  struct {
934  } u;
936 
943 
949 
950 typedef struct _CM_RESOURCE_LIST {
954 
956  IN struct _DEVICE_OBJECT *DeviceObject,
957  IN struct _IRP *Irp,
958  IN PVOID Context);
959 
960 #define SL_PENDING_RETURNED 0x01
961 #define SL_INVOKE_ON_CANCEL 0x20
962 #define SL_INVOKE_ON_SUCCESS 0x40
963 #define SL_INVOKE_ON_ERROR 0x80
964 
965 #if !defined(_WIN64)
966 #include <pshpack4.h>
967 #endif
968 typedef struct _IO_STACK_LOCATION {
973  union {
974  struct {
981  struct {
985  } Read;
986  struct {
987  ULONG Length;
990  } Write;
991  struct {
992  ULONG Length;
995  struct {
996  ULONG Length;
999  union {
1000  struct {
1008  struct {
1009  ULONG Length;
1012  struct {
1018  struct {
1022  struct {
1026  struct {
1030  struct {
1031  PVPB Vpb;
1034  struct {
1035  struct _SCSI_REQUEST_BLOCK *Srb;
1036  } Scsi;
1037  struct {
1040  struct {
1047  struct {
1050  struct {
1053  struct {
1059  struct {
1062  struct {
1065  struct {
1069  struct {
1074  struct {
1077  struct {
1080  struct {
1086  struct {
1090  struct {
1094  PVOID Buffer;
1095  } WMI;
1096  struct {
1108 #if !defined(_WIN64)
1109 #include <poppack.h>
1110 #endif
1111 
1112 /* MDL definitions */
1113 
1114 #define MDL_MAPPED_TO_SYSTEM_VA 0x0001
1115 #define MDL_PAGES_LOCKED 0x0002
1116 #define MDL_SOURCE_IS_NONPAGED_POOL 0x0004
1117 #define MDL_ALLOCATED_FIXED_SIZE 0x0008
1118 #define MDL_PARTIAL 0x0010
1119 #define MDL_PARTIAL_HAS_BEEN_MAPPED 0x0020
1120 #define MDL_IO_PAGE_READ 0x0040
1121 #define MDL_WRITE_OPERATION 0x0080
1122 #define MDL_PARENT_MAPPED_SYSTEM_VA 0x0100
1123 #define MDL_FREE_EXTRA_PTES 0x0200
1124 #define MDL_DESCRIBES_AWE 0x0400
1125 #define MDL_IO_SPACE 0x0800
1126 #define MDL_NETWORK_HEADER 0x1000
1127 #define MDL_MAPPING_CAN_FAIL 0x2000
1128 #define MDL_ALLOCATED_MUST_SUCCEED 0x4000
1129 #define MDL_INTERNAL 0x8000
1130 
1131 #define MDL_MAPPING_FLAGS (MDL_MAPPED_TO_SYSTEM_VA | \
1132  MDL_PAGES_LOCKED | \
1133  MDL_SOURCE_IS_NONPAGED_POOL | \
1134  MDL_PARTIAL_HAS_BEEN_MAPPED | \
1135  MDL_PARENT_MAPPED_SYSTEM_VA | \
1136  MDL_SYSTEM_VA | \
1137  MDL_IO_SPACE )
1138 
1139 typedef struct _MDL {
1140  struct _MDL *Next;
1148 } MDL, *PMDL;
1149 
1150 typedef MDL *PMDLX;
1152 
1153 static inline void MmInitializeMdl(MDL *mdl, void *va, SIZE_T length)
1154 {
1155  mdl->Next = NULL;
1156  mdl->Size = sizeof(MDL) + sizeof(PFN_NUMBER) * ADDRESS_AND_SIZE_TO_SPAN_PAGES(va, length);
1157  mdl->MdlFlags = 0;
1158  mdl->StartVa = (void *)PAGE_ALIGN(va);
1159  mdl->ByteOffset = BYTE_OFFSET(va);
1160  mdl->ByteCount = length;
1161 }
1162 
1163 typedef struct _KTIMER {
1167  struct _KDPC *Dpc;
1170 
1171 typedef struct _KSYSTEM_TIME {
1176 
1177 typedef enum _NT_PRODUCT_TYPE {
1182 
1183 #define PROCESSOR_FEATURE_MAX 64
1184 
1186 {
1191 
1192 #define NX_SUPPORT_POLICY_ALWAYSOFF 0
1193 #define NX_SUPPORT_POLICY_ALWAYSON 1
1194 #define NX_SUPPORT_POLICY_OPTIN 2
1195 #define NX_SUPPORT_POLICY_OPTOUT 3
1196 
1197 typedef struct _KUSER_SHARED_DATA {
1200  volatile KSYSTEM_TIME InterruptTime; /* 0x008 */
1201  volatile KSYSTEM_TIME SystemTime; /* 0x014 */
1202  volatile KSYSTEM_TIME TimeZoneBias; /* 0x020 */
1203  USHORT ImageNumberLow; /* 0x02c */
1205  WCHAR NtSystemRoot[260]; /* 0x030 */
1207  ULONG CryptoExponent; /* 0x23c */
1208  ULONG TimeZoneId; /* 0x240 */
1211  ULONG AppCompatFlag; /* 0x24c */
1214  volatile ULONG TimeZoneBiasStamp; /* 0x25c */
1215  ULONG NtBuildNumber; /* 0x260 */
1219  ULONG NtMajorVersion; /* 0x26c */
1220  ULONG NtMinorVersion; /* 0x270 */
1222  ULONG Reserved1; /* 0x2b4 */
1223  ULONG Reserved3; /* 0x2b8 */
1224  volatile ULONG TimeSlip; /* 0x2bc */
1226  ULONG BootId; /* 0x2c4 */
1228  ULONG SuiteMask; /* 0x2d0 */
1230  UCHAR NXSupportPolicy; /* 0x2d5 */
1231  USHORT CyclesPerYield; /* 0x2d6 */
1232  volatile ULONG ActiveConsoleId; /* 0x2d8 */
1233  volatile ULONG DismountCount; /* 0x2dc */
1234  ULONG ComPlusPackage; /* 0x2e0 */
1237  BOOLEAN SafeBootMode; /* 0x2ec */
1239  union {
1240  ULONG SharedDataFlags; /* 0x2f0 */
1241  struct {
1256  ULONG DataFlagsPad[1]; /* 0x2f4 */
1258  LONGLONG QpcFrequency; /* 0x300 */
1259  ULONG SystemCall; /* 0x308 */
1260  union {
1261  ULONG AllFlags; /* 0x30c */
1262  struct {
1266  ULONG SpareBits : 29;
1269  ULONGLONG SystemCallPad[2]; /* 0x310 */
1270  union {
1271  volatile KSYSTEM_TIME TickCount; /* 0x320 */
1274  ULONG Cookie; /* 0x330 */
1275  ULONG CookiePad[1]; /* 0x334 */
1285  ULONG EnclaveFeatureMask[4]; /* 0x36c */
1287  USHORT UserModeGlobalLogger[16]; /* 0x380 */
1291  volatile ULONGLONG InterruptTimeBias; /* 0x3b0 */
1292  volatile ULONGLONG QpcBias; /* 0x3b8 */
1294  volatile UCHAR ActiveGroupCount; /* 0x3c4 */
1295  USHORT QpcData; /* 0x3c6 */
1300 
1301 typedef enum _MEMORY_CACHING_TYPE {
1308  MmMaximumCacheType = 6
1310 
1311 typedef enum _MM_PAGE_PRIORITY {
1314  HighPagePriority = 32
1316 
1317 typedef enum _MM_SYSTEM_SIZE
1318 {
1323 
1330 
1331 typedef struct _IO_REMOVE_LOCK_TRACKING_BLOCK *PIO_REMOVE_LOCK_TRACKING_BLOCK;
1332 
1345 
1346 typedef struct _IO_REMOVE_LOCK {
1350 
1351 typedef enum {
1356 
1357 typedef struct _CALLBACK_OBJECT
1358 {
1365 
1366 typedef struct _KSPIN_LOCK_QUEUE {
1367  struct _KSPIN_LOCK_QUEUE * volatile Next;
1368  volatile PKSPIN_LOCK Lock;
1370 
1371 typedef struct _KLOCK_QUEUE_HANDLE {
1375 
1378 typedef void (NTAPI *PFREE_FUNCTION)(void *);
1380 typedef void (NTAPI *PCALLBACK_FUNCTION)(void *, void *, void *);
1381 
1382 #ifdef _WIN64
1383 #define LOOKASIDE_ALIGN DECLSPEC_CACHEALIGN
1384 #else
1385 #define LOOKASIDE_ALIGN
1386 #endif
1387 
1388 #define LOOKASIDE_MINIMUM_BLOCK_SIZE (RTL_SIZEOF_THROUGH_FIELD(SLIST_ENTRY, Next))
1389 
1390 #define GENERAL_LOOKASIDE_LAYOUT \
1391  union \
1392  { \
1393  SLIST_HEADER ListHead; \
1394  SINGLE_LIST_ENTRY SingleListHead; \
1395  } DUMMYUNIONNAME; \
1396  USHORT Depth; \
1397  USHORT MaximumDepth; \
1398  ULONG TotalAllocates; \
1399  union \
1400  { \
1401  ULONG AllocateMisses; \
1402  ULONG AllocateHits; \
1403  } DUMMYUNIONNAME2; \
1404  ULONG TotalFrees; \
1405  union \
1406  { \
1407  ULONG FreeMisses; \
1408  ULONG FreeHits; \
1409  } DUMMYUNIONNAME3; \
1410  POOL_TYPE Type; \
1411  ULONG Tag; \
1412  ULONG Size; \
1413  union \
1414  { \
1415  PALLOCATE_FUNCTION_EX AllocateEx; \
1416  PALLOCATE_FUNCTION Allocate; \
1417  } DUMMYUNIONNAME4; \
1418  union \
1419  { \
1420  PFREE_FUNCTION_EX FreeEx; \
1421  PFREE_FUNCTION Free; \
1422  } DUMMYUNIONNAME5; \
1423  LIST_ENTRY ListEntry; \
1424  ULONG LastTotalAllocates; \
1425  union \
1426  { \
1427  ULONG LastAllocateMisses; \
1428  ULONG LastAllocateHits; \
1429  } DUMMYUNIONNAME6; \
1430  ULONG Future[2];
1431 
1433 {
1436 
1438 {
1441 
1442 typedef struct _LOOKASIDE_LIST_EX
1443 {
1446 
1448 {
1450 #if defined(__i386__)
1451  KSPIN_LOCK Lock__ObsoleteButDoNotDelete;
1452 #endif
1454 
1456 {
1458 #if defined(__i386__)
1459  FAST_MUTEX Lock__ObsoleteButDoNotDelete;
1460 #endif
1462 
1463 typedef NTSTATUS (NTAPI EX_CALLBACK_FUNCTION)(void *CallbackContext, void *Argument1, void *Argument2);
1464 typedef EX_CALLBACK_FUNCTION *PEX_CALLBACK_FUNCTION;
1465 
1467 
1472 
1479 
1484 
1487  union {
1489  struct {
1499 
1503 
1507 
1512 
1515  union {
1517  struct {
1528 
1532 
1535 
1542 
1550 
1551 #define OB_FLT_REGISTRATION_VERSION_0100 0x0100
1552 #define OB_FLT_REGISTRATION_VERSION OB_FLT_REGISTRATION_VERSION_0100
1553 
1558 
1559 typedef enum _WORK_QUEUE_TYPE {
1565 
1567 
1569 
1570 #ifdef NONAMELESSUNION
1571 # ifdef NONAMELESSSTRUCT
1572 # define IoGetCurrentIrpStackLocation(_Irp) ((_Irp)->Tail.Overlay.s.u2.CurrentStackLocation)
1573 # define IoGetNextIrpStackLocation(_Irp) ((_Irp)->Tail.Overlay.s.u2.CurrentStackLocation - 1)
1574  static inline void IoSkipCurrentIrpStackLocation(IRP *irp) {irp->Tail.Overlay.s.u2.CurrentStackLocation++; irp->CurrentLocation++;}
1575 # else
1576 # define IoGetCurrentIrpStackLocation(_Irp) ((_Irp)->Tail.Overlay.u2.CurrentStackLocation)
1577 # define IoGetNextIrpStackLocation(_Irp) ((_Irp)->Tail.Overlay.u2.CurrentStackLocation - 1)
1578  static inline void IoSkipCurrentIrpStackLocation(IRP *irp) {irp->Tail.Overlay.u2.CurrentStackLocation++; irp->CurrentLocation++;}
1579 # endif
1580 #else
1581 # ifdef NONAMELESSSTRUCT
1582 # define IoGetCurrentIrpStackLocation(_Irp) ((_Irp)->Tail.Overlay.s.CurrentStackLocation)
1583 # define IoGetNextIrpStackLocation(_Irp) ((_Irp)->Tail.Overlay.s.CurrentStackLocation - 1)
1584  static inline void IoSkipCurrentIrpStackLocation(IRP *irp) {irp->Tail.Overlay.s.CurrentStackLocation++; irp->CurrentLocation++;}
1585 # else
1586 # define IoGetCurrentIrpStackLocation(_Irp) ((_Irp)->Tail.Overlay.CurrentStackLocation)
1587 # define IoGetNextIrpStackLocation(_Irp) ((_Irp)->Tail.Overlay.CurrentStackLocation - 1)
1589 # endif
1590 #endif
1591 
1592 #define IoSetCancelRoutine(irp, routine) \
1593  ((PDRIVER_CANCEL)InterlockedExchangePointer((void **)&(irp)->CancelRoutine, routine))
1594 
1595 static inline void IoSetCompletionRoutine(IRP *irp, PIO_COMPLETION_ROUTINE routine, void *context,
1596  BOOLEAN on_success, BOOLEAN on_error, BOOLEAN on_cancel)
1597 {
1599  irpsp->CompletionRoutine = routine;
1600  irpsp->Context = context;
1601  irpsp->Control = 0;
1602  if (on_success) irpsp->Control |= SL_INVOKE_ON_SUCCESS;
1603  if (on_error) irpsp->Control |= SL_INVOKE_ON_ERROR;
1604  if (on_cancel) irpsp->Control |= SL_INVOKE_ON_CANCEL;
1605 }
1606 
1607 static inline void IoMarkIrpPending(IRP *irp)
1608 {
1610 }
1611 
1613 {
1616  memcpy(next, current, FIELD_OFFSET(IO_STACK_LOCATION, CompletionRoutine));
1617  next->Control = 0;
1618 }
1619 
1620 #define KernelMode 0
1621 #define UserMode 1
1622 
1623 /* directory object access rights */
1624 #define DIRECTORY_QUERY 0x0001
1625 #define DIRECTORY_TRAVERSE 0x0002
1626 #define DIRECTORY_CREATE_OBJECT 0x0004
1627 #define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
1628 #define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
1629 
1630 /* symbolic link access rights */
1631 #define SYMBOLIC_LINK_QUERY 0x0001
1632 #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
1633 
1664 void WINAPI ExUnregisterCallback(void*);
1665 
1688 void WINAPI IoFreeIrp(IRP*);
1702 #ifdef _WIN64
1703 BOOLEAN WINAPI IoIs32bitProcess(IRP*);
1704 #endif
1711 void WINAPI IoReuseIrp(IRP*,NTSTATUS);
1714 
1716 #ifdef __i386__
1718 #else
1719 #define KeAcquireSpinLock( lock, irql ) *(irql) = KeAcquireSpinLockRaiseToDpc( lock )
1721 #endif
1727 void WINAPI KeEnterCriticalRegion(void);
1728 void WINAPI KeGenericCallDpc(PKDEFERRED_ROUTINE,PVOID);
1731 void WINAPI KeInitializeDpc(KDPC*,PKDEFERRED_ROUTINE,void*);
1738 void WINAPI KeLeaveCriticalRegion(void);
1759 void WINAPI KeSignalCallDpcDone(void*);
1763 
1775 
1776 static inline void *MmGetSystemAddressForMdlSafe(MDL *mdl, ULONG priority)
1777 {
1779  return mdl->MappedSystemVa;
1780  else
1781  return MmMapLockedPagesSpecifyCache(mdl, KernelMode, MmCached, NULL, FALSE, priority);
1782 }
1783 
1784 void FASTCALL ObfReferenceObject(void*);
1785 void WINAPI ObDereferenceObject(void*);
1791 void WINAPI ObUnRegisterCallbacks(void*);
1792 
1796 
1798 #define PsGetCurrentProcess() IoGetCurrentProcess()
1799 #define PsGetCurrentThread() ((PETHREAD)KeGetCurrentThread())
1805 
1806 #ifdef __x86_64__
1807 void WINAPI RtlCopyMemoryNonTemporal(void*,const void*,SIZE_T);
1808 #else
1809 #define RtlCopyMemoryNonTemporal RtlCopyMemory
1810 #endif
1812 
1918 
1920 {
1921  mutex->Count = FM_LOCK_BIT;
1922  mutex->Owner = NULL;
1923  mutex->Contention = 0;
1925 }
1926 
1927 #endif
unsigned long long ULONG64
Definition: basetsd.h:99
ULONG_PTR KAFFINITY
Definition: basetsd.h:266
unsigned long ULONG_PTR
Definition: basetsd.h:130
unsigned long * PULONG_PTR
Definition: basetsd.h:130
ULONG_PTR SIZE_T
Definition: basetsd.h:264
LONG NTSTATUS
Definition: bcrypt.h:40
#define WINAPI
Definition: bcrypt.h:23
#define IN
Definition: bcrypt.h:27
#define OUT
Definition: bcrypt.h:31
#define DECLSPEC_NORETURN
Definition: corecrt.h:136
void * memcpy(void *dst, const void *src, size_t n)
Definition: string.c:2580
char Reserved2[24]
Definition: hstring.idl:36
struct HSTRING_HEADER union PVOID Reserved1
Definition: hstring.idl:33
void(CDECL *mono_callspec_set_assembly)(MonoAssembly *assembly) DECLSPEC_HIDDEN
struct tagContext Context
enum _TIMER_TYPE TIMER_TYPE
@ SynchronizationEvent
Definition: ntdef.h:30
enum _EVENT_TYPE EVENT_TYPE
enum _WAIT_TYPE WAIT_TYPE
struct _UNICODE_STRING * PUNICODE_STRING
Definition: ntsecpkg.h:367
PSecurityUserData *typedef PSECPKG_EXTENDED_INFORMATION *typedef PVOID
Definition: ntsecpkg.h:378
PSecurityUserData *typedef PSECPKG_EXTENDED_INFORMATION *typedef ULONG
Definition: ntsecpkg.h:377
struct thread * current
Definition: request.c:128
UNICODE_STRING ObjectName
Definition: wdm.h:683
ULONG Flags
Definition: wdm.h:670
ACCESS_MASK PreviouslyGrantedAccess
Definition: wdm.h:672
INITIAL_PRIVILEGE_SET InitialPrivilegeSet
Definition: wdm.h:678
PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: wdm.h:675
ACCESS_MASK OriginalDesiredAccess
Definition: wdm.h:673
BOOLEAN AuditPrivileges
Definition: wdm.h:682
ACCESS_MASK RemainingDesiredAccess
Definition: wdm.h:671
PVOID AuxData
Definition: wdm.h:676
PRIVILEGE_SET PrivilegeSet
Definition: wdm.h:679
BOOLEAN SecurityEvaluated
Definition: wdm.h:666
union _ACCESS_STATE::@1010 Privileges
BOOLEAN GenerateOnClose
Definition: wdm.h:668
SECURITY_SUBJECT_CONTEXT SubjectSecurityContext
Definition: wdm.h:674
BOOLEAN GenerateAudit
Definition: wdm.h:667
LUID OperationID
Definition: wdm.h:665
UNICODE_STRING ObjectTypeName
Definition: wdm.h:684
BOOLEAN PrivilegesAllocated
Definition: wdm.h:669
LIST_ENTRY RegisteredCallbacks
Definition: wdm.h:1361
BOOLEAN AllowMultipleCallbacks
Definition: wdm.h:1362
KSPIN_LOCK Lock
Definition: wdm.h:1360
ULONG Signature
Definition: wdm.h:1359
UCHAR reserved[3]
Definition: wdm.h:1363
CM_PARTIAL_RESOURCE_LIST PartialResourceList
Definition: wdm.h:947
INTERFACE_TYPE InterfaceType
Definition: wdm.h:945
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@1020::@1027 BusNumber
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@1020::@1025 Dma
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@1020::@1026 DevicePrivate
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@1020::@1022 Port
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@1020 u
PHYSICAL_ADDRESS Start
Definition: wdm.h:900
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@1020::@1024 Memory
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@1020::@1028 DeviceSpecificData
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@1020::@1021 Generic
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@1020::@1023 Interrupt
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
Definition: wdm.h:941
CM_FULL_RESOURCE_DESCRIPTOR List[1]
Definition: wdm.h:952
ULONG Count
Definition: wdm.h:951
USHORT Version
Definition: wdm.h:696
ULONG NoDisplayInUI
Definition: wdm.h:714
ULONG DeviceD2
Definition: wdm.h:698
SYSTEM_POWER_STATE SystemWake
Definition: wdm.h:719
ULONG DeviceD1
Definition: wdm.h:697
ULONG D1Latency
Definition: wdm.h:721
ULONG WarmEjectSupported
Definition: wdm.h:713
ULONG UniqueID
Definition: wdm.h:703
ULONG LockSupported
Definition: wdm.h:699
ULONG D3Latency
Definition: wdm.h:723
ULONG WakeFromD1
Definition: wdm.h:708
ULONG EjectSupported
Definition: wdm.h:700
ULONG D2Latency
Definition: wdm.h:722
ULONG NonDynamic
Definition: wdm.h:712
ULONG DockDevice
Definition: wdm.h:702
DEVICE_POWER_STATE DeviceWake
Definition: wdm.h:720
ULONG WakeFromD0
Definition: wdm.h:707
ULONG SilentInstall
Definition: wdm.h:704
ULONG RawDeviceOK
Definition: wdm.h:705
ULONG UINumber
Definition: wdm.h:717
ULONG Reserved
Definition: wdm.h:715
ULONG WakeFromD3
Definition: wdm.h:710
ULONG WakeFromD2
Definition: wdm.h:709
ULONG SurpriseRemovalOK
Definition: wdm.h:706
ULONG HardwareDisabled
Definition: wdm.h:711
ULONG Removable
Definition: wdm.h:701
DEVICE_POWER_STATE DeviceState[PowerSystemMaximum]
Definition: wdm.h:718
PUNICODE_STRING SymbolicLinkName
Definition: wdm.h:731
KEVENT DeviceLock
Definition: wdm.h:424
union _DEVICE_OBJECT::@1000 Queue
struct _DEVICE_OBJECT * NextDevice
Definition: wdm.h:405
PVOID Reserved
Definition: wdm.h:428
ULONG AlignmentRequirement
Definition: wdm.h:419
PVPB Vpb
Definition: wdm.h:411
struct _DEVICE_OBJECT * AttachedDevice
Definition: wdm.h:406
PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: wdm.h:423
struct _IRP * CurrentIrp
Definition: wdm.h:407
KDPC Dpc
Definition: wdm.h:421
CCHAR StackSize
Definition: wdm.h:414
KDEVICE_QUEUE DeviceQueue
Definition: wdm.h:420
LIST_ENTRY ListEntry
Definition: wdm.h:416
struct _DRIVER_OBJECT * DriverObject
Definition: wdm.h:404
PIO_TIMER Timer
Definition: wdm.h:408
USHORT SectorSize
Definition: wdm.h:425
CSHORT Type
Definition: wdm.h:401
ULONG DeviceType
Definition: wdm.h:413
ULONG ActiveThreadCount
Definition: wdm.h:422
struct _DEVOBJ_EXTENSION * DeviceObjectExtension
Definition: wdm.h:427
ULONG Flags
Definition: wdm.h:409
ULONG Characteristics
Definition: wdm.h:410
WAIT_CONTEXT_BLOCK Wcb
Definition: wdm.h:417
USHORT Size
Definition: wdm.h:402
PVOID DeviceExtension
Definition: wdm.h:412
USHORT Spare1
Definition: wdm.h:426
LONG ReferenceCount
Definition: wdm.h:403
ULONG Count
Definition: wdm.h:433
PDEVICE_OBJECT Objects[1]
Definition: wdm.h:434
UCHAR Size
Definition: wdm.h:69
LIST_ENTRY WaitListHead
Definition: wdm.h:72
UCHAR Absolute
Definition: wdm.h:68
UCHAR Type
Definition: wdm.h:67
LONG SignalState
Definition: wdm.h:71
UCHAR Inserted
Definition: wdm.h:70
PDRIVER_ADD_DEVICE AddDevice
Definition: wdm.h:440
struct _DRIVER_OBJECT * DriverObject
Definition: wdm.h:439
UNICODE_STRING ServiceKeyName
Definition: wdm.h:442
ULONG Count
Definition: wdm.h:441
PUNICODE_STRING HardwareDatabase
Definition: wdm.h:455
PVOID DriverStart
Definition: wdm.h:450
PVOID FastIoDispatch
Definition: wdm.h:456
PVOID DriverSection
Definition: wdm.h:452
PDRIVER_STARTIO DriverStartIo
Definition: wdm.h:458
CSHORT Size
Definition: wdm.h:447
ULONG DriverSize
Definition: wdm.h:451
PDRIVER_INITIALIZE DriverInit
Definition: wdm.h:457
PDRIVER_EXTENSION DriverExtension
Definition: wdm.h:453
CSHORT Type
Definition: wdm.h:446
PDRIVER_DISPATCH MajorFunction[0x1b+1]
Definition: wdm.h:460
PDEVICE_OBJECT DeviceObject
Definition: wdm.h:448
PDRIVER_UNLOAD DriverUnload
Definition: wdm.h:459
UNICODE_STRING DriverName
Definition: wdm.h:454
ULONG Flags
Definition: wdm.h:449
UCHAR ReservedLowFlags
Definition: wdm.h:201
void * Address
Definition: wdm.h:217
ULONG NumberOfExclusiveWaiters
Definition: wdm.h:211
OWNER_ENTRY * OwnerTable
Definition: wdm.h:194
KSEMAPHORE * SharedWaiters
Definition: wdm.h:205
UCHAR WaiterPriority
Definition: wdm.h:202
ULONG NumberOfSharedWaiters
Definition: wdm.h:210
LIST_ENTRY SystemResourcesList
Definition: wdm.h:193
ULONG ContentionCount
Definition: wdm.h:209
KEVENT * ExclusiveWaiters
Definition: wdm.h:206
KSPIN_LOCK SpinLock
Definition: wdm.h:220
USHORT Flag
Definition: wdm.h:198
OWNER_ENTRY OwnerEntry
Definition: wdm.h:207
SHORT ActiveCount
Definition: wdm.h:195
ULONG ActiveEntries
Definition: wdm.h:208
ULONG_PTR CreatorBackTraceIndex
Definition: wdm.h:218
KEVENT Event
Definition: wdm.h:251
PKTHREAD Owner
Definition: wdm.h:249
ULONG OldIrql
Definition: wdm.h:252
ULONG Contention
Definition: wdm.h:250
LONG Count
Definition: wdm.h:248
PVOID PrivateCacheMap
Definition: wdm.h:626
LARGE_INTEGER CurrentByteOffset
Definition: wdm.h:639
PVOID FsContext
Definition: wdm.h:623
PDEVICE_OBJECT DeviceObject
Definition: wdm.h:621
PVPB Vpb
Definition: wdm.h:622
ULONG Busy
Definition: wdm.h:641
ULONG Waiters
Definition: wdm.h:640
ULONG Flags
Definition: wdm.h:637
struct _FILE_OBJECT * RelatedFileObject
Definition: wdm.h:628
CSHORT Size
Definition: wdm.h:620
BOOLEAN DeletePending
Definition: wdm.h:630
BOOLEAN SharedWrite
Definition: wdm.h:635
PVOID LastLock
Definition: wdm.h:642
BOOLEAN LockOperation
Definition: wdm.h:629
NTSTATUS FinalStatus
Definition: wdm.h:627
KEVENT Event
Definition: wdm.h:644
KEVENT Lock
Definition: wdm.h:643
BOOLEAN WriteAccess
Definition: wdm.h:632
PVOID FsContext2
Definition: wdm.h:624
PIO_COMPLETION_CONTEXT CompletionContext
Definition: wdm.h:645
BOOLEAN ReadAccess
Definition: wdm.h:631
UNICODE_STRING FileName
Definition: wdm.h:638
CSHORT Type
Definition: wdm.h:619
BOOLEAN SharedRead
Definition: wdm.h:634
BOOLEAN DeleteAccess
Definition: wdm.h:633
BOOLEAN SharedDelete
Definition: wdm.h:636
PSECTION_OBJECT_POINTERS SectionObjectPointer
Definition: wdm.h:625
ULONG PrivilegeCount
Definition: wdm.h:652
LUID_AND_ATTRIBUTES Privilege[3]
Definition: wdm.h:654
PVOID Context
Definition: wdm.h:593
USHORT Version
Definition: wdm.h:592
USHORT Size
Definition: wdm.h:591
PINTERFACE_REFERENCE InterfaceReference
Definition: wdm.h:594
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: wdm.h:595
LIST_ENTRY LockList
Definition: wdm.h:1338
LONGLONG MaxLockedTicks
Definition: wdm.h:1336
PIO_REMOVE_LOCK_TRACKING_BLOCK Blocks
Definition: wdm.h:1343
IO_REMOVE_LOCK_COMMON_BLOCK Common
Definition: wdm.h:1347
IO_REMOVE_LOCK_DBG_BLOCK Dbg
Definition: wdm.h:1348
struct _IO_RESOURCE_DESCRIPTOR::@1011::@1015 Dma
union _IO_RESOURCE_DESCRIPTOR::@1011 u
struct _IO_RESOURCE_DESCRIPTOR::@1011::@1012 Port
struct _IO_RESOURCE_DESCRIPTOR::@1011::@1017 DevicePrivate
struct _IO_RESOURCE_DESCRIPTOR::@1011::@1016 Generic
ULONG MaximumChannel
Definition: wdm.h:787
struct _IO_RESOURCE_DESCRIPTOR::@1011::@1014 Interrupt
struct _IO_RESOURCE_DESCRIPTOR::@1011::@1018 BusNumber
ULONG MinimumChannel
Definition: wdm.h:786
struct _IO_RESOURCE_DESCRIPTOR::@1011::@1013 Memory
PHYSICAL_ADDRESS MaximumAddress
Definition: wdm.h:773
PHYSICAL_ADDRESS MinimumAddress
Definition: wdm.h:772
UCHAR ShareDisposition
Definition: wdm.h:764
struct _IO_RESOURCE_DESCRIPTOR::@1011::@1019 ConfigData
ULONG Count
Definition: wdm.h:815
USHORT Revision
Definition: wdm.h:814
USHORT Version
Definition: wdm.h:813
IO_RESOURCE_DESCRIPTOR Descriptors[1]
Definition: wdm.h:816
INTERFACE_TYPE InterfaceType
Definition: wdm.h:821
IO_RESOURCE_LIST List[1]
Definition: wdm.h:826
PACCESS_STATE AccessState
Definition: wdm.h:689
PSECURITY_QUALITY_OF_SERVICE SecurityQos
Definition: wdm.h:688
ACCESS_MASK DesiredAccess
Definition: wdm.h:690
ULONG FullCreateOptions
Definition: wdm.h:691
union _IO_STACK_LOCATION::@1029::@1034::@1057 DUMMYUNIONNAME
DEVICE_TEXT_TYPE DeviceTextType
Definition: wdm.h:1066
struct _IO_STACK_LOCATION::@1029::@1034 SetFile
union _IO_STACK_LOCATION::@1029 Parameters
PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: wdm.h:1024
struct _IO_STACK_LOCATION::@1029::@1046 ReadWriteConfig
USHORT Version
Definition: wdm.h:1043
UCHAR MajorFunction
Definition: wdm.h:969
ULONG IoControlCode
Definition: wdm.h:1015
struct _IO_STACK_LOCATION::@1029::@1034::@1057::@1058 DUMMYSTRUCTNAME
ULONG OutputBufferLength
Definition: wdm.h:1013
PINTERFACE Interface
Definition: wdm.h:1044
struct _IO_STACK_LOCATION::@1029::@1050 UsageNotification
FS_INFORMATION_CLASS FsInformationClass
Definition: wdm.h:1010
PVOID DataPath
Definition: wdm.h:1092
struct _IO_STACK_LOCATION::@1029::@1048 QueryId
struct _IO_STACK_LOCATION::@1029::@1032 Write
struct _IO_STACK_LOCATION::@1029::@1037 QuerySecurity
PVOID Context
Definition: wdm.h:1106
ULONG WhichSpace
Definition: wdm.h:1054
struct _IO_STACK_LOCATION::@1029::@1049 QueryDeviceText
struct _IO_STACK_LOCATION::@1029::@1055 WMI
struct _IO_STACK_LOCATION::@1029::@1053 Power
PCM_RESOURCE_LIST AllocatedResourcesTranslated
Definition: wdm.h:1088
struct _IO_STACK_LOCATION::@1029::@1041 Scsi
struct _IO_STACK_LOCATION::@1029::@1042 QueryDeviceRelations
struct _IO_STACK_LOCATION::@1029::@1054 StartDevice
BOOLEAN Lock
Definition: wdm.h:1060
POWER_STATE_TYPE Type
Definition: wdm.h:1082
struct _IO_STACK_LOCATION::@1029::@1030 Create
PFILE_OBJECT FileObject
Definition: wdm.h:998
PIO_SECURITY_CONTEXT SecurityContext
Definition: wdm.h:975
BOOLEAN ReplaceIfExists
Definition: wdm.h:1001
BUS_QUERY_ID_TYPE IdType
Definition: wdm.h:1063
PVOID Argument2
Definition: wdm.h:1098
ULONG Options
Definition: wdm.h:976
PVOID Buffer
Definition: wdm.h:1055
PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList
Definition: wdm.h:1051
PDEVICE_OBJECT DeviceObject
Definition: wdm.h:1028
PCM_RESOURCE_LIST AllocatedResources
Definition: wdm.h:1087
LARGE_INTEGER ByteOffset
Definition: wdm.h:984
BOOLEAN Reserved[3]
Definition: wdm.h:1071
FILE_INFORMATION_CLASS FileInformationClass
Definition: wdm.h:993
struct _IO_STACK_LOCATION::@1029::@1038 SetSecurity
SECURITY_INFORMATION SecurityInformation
Definition: wdm.h:1019
USHORT Size
Definition: wdm.h:1042
struct _IO_STACK_LOCATION::@1029::@1036 DeviceIoControl
ULONG EaLength
Definition: wdm.h:979
BOOLEAN InPath
Definition: wdm.h:1070
POWER_ACTION ShutdownType
Definition: wdm.h:1084
POWER_STATE State
Definition: wdm.h:1083
struct _IO_STACK_LOCATION::@1029::@1047 SetLock
SYSTEM_POWER_STATE PowerState
Definition: wdm.h:1075
struct _IO_STACK_LOCATION::@1029::@1045 FilterResourceRequirements
ULONG InputBufferLength
Definition: wdm.h:1014
const GUID * InterfaceType
Definition: wdm.h:1041
UCHAR MinorFunction
Definition: wdm.h:970
ULONG SystemContext
Definition: wdm.h:1081
USHORT ShareAccess
Definition: wdm.h:978
HANDLE DeleteHandle
Definition: wdm.h:1005
BOOLEAN AdvanceOnly
Definition: wdm.h:1002
struct _IO_STACK_LOCATION::@1029::@1043 QueryInterface
struct _IO_STACK_LOCATION::@1029::@1039 MountVolume
ULONG ClusterCount
Definition: wdm.h:1004
struct _SCSI_REQUEST_BLOCK * Srb
Definition: wdm.h:1035
PIO_COMPLETION_ROUTINE CompletionRoutine
Definition: wdm.h:1105
USHORT FileAttributes
Definition: wdm.h:977
PDEVICE_CAPABILITIES Capabilities
Definition: wdm.h:1048
ULONG Offset
Definition: wdm.h:1056
struct _IO_STACK_LOCATION::@1029::@1040 VerifyVolume
DEVICE_USAGE_NOTIFICATION_TYPE Type
Definition: wdm.h:1072
PVOID InterfaceSpecificData
Definition: wdm.h:1045
ULONG Length
Definition: wdm.h:982
PVOID Argument4
Definition: wdm.h:1100
struct _IO_STACK_LOCATION::@1029::@1033 QueryFile
PVOID Argument1
Definition: wdm.h:1097
struct _IO_STACK_LOCATION::@1029::@1056 Others
UCHAR Control
Definition: wdm.h:972
struct _IO_STACK_LOCATION::@1029::@1035 QueryVolume
PVOID Argument3
Definition: wdm.h:1099
struct _IO_STACK_LOCATION::@1029::@1031 Read
struct _IO_STACK_LOCATION::@1029::@1051 WaitWake
ULONG BufferSize
Definition: wdm.h:1093
PPOWER_SEQUENCE PowerSequence
Definition: wdm.h:1078
DEVICE_RELATION_TYPE Type
Definition: wdm.h:1038
struct _IO_STACK_LOCATION::@1029::@1044 DeviceCapabilities
PVOID Type3InputBuffer
Definition: wdm.h:1016
ULONG_PTR ProviderId
Definition: wdm.h:1091
UCHAR Flags
Definition: wdm.h:971
Definition: wdm.h:511
struct _IRP * MasterIrp
Definition: wdm.h:517
LARGE_INTEGER AllocationSize
Definition: wdm.h:538
LIST_ENTRY ListEntry
Definition: wdm.h:553
PVOID SystemBuffer
Definition: wdm.h:519
CHAR StackCount
Definition: wdm.h:525
PIO_APC_ROUTINE UserApcRoutine
Definition: wdm.h:535
union _IRP::@1001 AssociatedIrp
KIRQL CancelIrql
Definition: wdm.h:528
union _IRP::@1003::@1005::@1006 DUMMYUNIONNAME1
PKEVENT UserEvent
Definition: wdm.h:532
PVOID UserBuffer
Definition: wdm.h:541
CSHORT Type
Definition: wdm.h:512
LONG IrpCount
Definition: wdm.h:518
PVOID DriverContext[4]
Definition: wdm.h:547
union _IRP::@1003 Tail
BOOLEAN Cancel
Definition: wdm.h:527
PVOID UserApcContext
Definition: wdm.h:536
struct _IRP::@1003::@1005::@1006::@1008 DUMMYSTRUCTNAME
KAPC Apc
Definition: wdm.h:561
PDRIVER_CANCEL CancelRoutine
Definition: wdm.h:540
CHAR CurrentLocation
Definition: wdm.h:526
IO_STATUS_BLOCK IoStatus
Definition: wdm.h:522
struct _MDL * MdlAddress
Definition: wdm.h:514
KPROCESSOR_MODE RequestorMode
Definition: wdm.h:523
union _IRP::@1002 Overlay
USHORT Size
Definition: wdm.h:513
ULONG PacketType
Definition: wdm.h:556
PETHREAD Thread
Definition: wdm.h:550
PCHAR AuxiliaryBuffer
Definition: wdm.h:551
PIO_STATUS_BLOCK UserIosb
Definition: wdm.h:531
UCHAR AllocationFlags
Definition: wdm.h:530
BOOLEAN PendingReturned
Definition: wdm.h:524
ULONG Flags
Definition: wdm.h:515
PVOID CompletionKey
Definition: wdm.h:562
struct _IO_STACK_LOCATION * CurrentStackLocation
Definition: wdm.h:555
LIST_ENTRY ThreadListEntry
Definition: wdm.h:521
CCHAR ApcEnvironment
Definition: wdm.h:529
struct _IRP::@1002::@1004 AsynchronousParameters
union _IRP::@1003::@1005::@1007::@1009 DUMMYUNIONNAME2
struct _FILE_OBJECT * OriginalFileObject
Definition: wdm.h:559
KDEVICE_QUEUE_ENTRY DeviceQueueEntry
Definition: wdm.h:545
UCHAR KernelApcPending
Definition: wdm.h:240
UCHAR UserApcPending
Definition: wdm.h:241
UCHAR KernelApcInProgress
Definition: wdm.h:239
LIST_ENTRY ApcListHead[2]
Definition: wdm.h:237
PKPROCESS Process
Definition: wdm.h:238
Definition: wdm.h:494
PVOID NormalContext
Definition: wdm.h:503
KPROCESSOR_MODE ApcMode
Definition: wdm.h:507
struct _KTHREAD * Thread
Definition: wdm.h:498
ULONG Spare0
Definition: wdm.h:497
BOOLEAN Inserted
Definition: wdm.h:508
PVOID SystemArgument1
Definition: wdm.h:504
PKNORMAL_ROUTINE NormalRoutine
Definition: wdm.h:502
CCHAR ApcStateIndex
Definition: wdm.h:506
LIST_ENTRY ApcListEntry
Definition: wdm.h:499
PVOID SystemArgument2
Definition: wdm.h:505
PKKERNEL_ROUTINE KernelRoutine
Definition: wdm.h:500
CSHORT Size
Definition: wdm.h:496
PKRUNDOWN_ROUTINE RundownRoutine
Definition: wdm.h:501
CSHORT Type
Definition: wdm.h:495
Definition: wdm.h:103
LIST_ENTRY DeviceListEntry
Definition: wdm.h:104
ULONG SortKey
Definition: wdm.h:105
BOOLEAN Inserted
Definition: wdm.h:106
BOOLEAN Busy
Definition: wdm.h:115
LIST_ENTRY DeviceListHead
Definition: wdm.h:113
KSPIN_LOCK Lock
Definition: wdm.h:114
CSHORT Type
Definition: wdm.h:111
CSHORT Size
Definition: wdm.h:112
Definition: wdm.h:84
LIST_ENTRY DpcListEntry
Definition: wdm.h:88
PULONG_PTR Lock
Definition: wdm.h:93
CSHORT Type
Definition: wdm.h:85
PVOID SystemArgument2
Definition: wdm.h:92
UCHAR Importance
Definition: wdm.h:87
PVOID SystemArgument1
Definition: wdm.h:91
PKDEFERRED_ROUTINE DeferredRoutine
Definition: wdm.h:89
PVOID DeferredContext
Definition: wdm.h:90
UCHAR Number
Definition: wdm.h:86
Definition: wdm.h:75
DISPATCHER_HEADER Header
Definition: wdm.h:76
KSPIN_LOCK_QUEUE LockQueue
Definition: wdm.h:1372
Definition: wdm.h:118
DISPATCHER_HEADER Header
Definition: wdm.h:119
LIST_ENTRY MutantListEntry
Definition: wdm.h:120
BOOLEAN Abandoned
Definition: wdm.h:122
struct _KTHREAD *RESTRICTED_POINTER OwnerThread
Definition: wdm.h:121
UCHAR ApcDisable
Definition: wdm.h:123
LONG Limit
Definition: wdm.h:81
DISPATCHER_HEADER Header
Definition: wdm.h:80
struct _KSPIN_LOCK_QUEUE *volatile Next
Definition: wdm.h:1367
volatile PKSPIN_LOCK Lock
Definition: wdm.h:1368
LONG High1Time
Definition: wdm.h:1173
LONG High2Time
Definition: wdm.h:1174
ULONG LowPart
Definition: wdm.h:1172
Definition: wdm.h:1163
LONG Period
Definition: wdm.h:1168
struct _KDPC * Dpc
Definition: wdm.h:1167
ULARGE_INTEGER DueTime
Definition: wdm.h:1165
DISPATCHER_HEADER Header
Definition: wdm.h:1164
LIST_ENTRY TimerListEntry
Definition: wdm.h:1166
ULONG LangGenerationCount
Definition: wdm.h:1289
ULONG CookiePad[1]
Definition: wdm.h:1275
UCHAR QpcInterruptTimeIncrementShift
Definition: wdm.h:1283
XSTATE_CONFIGURATION XState
Definition: wdm.h:1298
ULONG DbgStateSeparationEnabled
Definition: wdm.h:1252
ULONG GlobalValidationRunLevel
Definition: wdm.h:1213
BOOLEAN ProductTypeIsValid
Definition: wdm.h:1217
ULONG AllFlags
Definition: wdm.h:1261
ULONG AitSamplingValue
Definition: wdm.h:1210
ULONG DbgInstallerDetectEnabled
Definition: wdm.h:1245
volatile KSYSTEM_TIME SystemTime
Definition: wdm.h:1201
volatile UCHAR ActiveGroupCount
Definition: wdm.h:1294
LARGE_INTEGER TimeZoneBiasEffectiveStart
Definition: wdm.h:1296
ULONGLONG QpcSystemTimeIncrement
Definition: wdm.h:1280
ULONG TickCountLowDeprecated
Definition: wdm.h:1198
NT_PRODUCT_TYPE NtProductType
Definition: wdm.h:1216
USHORT QpcData
Definition: wdm.h:1295
LONGLONG QpcFrequency
Definition: wdm.h:1258
ULONGLONG SystemCallPad[2]
Definition: wdm.h:1269
ULONG DbgConsoleBrokerEnabled
Definition: wdm.h:1248
ULONG ActiveProcessorCount
Definition: wdm.h:1293
volatile ULONG TimeZoneBiasStamp
Definition: wdm.h:1214
ULONGLONG RNGSeedVersion
Definition: wdm.h:1212
UCHAR VirtualizationFlags
Definition: wdm.h:1238
ULONG SystemCall
Definition: wdm.h:1259
ULONGLONG TestRetInstruction
Definition: wdm.h:1257
ULONGLONG QpcInterruptTimeIncrement
Definition: wdm.h:1281
volatile ULONG ActiveConsoleId
Definition: wdm.h:1232
volatile ULONGLONG InterruptTimeBias
Definition: wdm.h:1291
union _KUSER_SHARED_DATA::@1060 UserCetAvailableEnvironments
ULONG VbsBasicEnclave
Definition: wdm.h:1265
BOOLEAN KdDebuggerEnabled
Definition: wdm.h:1229
ULONG NtMajorVersion
Definition: wdm.h:1219
ULONG AppCompatFlag
Definition: wdm.h:1211
ULONGLONG BaselineSystemTimeQpc
Definition: wdm.h:1278
union _KUSER_SHARED_DATA::@1059 DUMMYUNIONNAME2
ULONG TickCountMultiplier
Definition: wdm.h:1199
LONGLONG ConsoleSessionForegroundProcessId
Definition: wdm.h:1276
USHORT NativeProcessorArchitecture
Definition: wdm.h:1218
ULONG Sgx2Enclave
Definition: wdm.h:1264
struct _KUSER_SHARED_DATA::@1059::@1062 DUMMYSTRUCTNAME2
ULONG SharedDataFlags
Definition: wdm.h:1240
UCHAR NXSupportPolicy
Definition: wdm.h:1230
volatile ULONGLONG QpcBias
Definition: wdm.h:1292
ULONG LastSystemRITEventTickCount
Definition: wdm.h:1235
ULONG NumberOfPhysicalPages
Definition: wdm.h:1236
ULONG DbgMultiUsersInSessionSku
Definition: wdm.h:1251
ULONG BootId
Definition: wdm.h:1226
volatile ULONG64 TickCountQuad
Definition: wdm.h:1272
volatile KSYSTEM_TIME TickCount
Definition: wdm.h:1271
ULONG LargePageMinimum
Definition: wdm.h:1209
volatile KSYSTEM_TIME InterruptTime
Definition: wdm.h:1200
ULONG SpareBits
Definition: wdm.h:1253
ULONG NtBuildNumber
Definition: wdm.h:1215
ULONG CryptoExponent
Definition: wdm.h:1207
ULONG DbgSecureBootEnabled
Definition: wdm.h:1249
ULONG TimeZoneId
Definition: wdm.h:1208
BOOLEAN SafeBootMode
Definition: wdm.h:1237
ULONG DbgMultiSessionSku
Definition: wdm.h:1250
volatile ULONG TimeSlip
Definition: wdm.h:1224
LARGE_INTEGER SystemExpirationDate
Definition: wdm.h:1227
ULONG NtMinorVersion
Definition: wdm.h:1220
ULONG Cookie
Definition: wdm.h:1274
WCHAR NtSystemRoot[260]
Definition: wdm.h:1205
ULONG ActiveProcessorAffinity
Definition: wdm.h:1290
USHORT ImageNumberHigh
Definition: wdm.h:1204
UCHAR QpcSystemTimeIncrementShift
Definition: wdm.h:1282
ULONG Reserved1
Definition: wdm.h:1222
ULONG MaxStackTraceDepth
Definition: wdm.h:1206
ULONG SuiteMask
Definition: wdm.h:1228
ULONG DbgErrorPortPresent
Definition: wdm.h:1242
union _KUSER_SHARED_DATA::@1061 DUMMYUNIONNAME
ULONG Win32Process
Definition: wdm.h:1263
ULONG DbgVirtEnabled
Definition: wdm.h:1244
ULONG ImageFileExecutionOptions
Definition: wdm.h:1288
USHORT CyclesPerYield
Definition: wdm.h:1231
USHORT UnparkedProcessorCount
Definition: wdm.h:1284
ULONG ComPlusPackage
Definition: wdm.h:1234
ULONG EnclaveFeatureMask[4]
Definition: wdm.h:1285
ULONG Reserved3
Definition: wdm.h:1223
ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture
Definition: wdm.h:1225
struct _KUSER_SHARED_DATA::@1060::@1063 DUMMYSTRUCTNAME
ULONG DbgElevationEnabed
Definition: wdm.h:1243
ULONGLONG TimeUpdateLock
Definition: wdm.h:1277
volatile ULONG DismountCount
Definition: wdm.h:1233
volatile KSYSTEM_TIME TimeZoneBias
Definition: wdm.h:1202
ULONG DbgLkgEnabled
Definition: wdm.h:1246
LARGE_INTEGER TimeZoneBiasEffectiveEnd
Definition: wdm.h:1297
ULONGLONG BaselineInterruptTimeQpc
Definition: wdm.h:1279
ULONG DataFlagsPad[1]
Definition: wdm.h:1256
ULONG DbgDynProcessorEnabled
Definition: wdm.h:1247
USHORT UserModeGlobalLogger[16]
Definition: wdm.h:1287
ULONG TelemetryCoverageRound
Definition: wdm.h:1286
USHORT ImageNumberLow
Definition: wdm.h:1203
BOOLEAN ProcessorFeatures[64]
Definition: wdm.h:1221
struct _KWAIT_BLOCK *RESTRICTED_POINTER NextWaitBlock
Definition: wdm.h:166
PVOID Object
Definition: wdm.h:165
LIST_ENTRY WaitListEntry
Definition: wdm.h:163
USHORT WaitType
Definition: wdm.h:168
struct _KTHREAD *RESTRICTED_POINTER Thread
Definition: wdm.h:164
USHORT WaitKey
Definition: wdm.h:167
Definition: winnt.h:836
GENERAL_LOOKASIDE_POOL L
Definition: wdm.h:1444
Definition: wdm.h:1139
ULONG ByteCount
Definition: wdm.h:1146
struct _EPROCESS * Process
Definition: wdm.h:1143
ULONG ByteOffset
Definition: wdm.h:1147
CSHORT Size
Definition: wdm.h:1141
PVOID StartVa
Definition: wdm.h:1145
PVOID MappedSystemVa
Definition: wdm.h:1144
struct _MDL * Next
Definition: wdm.h:1140
CSHORT MdlFlags
Definition: wdm.h:1142
GENERAL_LOOKASIDE L
Definition: wdm.h:1449
OB_OPERATION_REGISTRATION * OperationRegistration
Definition: wdm.h:1548
UNICODE_STRING Altitude
Definition: wdm.h:1546
USHORT OperationRegistrationCount
Definition: wdm.h:1545
POB_POST_OPERATION_CALLBACK PostOperation
Definition: wdm.h:1540
POB_PRE_OPERATION_CALLBACK PreOperation
Definition: wdm.h:1539
POBJECT_TYPE * ObjectType
Definition: wdm.h:1537
OB_OPERATION Operations
Definition: wdm.h:1538
Definition: wdm.h:1500
ACCESS_MASK GrantedAccess
Definition: wdm.h:1501
Definition: wdm.h:1504
ACCESS_MASK GrantedAccess
Definition: wdm.h:1505
Definition: wdm.h:1513
POBJECT_TYPE ObjectType
Definition: wdm.h:1523
PVOID Object
Definition: wdm.h:1522
OB_OPERATION Operation
Definition: wdm.h:1514
struct _OB_POST_OPERATION_INFORMATION::@1078::@1079 DUMMYSTRUCTNAME
union _OB_POST_OPERATION_INFORMATION::@1078 DUMMYUNIONNAME
ULONG Reserved
Definition: wdm.h:1519
NTSTATUS ReturnStatus
Definition: wdm.h:1525
ULONG KernelHandle
Definition: wdm.h:1518
PVOID CallContext
Definition: wdm.h:1524
POB_POST_OPERATION_PARAMETERS Parameters
Definition: wdm.h:1526
ULONG Flags
Definition: wdm.h:1516
ACCESS_MASK OriginalDesiredAccess
Definition: wdm.h:1470
union _OB_PRE_OPERATION_INFORMATION::@1076 DUMMYUNIONNAME
OB_OPERATION Operation
Definition: wdm.h:1486
struct _OB_PRE_OPERATION_INFORMATION::@1076::@1077 DUMMYSTRUCTNAME
POBJECT_TYPE ObjectType
Definition: wdm.h:1495
POB_PRE_OPERATION_PARAMETERS Parameters
Definition: wdm.h:1497
Definition: wdm.h:172
ULONG OwnerCount
Definition: wdm.h:181
ULONG TableSize
Definition: wdm.h:183
ERESOURCE_THREAD OwnerThread
Definition: wdm.h:173
ULONG IoPriorityBoosted
Definition: wdm.h:178
ULONG IoQoSPriorityBoosted
Definition: wdm.h:180
ULONG OwnerReferenced
Definition: wdm.h:179
GENERAL_LOOKASIDE L
Definition: wdm.h:1457
ULONG SequenceD2
Definition: wdm.h:880
ULONG SequenceD1
Definition: wdm.h:879
ULONG SequenceD3
Definition: wdm.h:881
PVOID ImageSectionObject
Definition: wdm.h:601
PVOID DataSectionObject
Definition: wdm.h:599
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
Definition: wdm.h:659
PACCESS_TOKEN ClientToken
Definition: wdm.h:658
PACCESS_TOKEN PrimaryToken
Definition: wdm.h:660
Definition: wdm.h:257
CSHORT Type
Definition: wdm.h:258
USHORT VolumeLabelLength
Definition: wdm.h:261
WCHAR VolumeLabel[(32 *sizeof(WCHAR))/sizeof(WCHAR)]
Definition: wdm.h:266
CSHORT Size
Definition: wdm.h:259
struct _DEVICE_OBJECT * DeviceObject
Definition: wdm.h:262
USHORT Flags
Definition: wdm.h:260
ULONG ReferenceCount
Definition: wdm.h:265
ULONG SerialNumber
Definition: wdm.h:264
struct _DEVICE_OBJECT * RealDevice
Definition: wdm.h:263
PKDPC BufferChainingDpc
Definition: wdm.h:292
ULONG NumberOfMapRegisters
Definition: wdm.h:289
KDEVICE_QUEUE_ENTRY WaitQueueEntry
Definition: wdm.h:286
PVOID CurrentIrp
Definition: wdm.h:291
PVOID DeviceContext
Definition: wdm.h:288
struct _DRIVER_CONTROL * DeviceRoutine
Definition: wdm.h:287
PVOID DeviceObject
Definition: wdm.h:290
Definition: msvcp90.h:319
#define NULL
Definition: ungif.h:66
#define FALSE
Definition: ungif.h:62
Definition: wdm.h:1508
OB_POST_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation
Definition: wdm.h:1510
OB_POST_CREATE_HANDLE_INFORMATION CreateHandleInformation
Definition: wdm.h:1509
OB_PRE_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation
Definition: wdm.h:1482
OB_PRE_CREATE_HANDLE_INFORMATION CreateHandleInformation
Definition: wdm.h:1481
DEVICE_POWER_STATE DeviceState
Definition: wdm.h:891
SYSTEM_POWER_STATE SystemState
Definition: wdm.h:890
BATCH_CONTEXT * context
Definition: wcmdmain.c:38
struct _KSEMAPHORE * PKSEMAPHORE
#define SL_PENDING_RETURNED
Definition: wdm.h:960
NTSTATUS WINAPI ZwRestoreKey(HANDLE, HANDLE, ULONG)
struct _KTHREAD * PRKTHREAD
Definition: wdm.h:226
HANDLE WINAPI PsGetCurrentProcessId(void)
Definition: ntoskrnl.c:2932
struct _KTHREAD * PKTHREAD
Definition: wdm.h:226
NTSTATUS WINAPI ZwOpenSection(HANDLE *, ACCESS_MASK, const OBJECT_ATTRIBUTES *)
PVOID WINAPI MmMapLockedPagesSpecifyCache(PMDLX, KPROCESSOR_MODE, MEMORY_CACHING_TYPE, PVOID, ULONG, MM_PAGE_PRIORITY)
Definition: ntoskrnl.c:2694
NTSTATUS WINAPI ZwCreateTimer(HANDLE *, ACCESS_MASK, const OBJECT_ATTRIBUTES *, TIMER_TYPE)
NTSTATUS WINAPI IoDeleteSymbolicLink(UNICODE_STRING *)
Definition: ntoskrnl.c:1636
VOID(WINAPI * PKKERNEL_ROUTINE)(IN struct _KAPC *Apc, IN OUT PKNORMAL_ROUTINE *NormalRoutine, IN OUT PVOID *NormalContext, IN OUT PVOID *SystemArgument1, IN OUT PVOID *SystemArgument2)
Definition: wdm.h:484
NTSTATUS WINAPI ZwReplaceKey(POBJECT_ATTRIBUTES, HANDLE, POBJECT_ATTRIBUTES)
void WINAPI IoFreeWorkItem(PIO_WORKITEM)
Definition: ntoskrnl.c:1157
void WINAPI PoStartNextPowerIrp(IRP *)
Definition: pnp.c:917
#define PROCESSOR_FEATURE_MAX
Definition: wdm.h:1183
NTSTATUS WINAPI KeWaitForMultipleObjects(ULONG, void *[], WAIT_TYPE, KWAIT_REASON, KPROCESSOR_MODE, BOOLEAN, LARGE_INTEGER *, KWAIT_BLOCK *)
Definition: sync.c:57
NTSTATUS WINAPI ObCloseHandle(IN HANDLE handle)
struct _KDPC * PKDPC
static void MmInitializeMdl(MDL *mdl, void *va, SIZE_T length)
Definition: wdm.h:1153
struct _ACCESS_STATE ACCESS_STATE
struct _IO_RESOURCE_DESCRIPTOR * PIO_RESOURCE_DESCRIPTOR
void WINAPI IoReleaseRemoveLockEx(IO_REMOVE_LOCK *, void *, ULONG)
Definition: sync.c:1348
void(WINAPI * POB_POST_OPERATION_CALLBACK)(void *context, POB_POST_OPERATION_INFORMATION information)
Definition: wdm.h:1534
NTSTATUS WINAPI ZwDuplicateToken(HANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL, TOKEN_TYPE, PHANDLE)
void WINAPI ExDeleteNPagedLookasideList(PNPAGED_LOOKASIDE_LIST)
Definition: ntoskrnl.c:2180
NTSTATUS WINAPI ZwQueryKey(HANDLE, KEY_INFORMATION_CLASS, void *, DWORD, DWORD *)
union _OB_POST_OPERATION_PARAMETERS * POB_POST_OPERATION_PARAMETERS
_DEVICE_RELATION_TYPE
Definition: wdm.h:609
@ SingleBusRelations
Definition: wdm.h:615
@ EjectionRelations
Definition: wdm.h:611
@ RemovalRelations
Definition: wdm.h:613
@ BusRelations
Definition: wdm.h:610
@ TargetDeviceRelation
Definition: wdm.h:614
@ PowerRelations
Definition: wdm.h:612
_KDPC_IMPORTANCE
Definition: wdm.h:96
@ HighImportance
Definition: wdm.h:99
@ MediumHighImportance
Definition: wdm.h:100
@ LowImportance
Definition: wdm.h:97
@ MediumImportance
Definition: wdm.h:98
struct _KWAIT_BLOCK PRKWAIT_BLOCK
NTSTATUS WINAPI ZwSetVolumeInformationFile(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS)
struct _SECURITY_SUBJECT_CONTEXT * PSECURITY_SUBJECT_CONTEXT
struct _KDEVICE_QUEUE_ENTRY * PKDEVICE_QUEUE_ENTRY
#define KernelMode
Definition: wdm.h:1620
VOID(WINAPI * PKRUNDOWN_ROUTINE)(IN struct _KAPC *Apc)
Definition: wdm.h:491
void WINAPI KeSignalCallDpcDone(void *)
Definition: ntoskrnl.c:4214
void WINAPI IoInitializeIrp(IRP *, USHORT, CCHAR)
Definition: ntoskrnl.c:970
NTSTATUS WINAPI ObReferenceObjectByHandle(HANDLE, ACCESS_MASK, POBJECT_TYPE, KPROCESSOR_MODE, PVOID *, POBJECT_HANDLE_INFORMATION)
struct _INITIAL_PRIVILEGE_SET INITIAL_PRIVILEGE_SET
NTSTATUS WINAPI IoAllocateDriverObjectExtension(PDRIVER_OBJECT, PVOID, ULONG, PVOID *)
Definition: ntoskrnl.c:945
BOOLEAN WINAPI PsGetVersion(ULONG *, ULONG *, ULONG *, UNICODE_STRING *)
Definition: ntoskrnl.c:2959
struct _KUSER_SHARED_DATA * PKSHARED_USER_DATA
OB_PREOP_CALLBACK_STATUS(WINAPI * POB_PRE_OPERATION_CALLBACK)(void *context, POB_PRE_OPERATION_INFORMATION information)
Definition: wdm.h:1533
struct _FAST_MUTEX FAST_MUTEX
enum _MM_SYSTEM_SIZE MM_SYSTEMSIZE
NTSTATUS WINAPI ZwCreateEvent(PHANDLE, ACCESS_MASK, const OBJECT_ATTRIBUTES *, BOOLEAN, BOOLEAN)
PSLIST_ENTRY WINAPI ExInterlockedPushEntrySList(PSLIST_HEADER, PSLIST_ENTRY, PKSPIN_LOCK)
struct _OB_POST_CREATE_HANDLE_INFORMATION OB_POST_CREATE_HANDLE_INFORMATION
struct _OB_PRE_OPERATION_INFORMATION OB_PRE_OPERATION_INFORMATION
struct _IO_STACK_LOCATION * PIO_STACK_LOCATION
NTSTATUS WINAPI IoCallDriver(DEVICE_OBJECT *, IRP *)
Definition: ntoskrnl.c:1692
struct _DEVICE_OBJECT DEVICE_OBJECT
struct _KMUTANT KMUTANT
NTSTATUS WINAPI ZwWriteFile(HANDLE, HANDLE, PIO_APC_ROUTINE, PVOID, PIO_STATUS_BLOCK, const void *, ULONG, PLARGE_INTEGER, PULONG)
PVOID WINAPI MmAllocateContiguousMemory(SIZE_T, PHYSICAL_ADDRESS)
Definition: ntoskrnl.c:2595
NTSTATUS WINAPI ZwClearEvent(HANDLE)
void WINAPI KeInitializeDpc(KDPC *, PKDEFERRED_ROUTINE, void *)
Definition: ntoskrnl.c:3169
NTSTATUS WINAPI ZwSetInformationKey(HANDLE, const int, PVOID, ULONG)
union _OB_PRE_OPERATION_PARAMETERS OB_PRE_OPERATION_PARAMETERS
PVOID WINAPI ExAllocatePoolWithQuota(POOL_TYPE, SIZE_T)
Definition: ntoskrnl.c:2048
void(NTAPI * PFREE_FUNCTION_EX)(void *, PLOOKASIDE_LIST_EX)
Definition: wdm.h:1379
static void * MmGetSystemAddressForMdlSafe(MDL *mdl, ULONG priority)
Definition: wdm.h:1776
void WINAPI KeRevertToUserAffinityThread(void)
Definition: ntoskrnl.c:2525
struct _GENERAL_LOOKASIDE_POOL GENERAL_LOOKASIDE_POOL
enum _INTERFACE_TYPE * PINTERFACE_TYPE
struct _LOOKASIDE_LIST_EX * PLOOKASIDE_LIST_EX
Definition: wdm.h:233
ULONG WINAPI ExIsResourceAcquiredSharedLite(ERESOURCE *)
Definition: sync.c:1294
VOID(WINAPI * PDRIVER_CANCEL)(IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp)
Definition: wdm.h:475
NTSTATUS WINAPI ZwEnumerateKey(HANDLE, ULONG, KEY_INFORMATION_CLASS, void *, DWORD, DWORD *)
KPRIORITY WINAPI KeSetPriorityThread(PKTHREAD, KPRIORITY)
Definition: ntoskrnl.c:2484
NTSTATUS WINAPI ZwMakeTemporaryObject(HANDLE)
LONG WINAPI KeResetEvent(PRKEVENT)
Definition: sync.c:279
NTSTATUS WINAPI ZwTerminateProcess(HANDLE, LONG)
struct _IO_COMPLETION_CONTEXT IO_COMPLETION_CONTEXT
BOOLEAN WINAPI KeSetTimerEx(KTIMER *, LARGE_INTEGER, LONG, KDPC *)
Definition: sync.c:460
struct _KDPC PRKDPC
struct _WAIT_CONTEXT_BLOCK * PWAIT_CONTEXT_BLOCK
typedef NTSTATUS(NTAPI EX_CALLBACK_FUNCTION)(void *CallbackContext
NTSTATUS WINAPI ZwOpenFile(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PIO_STATUS_BLOCK, ULONG, ULONG)
NTSTATUS WINAPI ZwSetInformationProcess(HANDLE, PROCESS_INFORMATION_CLASS, PVOID, ULONG)
NTSTATUS WINAPI ZwLoadDriver(const UNICODE_STRING *)
Definition: ntoskrnl.c:3733
NTSTATUS WINAPI ZwSetSecurityObject(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR)
NTSTATUS WINAPI IoGetDeviceObjectPointer(UNICODE_STRING *, ACCESS_MASK, PFILE_OBJECT *, PDEVICE_OBJECT *)
Definition: ntoskrnl.c:1673
struct _KSYSTEM_TIME KSYSTEM_TIME
static void IoCopyCurrentIrpStackLocationToNext(IRP *irp)
Definition: wdm.h:1612
void WINAPI KeLeaveCriticalRegion(void)
Definition: ntoskrnl.c:3332
NTSTATUS WINAPI ZwConnectPort(PHANDLE, PUNICODE_STRING, PSECURITY_QUALITY_OF_SERVICE, PLPC_SECTION_WRITE, PLPC_SECTION_READ, PULONG, PVOID, PULONG)
PVOID WINAPI MmAllocateNonCachedMemory(SIZE_T)
Definition: ntoskrnl.c:2586
PIRP WINAPI IoBuildDeviceIoControlRequest(ULONG, DEVICE_OBJECT *, PVOID, ULONG, PVOID, ULONG, BOOLEAN, PKEVENT, IO_STATUS_BLOCK *)
NTSTATUS WINAPI ZwAdjustPrivilegesToken(HANDLE, BOOLEAN, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD)
struct _KLOCK_QUEUE_HANDLE * PKLOCK_QUEUE_HANDLE
struct _KMUTANT PRKMUTANT
#define IoGetNextIrpStackLocation(_Irp)
Definition: wdm.h:1587
NTSTATUS WINAPI ZwQuerySymbolicLinkObject(HANDLE, PUNICODE_STRING, PULONG)
BOOLEAN WINAPI KeCancelTimer(KTIMER *)
Definition: sync.c:490
enum _BUS_QUERY_ID_TYPE * PBUS_QUERY_ID_TYPE
NTSTATUS WINAPI ZwUnloadDriver(const UNICODE_STRING *)
Definition: ntoskrnl.c:3789
void WINAPI ExInitializePagedLookasideList(PPAGED_LOOKASIDE_LIST, PALLOCATE_FUNCTION, PFREE_FUNCTION, ULONG, SIZE_T, ULONG, USHORT)
Definition: ntoskrnl.c:2158
NTSTATUS WINAPI ZwOpenSymbolicLinkObject(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES)
void(NTAPI * PFREE_FUNCTION)(void *)
Definition: wdm.h:1378
BOOLEAN WINAPI ExIsResourceAcquiredExclusiveLite(ERESOURCE *)
Definition: sync.c:1275
struct _INITIAL_PRIVILEGE_SET * PINITIAL_PRIVILEGE_SET
LARGE_INTEGER PHYSICAL_ADDRESS
Definition: wdm.h:755
PIRP WINAPI IoBuildAsynchronousFsdRequest(ULONG, DEVICE_OBJECT *, void *, ULONG, LARGE_INTEGER *, IO_STATUS_BLOCK *)
Definition: ntoskrnl.c:1289
_POOL_TYPE
Definition: wdm.h:274
@ PagedPoolCacheAligned
Definition: wdm.h:280
@ NonPagedPoolCacheAligned
Definition: wdm.h:279
@ NonPagedPoolCacheAlignedMustS
Definition: wdm.h:281
@ MaxPoolType
Definition: wdm.h:282
@ NonPagedPool
Definition: wdm.h:275
@ DontUseThisType
Definition: wdm.h:278
@ NonPagedPoolMustSucceed
Definition: wdm.h:277
@ PagedPool
Definition: wdm.h:276
_KWAIT_REASON
Definition: wdm.h:133
@ WrLpcReply
Definition: wdm.h:149
@ WrPageIn
Definition: wdm.h:143
@ Suspended
Definition: wdm.h:139
@ WrPageOut
Definition: wdm.h:151
@ PageIn
Definition: wdm.h:136
@ WrKernel
Definition: wdm.h:158
@ PoolAllocation
Definition: wdm.h:137
@ WrUserRequest
Definition: wdm.h:146
@ UserRequest
Definition: wdm.h:140
@ WrLpcReceive
Definition: wdm.h:148
@ WrFreePage
Definition: wdm.h:142
@ DelayExecution
Definition: wdm.h:138
@ Spare5
Definition: wdm.h:156
@ Spare3
Definition: wdm.h:154
@ Spare6
Definition: wdm.h:157
@ WrExecutive
Definition: wdm.h:141
@ WrQueue
Definition: wdm.h:147
@ Spare2
Definition: wdm.h:153
@ MaximumWaitReason
Definition: wdm.h:159
@ WrRendezvous
Definition: wdm.h:152
@ FreePage
Definition: wdm.h:135
@ WrVirtualMemory
Definition: wdm.h:150
@ Spare4
Definition: wdm.h:155
@ WrDelayExecution
Definition: wdm.h:144
@ WrSuspended
Definition: wdm.h:145
@ Executive
Definition: wdm.h:134
BOOLEAN WINAPI KeSetTimer(KTIMER *, LARGE_INTEGER, KDPC *)
Definition: sync.c:1379
NTSTATUS WINAPI ZwDeleteAtom(RTL_ATOM)
UCHAR KIRQL
Definition: wdm.h:465
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
void WINAPI KeRevertToUserAffinityThreadEx(KAFFINITY affinity)
Definition: ntoskrnl.c:2530
struct _VPB * PVPB
enum _DEVICE_TEXT_TYPE * PDEVICE_TEXT_TYPE
struct _ACCESS_STATE * PACCESS_STATE
HANDLE WINAPI PsGetProcessInheritedFromUniqueProcessId(PEPROCESS)
Definition: ntoskrnl.c:2292
struct _KLOCK_QUEUE_HANDLE KLOCK_QUEUE_HANDLE
enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE
NTSTATUS WINAPI ZwCreateKey(PHANDLE, ACCESS_MASK, const OBJECT_ATTRIBUTES *, ULONG, const UNICODE_STRING *, ULONG, PULONG)
NTSTATUS WINAPI ZwOpenProcess(PHANDLE, ACCESS_MASK, const OBJECT_ATTRIBUTES *, const CLIENT_ID *)
struct _KPROCESS * PKPROCESS
Definition: wdm.h:228
void FASTCALL KeReleaseInStackQueuedSpinLockFromDpcLevel(KLOCK_QUEUE_HANDLE *)
Definition: sync.c:604
PMDL WINAPI MmAllocatePagesForMdl(PHYSICAL_ADDRESS, PHYSICAL_ADDRESS, PHYSICAL_ADDRESS, SIZE_T)
Definition: ntoskrnl.c:2617
void WINAPI ExDeletePagedLookasideList(PPAGED_LOOKASIDE_LIST)
Definition: ntoskrnl.c:2190
VOID WINAPI IoCompleteRequest(IRP *, UCHAR)
Definition: ntoskrnl.c:1901
void WINAPI KeInitializeSpinLock(KSPIN_LOCK *)
Definition: sync.c:537
NTSTATUS WINAPI ZwCreateDirectoryObject(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES)
void WINAPI MmBuildMdlForNonPagedPool(MDL *)
Definition: ntoskrnl.c:2628
void *(NTAPI * PALLOCATE_FUNCTION_EX)(POOL_TYPE, SIZE_T, ULONG, PLOOKASIDE_LIST_EX)
Definition: wdm.h:1377
NTSTATUS WINAPI ZwQueryVolumeInformationFile(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS)
_MEMORY_CACHING_TYPE
Definition: wdm.h:1301
@ MmUSWCCached
Definition: wdm.h:1307
@ MmCached
Definition: wdm.h:1303
@ MmNonCached
Definition: wdm.h:1302
@ MmNonCachedUnordered
Definition: wdm.h:1306
@ MmMaximumCacheType
Definition: wdm.h:1308
@ MmWriteCombined
Definition: wdm.h:1304
@ MmHardwareCoherentCached
Definition: wdm.h:1305
struct _DEVICE_RELATIONS * PDEVICE_RELATIONS
Definition: wdm.h:436
NTSTATUS WINAPI ZwUnloadKey(HANDLE)
NTSTATUS WINAPI ZwPowerInformation(POWER_INFORMATION_LEVEL, PVOID, ULONG, PVOID, ULONG)
#define IoGetCurrentIrpStackLocation(_Irp)
Definition: wdm.h:1586
CCHAR KPROCESSOR_MODE
Definition: wdm.h:466
PVOID WINAPI ExAllocatePool(POOL_TYPE, SIZE_T)
Definition: ntoskrnl.c:2039
struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION * PDEVICE_INTERFACE_CHANGE_NOTIFICATION
enum _KAPC_ENVIRONMENT * PKAPC_ENVIRONMENT
struct _IO_REMOVE_LOCK_COMMON_BLOCK IO_REMOVE_LOCK_COMMON_BLOCK
void WINAPI KeEnterCriticalRegion(void)
Definition: ntoskrnl.c:3323
NTSTATUS WINAPI ZwQueryInformationFile(HANDLE, PIO_STATUS_BLOCK, PVOID, LONG, FILE_INFORMATION_CLASS)
void void * Argument2
Definition: wdm.h:1463
struct _ERESOURCE * PERESOURCE
VOID WINAPI IoInitializeRemoveLockEx(PIO_REMOVE_LOCK, ULONG, ULONG, ULONG, ULONG)
#define PAGE_ALIGN(va)
Definition: wdm.h:38
struct _KDEVICE_QUEUE * PKDEVICE_QUEUE
enum _POWER_STATE_TYPE POWER_STATE_TYPE
BOOLEAN WINAPI ExAcquireSharedWaitForExclusive(ERESOURCE *, BOOLEAN)
Definition: sync.c:1106
NTSTATUS WINAPI ZwQueryDirectoryObject(HANDLE, PDIRECTORY_BASIC_INFORMATION, ULONG, BOOLEAN, BOOLEAN, PULONG, PULONG)
void WINAPI IoReleaseCancelSpinLock(KIRQL)
Definition: sync.c:731
struct _DRIVER_OBJECT DRIVER_OBJECT
struct _IO_RESOURCE_LIST * PIO_RESOURCE_LIST
struct _DEVICE_OBJECT * PDEVICE_OBJECT
Definition: wdm.h:430
enum _OB_PREOP_CALLBACK_STATUS * POB_PREOP_CALLBACK_STATUS
NTSTATUS WINAPI ZwDisplayString(PUNICODE_STRING)
PVOID WINAPI IoGetDriverObjectExtension(PDRIVER_OBJECT, PVOID)
Definition: ntoskrnl.c:959
KAFFINITY WINAPI KeQueryActiveProcessors(void)
Definition: ntoskrnl.c:2420
struct _KUSER_SHARED_DATA KSHARED_USER_DATA
enum _POOL_TYPE POOL_TYPE
void WINAPI KeInitializeTimerEx(PKTIMER, TIMER_TYPE)
NTSTATUS WINAPI ZwSetLdtEntries(ULONG, ULONG, ULONG, ULONG, ULONG, ULONG)
void WINAPI MmUnmapLockedPages(void *, PMDL)
struct _KEVENT PRKEVENT
PIRP WINAPI IoAllocateIrp(CCHAR, BOOLEAN)
Definition: ntoskrnl.c:1030
struct _NPAGED_LOOKASIDE_LIST * PNPAGED_LOOKASIDE_LIST
void WINAPI IoGetStackLimits(ULONG_PTR *, ULONG_PTR *)
Definition: ntoskrnl.c:1749
NTSTATUS WINAPI ExInitializeResourceLite(ERESOURCE *)
Definition: sync.c:882
enum _DIRECTORY_NOTIFY_INFORMATION_CLASS DIRECTORY_NOTIFY_INFORMATION_CLASS
PDEVICE_OBJECT WINAPI IoGetRelatedDeviceObject(PFILE_OBJECT)
Definition: ntoskrnl.c:1728
#define GENERAL_LOOKASIDE_LAYOUT
Definition: wdm.h:1390
struct _KDEVICE_QUEUE_ENTRY PRKDEVICE_QUEUE_ENTRY
NTSTATUS WINAPI ZwReadFile(HANDLE, HANDLE, PIO_APC_ROUTINE, PVOID, PIO_STATUS_BLOCK, PVOID, ULONG, PLARGE_INTEGER, PULONG)
#define LOOKASIDE_ALIGN
Definition: wdm.h:1385
NTSTATUS WINAPI PoCallDriver(DEVICE_OBJECT *, IRP *)
Definition: pnp.c:925
void WINAPI IoDeleteDriver(DRIVER_OBJECT *)
Definition: ntoskrnl.c:1465
struct _DRIVER_EXTENSION * PDRIVER_EXTENSION
struct _CM_FULL_RESOURCE_DESCRIPTOR CM_FULL_RESOURCE_DESCRIPTOR
ULONG WINAPI KeGetCurrentProcessorNumber(void)
BOOLEAN WINAPI IoCancelIrp(IRP *)
Definition: ntoskrnl.c:1964
struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION DEVICE_INTERFACE_CHANGE_NOTIFICATION
struct _ZONE_HEADER * PZONE_HEADER
Definition: wdm.h:232
void(NTAPI * PCALLBACK_FUNCTION)(void *, void *, void *)
Definition: wdm.h:1380
NTSTATUS WINAPI ObRegisterCallbacks(POB_CALLBACK_REGISTRATION, void **)
Definition: ntoskrnl.c:2876
struct _INTERFACE INTERFACE
struct _GENERAL_LOOKASIDE_POOL * PGENERAL_LOOKASIDE_POOL
struct _SECURITY_SUBJECT_CONTEXT SECURITY_SUBJECT_CONTEXT
struct _POWER_SEQUENCE POWER_SEQUENCE
struct _MDL MDL
void FASTCALL ExAcquireFastMutexUnsafe(PFAST_MUTEX)
struct _IO_REMOVE_LOCK_DBG_BLOCK IO_REMOVE_LOCK_DBG_BLOCK
NTSTATUS WINAPI ZwResetEvent(HANDLE, PULONG)
PVOID WINAPI ExAllocatePoolWithQuotaTag(POOL_TYPE, SIZE_T, ULONG)
Definition: ntoskrnl.c:2069
struct _OB_OPERATION_REGISTRATION * POB_OPERATION_REGISTRATION
NTSTATUS WINAPI ZwOpenProcessToken(HANDLE, DWORD, HANDLE *)
void * Argument1
Definition: wdm.h:1463
PDEVICE_OBJECT WINAPI IoAttachDeviceToDeviceStack(PDEVICE_OBJECT, PDEVICE_OBJECT)
NTSTATUS WINAPI ZwSaveKey(HANDLE, HANDLE)
PEPROCESS WINAPI IoGetCurrentProcess(void)
Definition: ntoskrnl.c:2256
NTSTATUS WINAPI ZwQueryValueKey(HANDLE, const UNICODE_STRING *, KEY_VALUE_INFORMATION_CLASS, void *, DWORD, DWORD *)
NTSTATUS WINAPI ZwOpenThreadToken(HANDLE, DWORD, BOOLEAN, HANDLE *)
NTSTATUS WINAPI ZwEnumerateValueKey(HANDLE, ULONG, KEY_VALUE_INFORMATION_CLASS, PVOID, ULONG, PULONG)
struct _POWER_SEQUENCE * PPOWER_SEQUENCE
void(WINAPI * PDRIVER_STARTIO)(struct _DEVICE_OBJECT *, struct _IRP *)
Definition: wdm.h:62
struct _CM_FULL_RESOURCE_DESCRIPTOR * PCM_FULL_RESOURCE_DESCRIPTOR
NTSTATUS WINAPI ZwFlushKey(HANDLE)
struct _NPAGED_LOOKASIDE_LIST NPAGED_LOOKASIDE_LIST
struct _IO_REMOVE_LOCK_TRACKING_BLOCK * PIO_REMOVE_LOCK_TRACKING_BLOCK
Definition: wdm.h:1331
struct _KMUTANT * PKMUTEX
NTSTATUS WINAPI IoCreateDriver(UNICODE_STRING *, PDRIVER_INITIALIZE)
Definition: ntoskrnl.c:1415
NTSTATUS(WINAPI * PIO_COMPLETION_ROUTINE)(IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp, IN PVOID Context)
Definition: wdm.h:955
ULONG WINAPI KeQueryActiveProcessorCountEx(USHORT)
Definition: ntoskrnl.c:2428
PMDL WINAPI IoAllocateMdl(PVOID, ULONG, BOOLEAN, BOOLEAN, IRP *)
Definition: ntoskrnl.c:1088
void WINAPI ExFreePool(PVOID)
struct _IO_RESOURCE_LIST IO_RESOURCE_LIST
VOID(WINAPI * PINTERFACE_DEREFERENCE)(PVOID Context)
Definition: wdm.h:587
NTSTATUS WINAPI ZwQueryTimerResolution(PULONG, PULONG, PULONG)
void WINAPI KeInitializeTimer(KTIMER *)
Definition: sync.c:452
ULONG WINAPI ExSetTimerResolution(ULONG, BOOLEAN)
Definition: ntoskrnl.c:4023
_MM_SYSTEM_SIZE
Definition: wdm.h:1318
@ MmLargeSystem
Definition: wdm.h:1321
@ MmMediumSystem
Definition: wdm.h:1320
@ MmSmallSystem
Definition: wdm.h:1319
union _POWER_STATE * PPOWER_STATE
NTSTATUS WINAPI ZwMapViewOfSection(HANDLE, HANDLE, PVOID *, ULONG, SIZE_T, const LARGE_INTEGER *, SIZE_T *, SECTION_INHERIT, ULONG, ULONG)
NTSTATUS WINAPI ZwSetInformationObject(HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG)
#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(va, length)
Definition: wdm.h:39
struct _OB_POST_OPERATION_INFORMATION * POB_POST_OPERATION_INFORMATION
NTSTATUS WINAPI ZwLockVirtualMemory(HANDLE, PVOID *, SIZE_T *, ULONG)
NTSTATUS WINAPI ZwCloseObjectAuditAlarm(PUNICODE_STRING, HANDLE, BOOLEAN)
struct _OWNER_ENTRY * POWNER_ENTRY
_POWER_STATE_TYPE
Definition: wdm.h:884
@ DevicePowerState
Definition: wdm.h:886
@ SystemPowerState
Definition: wdm.h:885
enum _WORK_QUEUE_TYPE WORK_QUEUE_TYPE
struct _LOOKASIDE_LIST_EX LOOKASIDE_LIST_EX
void(WINAPI * PDRIVER_UNLOAD)(struct _DRIVER_OBJECT *)
Definition: wdm.h:63
struct _KDPC KDPC
NTSTATUS WINAPI ZwAlertThread(HANDLE ThreadHandle)
DEVICE_REGISTRY_PROPERTY
Definition: wdm.h:843
@ DevicePropertyCompatibleIDs
Definition: wdm.h:846
@ DevicePropertyAddress
Definition: wdm.h:860
@ DevicePropertyEnumeratorName
Definition: wdm.h:859
@ DevicePropertyBootConfiguration
Definition: wdm.h:847
@ DevicePropertyDriverKeyName
Definition: wdm.h:851
@ DevicePropertyInstallState
Definition: wdm.h:862
@ DevicePropertyClassGuid
Definition: wdm.h:850
@ DevicePropertyUINumber
Definition: wdm.h:861
@ DevicePropertyBusNumber
Definition: wdm.h:858
@ DevicePropertyBootConfigurationTranslated
Definition: wdm.h:848
@ DevicePropertyRemovalPolicy
Definition: wdm.h:863
@ DevicePropertyPhysicalDeviceObjectName
Definition: wdm.h:855
@ DevicePropertyLegacyBusType
Definition: wdm.h:857
@ DevicePropertyManufacturer
Definition: wdm.h:852
@ DevicePropertyClassName
Definition: wdm.h:849
@ DevicePropertyFriendlyName
Definition: wdm.h:853
@ DevicePropertyLocationInformation
Definition: wdm.h:854
@ DevicePropertyHardwareID
Definition: wdm.h:845
@ DevicePropertyBusTypeGuid
Definition: wdm.h:856
@ DevicePropertyDeviceDescription
Definition: wdm.h:844
NTSTATUS WINAPI ZwQuerySystemInformation(SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG)
struct _KEVENT KEVENT
enum _DIRECTORY_NOTIFY_INFORMATION_CLASS * PDIRECTORY_NOTIFY_INFORMATION_CLASS
struct _PAGED_LOOKASIDE_LIST * PPAGED_LOOKASIDE_LIST
enum _KDPC_IMPORTANCE KDPC_IMPORTANCE
struct _MDL * PMDL
struct _CM_RESOURCE_LIST CM_RESOURCE_LIST
NTSTATUS WINAPI ZwCreateFile(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PIO_STATUS_BLOCK, PLARGE_INTEGER, ULONG, ULONG, ULONG, ULONG, PVOID, ULONG)
NTSTATUS WINAPI ZwWaitForMultipleObjects(ULONG, const HANDLE *, BOOLEAN, BOOLEAN, const LARGE_INTEGER *)
NTSTATUS WINAPI IoOpenDeviceRegistryKey(DEVICE_OBJECT *, ULONG, ACCESS_MASK, HANDLE *)
Definition: pnp.c:879
enum _DEVICE_RELATION_TYPE * PDEVICE_RELATION_TYPE
void WINAPI DECLSPEC_NORETURN KeBugCheckEx(ULONG, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR)
Definition: ntoskrnl.c:3359
NTSTATUS WINAPI ZwInitiatePowerAction(POWER_ACTION, SYSTEM_POWER_STATE, ULONG, BOOLEAN)
#define SL_INVOKE_ON_ERROR
Definition: wdm.h:963
typedef VOID(WINAPI *PKDEFERRED_ROUTINE)(struct _KDPC *
BOOLEAN WINAPI KeSignalCallDpcSynchronize(void *)
Definition: ntoskrnl.c:4178
NTSTATUS WINAPI ZwWaitForSingleObject(HANDLE, BOOLEAN, const LARGE_INTEGER *)
void FASTCALL KeAcquireInStackQueuedSpinLockAtDpcLevel(KSPIN_LOCK *, KLOCK_QUEUE_HANDLE *)
Definition: sync.c:577
struct _OB_PRE_CREATE_HANDLE_INFORMATION * POB_PRE_CREATE_HANDLE_INFORMATION
NTSTATUS WINAPI IoAcquireRemoveLockEx(IO_REMOVE_LOCK *, void *, const char *, ULONG, ULONG)
Definition: sync.c:1333
NTSTATUS WINAPI ZwQuerySection(HANDLE, SECTION_INFORMATION_CLASS, PVOID, ULONG, PULONG)
void WINAPI IoInvalidateDeviceRelations(PDEVICE_OBJECT, DEVICE_RELATION_TYPE)
NTSTATUS WINAPI ZwSetIoCompletion(HANDLE, ULONG, ULONG, NTSTATUS, ULONG)
NTSTATUS WINAPI ExDeleteResourceLite(ERESOURCE *)
Definition: sync.c:892
struct _KMUTANT * PKMUTANT
NTSTATUS WINAPI ZwFsControlFile(HANDLE, HANDLE, PIO_APC_ROUTINE, PVOID, PIO_STATUS_BLOCK, ULONG, PVOID, ULONG, PVOID, ULONG)
struct _IO_SECURITY_CONTEXT * PIO_SECURITY_CONTEXT
NTSTATUS(WINAPI * PDRIVER_ADD_DEVICE)(struct _DRIVER_OBJECT *, struct _DEVICE_OBJECT *)
Definition: wdm.h:64
struct _OB_PRE_CREATE_HANDLE_INFORMATION OB_PRE_CREATE_HANDLE_INFORMATION
struct _OB_PRE_DUPLICATE_HANDLE_INFORMATION OB_PRE_DUPLICATE_HANDLE_INFORMATION
struct _KPROCESS KPROCESS
Definition: wdm.h:228
NTSTATUS WINAPI ZwSetEaFile(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG)
struct _FILE_GET_QUOTA_INFORMATION * PFILE_GET_QUOTA_INFORMATION
Definition: wdm.h:48
struct _IO_REMOVE_LOCK IO_REMOVE_LOCK
struct _CM_RESOURCE_LIST * PCM_RESOURCE_LIST
struct _PAGED_LOOKASIDE_LIST PAGED_LOOKASIDE_LIST
void WINAPI IoDetachDevice(PDEVICE_OBJECT)
void WINAPI KeQueryTickCount(LARGE_INTEGER *)
Definition: ntoskrnl.c:2462
struct _OB_POST_CREATE_HANDLE_INFORMATION * POB_POST_CREATE_HANDLE_INFORMATION
NTSTATUS WINAPI IoWMIRegistrationControl(PDEVICE_OBJECT, ULONG)
Definition: ntoskrnl.c:3205
struct _DISPATCHER_HEADER * PDISPATCHER_HEADER
union _OB_POST_OPERATION_PARAMETERS OB_POST_OPERATION_PARAMETERS
ULONG_PTR KSPIN_LOCK
Definition: wdm.h:44
union _OB_PRE_OPERATION_PARAMETERS * POB_PRE_OPERATION_PARAMETERS
BOOLEAN WINAPI ExAcquireResourceExclusiveLite(ERESOURCE *, BOOLEAN)
Definition: sync.c:923
_KAPC_ENVIRONMENT
Definition: wdm.h:468
@ AttachedApcEnvironment
Definition: wdm.h:470
@ OriginalApcEnvironment
Definition: wdm.h:469
@ CurrentApcEnvironment
Definition: wdm.h:471
@ InsertApcEnvironment
Definition: wdm.h:472
struct _DEVICE_CAPABILITIES DEVICE_CAPABILITIES
ULONG WINAPI ExGetExclusiveWaiterCount(ERESOURCE *)
Definition: sync.c:1237
struct _KWAIT_BLOCK KWAIT_BLOCK
void FASTCALL ObfReferenceObject(void *)
Definition: ntoskrnl.c:2858
NTSTATUS WINAPI ZwSetSystemTime(const LARGE_INTEGER *, LARGE_INTEGER *)
void(WINAPI * PIO_WORKITEM_ROUTINE)(PDEVICE_OBJECT, void *)
Definition: wdm.h:1566
void WINAPI KeInitializeSemaphore(PRKSEMAPHORE, LONG, LONG)
Definition: sync.c:340
LOCK_OPERATION
Definition: wdm.h:1351
@ IoReadAccess
Definition: wdm.h:1352
@ IoWriteAccess
Definition: wdm.h:1353
@ IoModifyAccess
Definition: wdm.h:1354
struct _CM_PARTIAL_RESOURCE_LIST CM_PARTIAL_RESOURCE_LIST
NTSTATUS WINAPI ObReferenceObjectByPointer(void *, ACCESS_MASK, POBJECT_TYPE, KPROCESSOR_MODE)
Definition: ntoskrnl.c:2844
NTSTATUS WINAPI ZwSetValueKey(HANDLE, const UNICODE_STRING *, ULONG, ULONG, const void *, ULONG)
struct _VPB VPB
#define FM_LOCK_BIT
Definition: wdm.h:244
NTSTATUS WINAPI ZwOpenDirectoryObject(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES)
ULONG * PPFN_NUMBER
Definition: wdm.h:1151
NTSTATUS WINAPI ZwSetTimer(HANDLE, const LARGE_INTEGER *, PTIMER_APC_ROUTINE, PVOID, BOOLEAN, ULONG, BOOLEAN *)
NTSTATUS WINAPI ZwLoadKey(const OBJECT_ATTRIBUTES *, OBJECT_ATTRIBUTES *)
MM_SYSTEMSIZE WINAPI MmQuerySystemSize(void)
Definition: ntoskrnl.c:3160
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR * PCM_PARTIAL_RESOURCE_DESCRIPTOR
NTSTATUS WINAPI ObReferenceObjectByName(UNICODE_STRING *, ULONG, ACCESS_STATE *, ACCESS_MASK, POBJECT_TYPE, KPROCESSOR_MODE, void *, void **)
Definition: ntoskrnl.c:2767
struct _OB_OPERATION_REGISTRATION OB_OPERATION_REGISTRATION
NTSTATUS WINAPI KeDelayExecutionThread(KPROCESSOR_MODE, BOOLEAN, LARGE_INTEGER *)
Definition: sync.c:528
struct _IO_WORKITEM * PIO_WORKITEM
Definition: wdm.h:229
BOOLEAN WINAPI ExAcquireSharedStarveExclusive(ERESOURCE *, BOOLEAN)
Definition: sync.c:1042
struct _KAPC_STATE * PKAPC_STATE
_WORK_QUEUE_TYPE
Definition: wdm.h:1559
@ DelayedWorkQueue
Definition: wdm.h:1561
@ CriticalWorkQueue
Definition: wdm.h:1560
@ HyperCriticalWorkQueue
Definition: wdm.h:1562
@ MaximumWorkQueue
Definition: wdm.h:1563
void WINAPI KeReleaseSpinLock(KSPIN_LOCK *, KIRQL)
Definition: sync.c:632
#define SL_INVOKE_ON_CANCEL
Definition: wdm.h:961
struct _KDEVICE_QUEUE_ENTRY KDEVICE_QUEUE_ENTRY
BOOLEAN WINAPI RtlIsNtDdiVersionAvailable(ULONG)
Definition: ntoskrnl.c:4052
struct _KSPIN_LOCK_QUEUE * PKSPIN_LOCK_QUEUE
_MM_PAGE_PRIORITY
Definition: wdm.h:1311
@ NormalPagePriority
Definition: wdm.h:1313
@ LowPagePriority
Definition: wdm.h:1312
@ HighPagePriority
Definition: wdm.h:1314
struct _KSPIN_LOCK_QUEUE KSPIN_LOCK_QUEUE
void WINAPI IoReuseIrp(IRP *, NTSTATUS)
Definition: ntoskrnl.c:985
union _POWER_STATE POWER_STATE
struct _IO_SECURITY_CONTEXT IO_SECURITY_CONTEXT
struct _OB_PRE_OPERATION_INFORMATION * POB_PRE_OPERATION_INFORMATION
void WINAPI IoAcquireCancelSpinLock(KIRQL *)
Definition: sync.c:722
void WINAPI IoQueueWorkItem(PIO_WORKITEM, PIO_WORKITEM_ROUTINE, WORK_QUEUE_TYPE, void *)
Definition: ntoskrnl.c:1179
struct _KDEVICE_QUEUE PRKDEVICE_QUEUE
struct _KMUTANT PRKMUTEX
void WINAPI KeInitializeMutex(PRKMUTEX, ULONG)
Definition: sync.c:384
NTSTATUS WINAPI IoCreateSymbolicLink(UNICODE_STRING *, UNICODE_STRING *)
Definition: ntoskrnl.c:1590
struct _EPROCESS * PEPROCESS
Definition: wdm.h:227
struct _IO_COMPLETION_CONTEXT * PIO_COMPLETION_CONTEXT
NTSTATUS WINAPI ZwCancelIoFile(HANDLE, PIO_STATUS_BLOCK)
NTSTATUS WINAPI IoSetDeviceInterfaceState(UNICODE_STRING *, BOOLEAN)
Definition: pnp.c:687
struct _IRP * PIRP
Definition: wdm.h:565
struct _OWNER_ENTRY OWNER_ENTRY
NTSTATUS WINAPI IoRegisterDeviceInterface(PDEVICE_OBJECT, const GUID *, PUNICODE_STRING, PUNICODE_STRING)
NTSTATUS WINAPI ZwQueryFullAttributesFile(const OBJECT_ATTRIBUTES *, FILE_NETWORK_OPEN_INFORMATION *)
struct _IO_STACK_LOCATION IO_STACK_LOCATION
struct _DRIVER_EXTENSION DRIVER_EXTENSION
void WINAPI KeClearEvent(PRKEVENT)
Definition: sync.c:310
enum _OB_PREOP_CALLBACK_STATUS OB_PREOP_CALLBACK_STATUS
void *(NTAPI * PALLOCATE_FUNCTION)(POOL_TYPE, SIZE_T, ULONG)
Definition: wdm.h:1376
struct _FAST_MUTEX * PFAST_MUTEX
_DIRECTORY_NOTIFY_INFORMATION_CLASS
Definition: wdm.h:1554
@ DirectoryNotifyInformation
Definition: wdm.h:1555
@ DirectoryNotifyExtendedInformation
Definition: wdm.h:1556
struct _KSEMAPHORE * PRKSEMAPHORE
HANDLE WINAPI PsGetCurrentThreadId(void)
Definition: ntoskrnl.c:2941
struct _DEVICE_RELATIONS DEVICE_RELATIONS
struct _OB_POST_DUPLICATE_HANDLE_INFORMATION OB_POST_DUPLICATE_HANDLE_INFORMATION
PVOID WINAPI IoAllocateErrorLogEntry(PVOID, UCHAR)
Definition: ntoskrnl.c:1078
PVOID WINAPI ExAlloc