Bitdefender Hypervisor Memory Introspection
wddefs.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 Bitdefender
3  * SPDX-License-Identifier: Apache-2.0
4  */
20 
21 #ifndef _WDDEFS_H_
22 #define _WDDEFS_H_
23 
24 #include "introdefs.h"
25 
29 #define IDT_OFFSET 0x38
30 
31 #define IDT_DESC_SIZE32 8
32 #define IDT_DESC_SIZE64 16
33 
34 #define DRIVER_OBJECT_TYPE 4
38 
42 #define KESDT_SIZE (4 * 4)
43 
44 //
45 //Windows OS Build number definitions
46 //
47 #define WIN_BUILD_7_0 7600
48 #define WIN_BUILD_7_1 7601
49 #define WIN_BUILD_7_2 7602
50 #define WIN_BUILD_8 9200
51 #define WIN_BUILD_8_1 9600
52 #define WIN_BUILD_10_TH1 10240
53 #define WIN_BUILD_10_TH2 10586
54 #define WIN_BUILD_10_RS1 14393
55 #define WIN_BUILD_10_RS2 15063
56 #define WIN_BUILD_10_RS3 16299
57 #define WIN_BUILD_10_RS4 17134
58 #define WIN_BUILD_10_RS5 17763
59 #define WIN_BUILD_10_19H1 18362
60 #define WIN_BUILD_10_19H2 18362
61 #define WIN_BUILD_10_20H1 19041
62 
63 //
64 // HAL related definitions hard coded by Windows versions prior to RS2
65 //
66 
67 #define WIN_HAL_HEAP_BASE_32 0xFFD00000
68 #define WIN_HAL_HEAP_BASE_64 0xFFFFFFFFFFD00000
69 
70 #define IS_KERNEL_POINTER_WIN(is64, p) ((is64) ? (((p) & 0xFFFF800000000000) == 0xFFFF800000000000) \
77  : (((p) & 0x80000000) == 0x80000000))
78 
87 #define FIX_GUEST_POINTER(is64, x) ((is64) ? (x) : ((x) & 0xFFFFFFFF))
88 
100 #define EX_FAST_REF_TO_PTR(is64, p) ((is64) ? (p) & ~(0x0FULL) : (p) & ~(0x07ULL))
101 
106 typedef struct _UNICODE_STRING
107 {
112 
113 #pragma pack(push)
114 #pragma pack(1)
115 
120 typedef struct _UNICODE_STRING32
121 {
131 
136 typedef struct _UNICODE_STRING64
137 {
143  QWORD Buffer;
148 
153 typedef struct _LIST_ENTRY32
154 {
155  DWORD Flink, Blink;
157 
162 typedef struct _LIST_ENTRY64
163 {
164  QWORD Flink, Blink;
166 
167 #pragma pack(pop)
168 
173 {
192 
193  //
194  // Add other fields, if needed
195  //
197 
202 {
221 
222  //
223  // Add other fields, if needed
224  //
226 
227 #pragma pack(push)
228 #pragma pack(1)
229 
233 typedef struct _DRIVER_OBJECT32
234 {
249  DWORD MajorFunctions[28];
251 
255 typedef struct _DRIVER_OBJECT64
256 {
272  QWORD MajorFunctions[28];
274 
275 #pragma pack(pop)
276 
280 typedef struct _FAST_IO_DISPATCH32
281 {
311 
315 typedef struct _FAST_IO_DISPATCH64
316 {
346 
350 typedef struct _OBJECT_HEADER32
351 {
353 
354  union
355  {
358  };
359 
369 
373 typedef struct _OBJECT_HEADER64
374 {
376 
377  union
378  {
381  };
382 
389 
390  union
391  {
394  };
395 
399 
403 typedef struct _POOL_HEADER32
404 {
405  union
406  {
407  struct
408  {
413  };
414 
416  };
417 
418  union
419  {
421  struct
422  {
425  };
426  };
427 } POOL_HEADER32;
428 
432 typedef struct _POOL_HEADER64
433 {
434  union
435  {
436  struct
437  {
442  };
443 
445  };
446 
448  union
449  {
451 
452  struct
453  {
456  };
457  };
458 } POOL_HEADER64;
459 
460 typedef union _POOL_HEADER
461 {
465 
466 #define WIN_POOL_HEADER_SIZE32 0x8
467 #define WIN_POOL_HEADER_SIZE64 0x10
468 
469 #define WIN_POOL_HEADER_SIZE ((gGuest.Guest64) ? WIN_POOL_HEADER_SIZE64 : WIN_POOL_HEADER_SIZE32)
470 
471 #define WIN_POOL_BLOCK_SIZE32 0x08
472 #define WIN_POOL_BLOCK_SIZE64 0x10
473 
474 #define WIN_POOL_BLOCK_SIZE ((gGuest.Guest64) ? WIN_POOL_BLOCK_SIZE64 : WIN_POOL_BLOCK_SIZE32)
475 
476 
477 STATIC_ASSERT(sizeof(POOL_HEADER32) == WIN_POOL_HEADER_SIZE32, "Wrong size for POOL_HEADER32!");
478 STATIC_ASSERT(sizeof(POOL_HEADER64) == WIN_POOL_HEADER_SIZE64, "Wrong size for POOL_HEADER64!");
479 
480 #if !defined(INT_COMPILER_CLANG)
481 STATIC_ASSERT(OFFSET_OF(POOL_HEADER32, PoolTag) == OFFSET_OF(POOL_HEADER64, PoolTag), "Wrong PoolTag offset!");
482 #endif
483 
488 typedef enum _POOL_TYPE
489 {
499 
500  //
501  // Define base types for NonPaged (versus Paged) pool, for use in cracking
502  // the underlying pool type.
503  //
504 
509 
510  //
511  // Note these per session types are carefully chosen so that the appropriate
512  // masking still applies as well as MaxPoolType above.
513  //
514 
522 
526 
527 } POOL_TYPE;
528 
530 {
538 
540 {
548 
550 {
554 
555 #define WIN_POOL_TRACKER_SIZE (DWORD)((gGuest.Guest64) ? sizeof(POOL_TRACKER_BIG_PAGES64) : \
556  sizeof(POOL_TRACKER_BIG_PAGES32))
557 
558 //
559 // SID Attribute flags
560 // See winnt.h or https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-token_groups_and_privileges
561 //
562 #define SE_GROUP_MANDATORY (0x00000001L)
563 #define SE_GROUP_ENABLED_BY_DEFAULT (0x00000002L)
564 #define SE_GROUP_ENABLED (0x00000004L)
565 #define SE_GROUP_OWNER (0x00000008L)
566 #define SE_GROUP_USE_FOR_DENY_ONLY (0x00000010L)
567 #define SE_GROUP_INTEGRITY (0x00000020L)
568 #define SE_GROUP_INTEGRITY_ENABLED (0x00000040L)
569 #define SE_GROUP_LOGON_ID (0xC0000000L)
570 #define SE_GROUP_RESOURCE (0x20000000L)
571 
572 #define SE_GROUP_VALID_ATTRIBUTES (SE_GROUP_MANDATORY | \
573  SE_GROUP_ENABLED_BY_DEFAULT | \
574  SE_GROUP_ENABLED | \
575  SE_GROUP_OWNER | \
576  SE_GROUP_USE_FOR_DENY_ONLY | \
577  SE_GROUP_LOGON_ID | \
578  SE_GROUP_RESOURCE | \
579  SE_GROUP_INTEGRITY | \
580  SE_GROUP_INTEGRITY_ENABLED)
581 
583 {
589 
590 typedef struct _SID_AND_ATTRIBUTES64
591 {
595 
596 //
597 // dt nt!_SID_AND_ATTRIBUTES, 0x8 bytes
598 //
599 typedef struct _SID_AND_ATTRIBUTES32
600 {
604 
609 {
610  BYTE Reserved1[16];
611  DWORD Reserved2[10];
615 
620 {
621  BYTE Reserved1[16];
622  QWORD Reserved2[10];
626 
631 {
632 
633  // Entries initialized at creation
636 
637  // Entries used in bucket computation.
641 
642  // Counters
646 
647  // The directory. This field is for internal use only.
649 
651 
656 {
657 
658  // Entries initialized at creation
661 
662  // Entries used in bucket computation.
666 
667  // Counters
671 
672  // The directory. This field is for internal use only.
674 
676 
680 typedef struct _PEB32
681 {
682  BYTE Reserved1[2];
684  BYTE Reserved2[1];
685  DWORD Reserved3[2];
688  DWORD Reserved4[3];
695  DWORD Reserved9[45];
696  BYTE Reserved10[96];
698  BYTE Reserved11[128];
699  DWORD Reserved12[1];
701 } PEB32, *PPEB32;
702 
706 typedef struct _PEB64
707 {
708  BYTE Reserved1[2];
710  BYTE Reserved2[1];
711  QWORD Reserved3[2];
714  QWORD Reserved4[3];
721  QWORD Reserved9[45];
722  BYTE Reserved10[96];
724  BYTE Reserved11[128];
725  QWORD Reserved12[1];
727 } PEB64, *PPEB64;
728 
729 // from wdm.h
730 //
731 // Define 128-bit 16-byte aligned xmm register type.
732 //
733 
734 typedef struct _M128A
735 {
738 } M128A, *PM128A;
739 
740 // Windows 10 RS2 x86 - structure taken from WINDBG
741 typedef struct _KI_IO_ACCESS_MAP
742 {
743  BYTE DirectionMap[32];
744  BYTE IoMap[8196];
746 
747 #pragma pack(push)
748 #pragma pack(1)
749 // Windows 10 RS2 x86 - structure taken from WINDBG
750 typedef struct _KTSS
751 {
757  DWORD NotUsed1[4];
785 
786  //
787  // Snippet of the structure
788  //
789 
790  //KI_IO_ACCESS_MAP IoMap;
791  //BYTE IntDirectionMap[32];
792 } KTSS, *PKTSS;
793 #pragma pack(pop)
794 
795 // Windows 10 RS2 x86 - structure taken from WINDBG
796 typedef struct _KTRAP_FRAME32
797 {
805 
812 
821  BYTE Reserved[2];
823  DWORD ExceptionList; //PEXCEPTION_REGISTRATION_RECORD32
825 
830 
837 
843 
844 
845 typedef struct _KTRAP_FRAME64
846 {
847 
848  //
849  // Home address for the parameter registers.
850  //
851 
857 
858  //
859  // Previous processor mode (system services only) and previous IRQL
860  // (interrupts only).
861  //
862 
865 
866  //
867  // Page fault load/store indicator.
868  //
869 
871 
872  //
873  // Exception active indicator.
874  //
875  // 0 - interrupt frame.
876  // 1 - exception frame.
877  // 2 - service frame.
878  //
879 
881 
882  //
883  // Floating point state.
884  //
885 
887 
888  //
889  // Volatile registers.
890  //
891  // N.B. These registers are only saved on exceptions and interrupts. They
892  // are not saved for system calls.
893  //
894 
902 
903  //
904  // Gsbase is only used if the previous mode was kernel.
905  //
906  // GsSwap is only used if the previous mode was user.
907  //
908 
909  union
910  {
913  };
914 
915  //
916  // Volatile floating registers.
917  //
918  // N.B. These registers are only saved on exceptions and interrupts. They
919  // are not saved for system calls.
920  //
921 
928 
929  //
930  // First parameter, page fault address, context record address if user APC
931  // bypass, or time stamp value.
932  //
933 
934  union
935  {
939  };
940 
941  //
942  // Debug registers.
943  //
944 
951 
952  //
953  // Special debug registers.
954  //
955 
956  struct
957  {
963  };
964 
965  //
966  // Segment registers
967  //
968 
973 
974  //
975  // Previous trap frame address.
976  //
977 
979 
980  //
981  // Saved nonvolatile registers RBX, RDI and RSI. These registers are only
982  // saved in system service trap frames.
983  //
984 
988 
989  //
990  // Saved nonvolatile register RBP. This register is used as a frame
991  // pointer during trap processing and is saved in all trap frames.
992  //
993 
995 
996  //
997  // Information pushed by hardware.
998  //
999  // N.B. The error code is not always pushed by hardware. For those cases
1000  // where it is not pushed by hardware a dummy error code is allocated
1001  // on the stack.
1002  //
1003 
1004  union
1005  {
1009  };
1010 
1015  UINT16 Fill1[2];
1023 
1024 // Note that certain fields may be renamed/aliased, depending on the OS version/installed patches, but the size and
1025 // field offsets defined above should always be the same (at least they are for everything from Windows 7 to 10 RS5)
1026 // These static asserts should help in keeping the structure in a good state
1027 STATIC_ASSERT(sizeof(KTRAP_FRAME64) == 0x190, "Wrong size for KTRAP_FRAME64!");
1028 STATIC_ASSERT(OFFSET_OF(KTRAP_FRAME64, Rax) == 0x30, "Wrong offset for Rax in KTRAP_FRAME64!");
1029 STATIC_ASSERT(OFFSET_OF(KTRAP_FRAME64, Rbx) == 0x140, "Wrong offset for Rbx in KTRAP_FRAME64!");
1030 STATIC_ASSERT(OFFSET_OF(KTRAP_FRAME64, Rip) == 0x168, "Wrong offset for Rip in KTRAP_FRAME64!");
1031 STATIC_ASSERT(OFFSET_OF(KTRAP_FRAME64, Rsp) == 0x180, "Wrong offset for Rsp in KTRAP_FRAME64!");
1032 
1033 
1034 #ifndef EXCEPTION_MAXIMUM_PARAMETERS
1035 #define EXCEPTION_MAXIMUM_PARAMETERS 15
1036 #endif // !EXCEPTION_MAXIMUM_PARAMETERS
1037 
1043 typedef struct _EXCEPTION_RECORD64
1044 {
1054  QWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
1056 
1063 typedef struct _EXCEPTION_RECORD32
1064 {
1070  DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
1072 
1078 typedef struct _KEXCEPTION_FRAME64
1079 {
1080 
1081  //
1082  // Home address for the parameter registers.
1083  //
1084 
1091 
1092  //
1093  // Saved nonvolatile floating registers.
1094  //
1095 
1106 
1107  //
1108  // Kernel callout frame variables.
1109  //
1110 
1115 
1116  //
1117  // Saved MXCSR when a thread is interrupted in kernel mode via a dispatch
1118  // interrupt.
1119  //
1120 
1122 
1123  //
1124  // Saved nonvolatile register - not always saved.
1125  //
1126 
1128 
1129  //
1130  // Saved nonvolatile registers.
1131  //
1132 
1140 
1141  //
1142  // EFLAGS and return address.
1143  //
1144 
1147 
1148 // Note that certain fields may be renamed/aliased, depending on the OS version/installed patches, but the size and
1149 // field offsets defined above should always be the same (at least they are for everything from Windows 7 to 10 RS5)
1150 // These static asserts should help in keeping the structure in a good state
1151 STATIC_ASSERT(sizeof(KEXCEPTION_FRAME64) == 0x140, "Wrong size for KEXCEPTION_FRAME64!");
1152 STATIC_ASSERT(OFFSET_OF(KEXCEPTION_FRAME64, Rbp) == 0xF8, "Wrong offset for Rbp in KEXCEPTION_FRAME64!");
1153 
1154 //
1155 // PTE specific definitions of Windows
1156 //
1157 #define WIN_PTE_READWRITE 0x080
1158 #define WIN_PTE_TRANSITION 0x800
1159 #define WIN_PTE_PROTOTYPE 0x400
1160 #define WIN_PTE_GUARD 0x200
1161 
1165 #define HAL_DISPATCH_TABLE_PTR_COUNT 23
1166 
1172 #define RTL_BALANCED_NODE_PARENT_TO_PTR(Parent) ((Parent) & ~3)
1173 
1178 typedef enum _VAD_TYPE
1179 {
1183  VadAwe,
1198 } VAD_TYPE;
1199 
1200 
1201 //
1202 // Virtual Page protection constants (see winnt.h, PAGE_*)
1203 //
1204 #define WIN_MM_PAGE_NOACCESS 0x001
1205 #define WIN_MM_PAGE_READONLY 0x002
1206 #define WIN_MM_PAGE_READWRITE 0x004
1207 #define WIN_MM_PAGE_WRITECOPY 0x008
1208 #define WIN_MM_PAGE_EXECUTE 0x010
1209 #define WIN_MM_PAGE_EXECUTE_READ 0x020
1210 #define WIN_MM_PAGE_EXECUTE_READWRITE 0x040
1211 #define WIN_MM_PAGE_EXECUTE_WRITECOPY 0x080
1212 #define WIN_MM_PAGE_GUARD 0x100
1213 #define WIN_MM_PAGE_NOCACHE 0x200
1214 #define WIN_MM_PAGE_WRITECOMBINE 0x400
1215 
1216 
1220 typedef enum _KWAIT_REASON
1221 {
1263 } KWAIT_REASON;
1264 
1265 
1269 typedef enum _KTHREAD_STATE
1270 {
1279  GateWait, // GateWaitObsolete in Windows 10
1281 } KTHREAD_STATE;
1282 
1286 #define KEXEC_OPT_EXEC_DISABLE 1
1287 #define KEXEC_OPT_EXEC_ENABLE 2
1291 #define KEXEC_OPT_PERMANENT 8
1297 
1301 typedef struct _OBJECT_TYPE64
1302 {
1311 
1312  //
1313  // The following fields were changed from Windows 7 to Windows 8; we don't really need them at the moment
1314  // Add them if needed
1315  //
1316 
1318 
1319 STATIC_ASSERT(sizeof(OBJECT_TYPE64) == 0x40, "Invalid OBJECT_TYPE64 size!");
1320 
1324 typedef struct _OBJECT_TYPE32
1325 {
1334 
1335  //
1336  // The following fields were changed from Windows 7 to Windows 8; we don't really need them at the moment
1337  // Add them if needed
1338  //
1339 
1341 
1342 STATIC_ASSERT(sizeof(OBJECT_TYPE32) == 0x28, "Invalid OBJECT_TYPE32 size!");
1343 
1348 {
1351 
1352  //
1353  // Other fields may follow, but we don't use them
1354  //
1356 
1361 {
1364 
1365  //
1366  // Other fields may follow, but we don't use them
1367  //
1369 
1373 typedef struct _OBJECT_NAME64
1374 {
1379 
1383 typedef struct _OBJECT_NAME32
1384 {
1389 
1390 //
1391 // Define the size of the 80387 save area, which is in the context frame.
1392 //
1393 
1394 #define SIZE_OF_80387_REGISTERS 80
1395 #define MAXIMUM_SUPPORTED_EXTENSION 512
1396 
1400 typedef struct _XSAVE_FORMAT
1401 {
1415  M128A FloatRegisters[8];
1416 
1417  M128A XmmRegisters[16];
1418  BYTE Reserved4[96];
1419 
1420 
1422 
1424 
1428 typedef struct _FLOATING_SAVE_AREA
1429 {
1441 
1445 typedef struct _CONTEXT64
1446 {
1453 
1456 
1464 
1471 
1488 
1490 
1491  union
1492  {
1493  XMM_SAVE_AREA32 FltSave;
1494  struct
1495  {
1496  M128A Header[2];
1497  M128A Legacy[8];
1514  } DUMMYSTRUCTNAME;
1515  } DUMMYUNIONNAME;
1516 
1517  M128A VectorRegister[26];
1519 
1525 } CONTEXT64, *PCONTEXT64;
1526 
1530 typedef struct _CONTEXT32
1531 {
1533 
1540 
1542 
1547 
1554 
1561 
1562  BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION];
1563 } CONTEXT32, *PCONTEXT32;
1564 
1571 {
1572  struct
1573  {
1604  } Values;
1605 
1608 
1615 {
1616  struct
1617  {
1630  } Values;
1631 
1634 
1640 typedef enum
1641 {
1651 
1657 typedef enum
1658 {
1667 } POWER_ACTION;
1668 
1669 #define POOL_TAG_INCO 'oCnI'
1670 #define POOL_TAG_INPA 'APnI'
1671 #define POOL_TAG_INCS 'SCnI'
1672 #define POOL_TAG_INNL 'lNnI'
1673 
1674 #define POOL_TAG_TCCO 'oCcT'
1675 #define POOL_TAG_TCHT 'THcT'
1676 #define POOL_TAG_TCPT 'tPcT'
1677 
1678 #define POOL_TAG_TCPE 'EpcT'
1679 #define POOL_TAG_TCPL 'LpcT'
1680 #define POOL_TAG_TCTW 'WTcT'
1681 
1682 typedef struct _RTL_VERIFIER_DLL_DESCRIPTOR_32
1686 {
1692 
1697 {
1703 
1708 {
1721 
1726 {
1739 
1740 // DllMain possible calling reasons
1741 #define DLL_PROCESS_DETACH 0
1742 #define DLL_PROCESS_ATTACH 1
1743 #define DLL_THREAD_ATTACH 2
1744 #define DLL_THREAD_DETACH 3
1745 #define DLL_VERIFIER_PROVIDER 4
1746 
1750 typedef enum _WIN_SOCK_STATE
1751 {
1764 
1766 } WIN_SOCK_STATE;
1767 
1768 #define AF_INET 0x02
1769 #define AF_INET6 0x17
1770 
1771 typedef union _ADDRINFO
1772 {
1773  struct
1774  {
1778  } Addr64;
1779 
1780  union
1781  {
1782  struct
1783  {
1787  } Win7;
1788 
1789  struct
1790  {
1791  DWORD Local;
1792  DWORD _pad2[2];
1793  DWORD Remote;
1794  } Win8AndAbove;
1795  } Addr32;
1796 } ADDRINFO, *PADDRINFO;
1797 
1798 typedef union _LOCAL_ADDRESS
1799 {
1800  struct
1801  {
1802  BYTE _pad0[0x0c];
1804  } Addr32;
1805 
1806  struct
1807  {
1808  BYTE _pad1[0x10];
1810  } Addr64;
1812 
1813 #endif // _WDDEFS_H_
DWORD NumberParameters
Definition: wddefs.h:1069
This is the structure as documented in ntddk.h.
Definition: wddefs.h:630
DWORD ControlFlowGuardStrict
Definition: wddefs.h:1576
DWORD TotalNumberOfObjects
Definition: wddefs.h:1307
QWORD FastIoDetachDevice
Definition: wddefs.h:330
DWORD Ulong1
Definition: wddefs.h:415
DWORD Edx
Definition: wddefs.h:816
QWORD R9
Definition: wddefs.h:1481
QWORD Rcx
Definition: wddefs.h:1473
DWORD Sid
Pointer to a _SID structure.
Definition: wddefs.h:601
WORD Reserved4
Definition: wddefs.h:774
DWORD DriverSection
Definition: wddefs.h:241
struct _DRIVER_OBJECT32 DRIVER_OBJECT32
The _DRIVER_OBJECT structure used by 32-bit guests.
struct _RTL_USER_PROCESS_PARAMETERS32 RTL_USER_PROCESS_PARAMETERS32
This is the structure as documented in winternl.h.
QWORD FastIoWriteCompressed
Definition: wddefs.h:338
QWORD GsSwap
Definition: wddefs.h:912
POOL_TRACKER_BIG_PAGES64 Tracker64
Definition: wddefs.h:552
DWORD SegFs
Definition: wddefs.h:824
SYSTEM_POWER_STATE
The _SYSTEM_POWER_STATE enum values used by the Windows kernel.
Definition: wddefs.h:1640
WORD Reserved5
Definition: wddefs.h:776
DWORD EFlags
Definition: wddefs.h:834
DWORD PoolType
Definition: wddefs.h:441
struct _KTSS * PKTSS
M128A Xmm6
Definition: wddefs.h:1504
DWORD TotalNumberOfHandles
Definition: wddefs.h:1331
DWORD ExceptionList
Definition: wddefs.h:823
_SECURITY_IMPERSONATION_LEVEL
Definition: wddefs.h:582
DWORD InAddr
Definition: wddefs.h:1803
DWORD SegCs
Definition: wddefs.h:833
LIST_ENTRY32 InMemoryOrderLinks
Definition: wddefs.h:175
WORD AllocatorBackTraceIndex
Definition: wddefs.h:423
long long INT64
Definition: intro_types.h:45
QWORD Rdx
Definition: wddefs.h:1474
QWORD R12
Definition: wddefs.h:1484
QWORD ProcessBilled
Definition: wddefs.h:450
DWORD FastIoQueryNetworkOpenInfo
Definition: wddefs.h:296
struct _OBJECT_NAME32 OBJECT_NAME32
An _OBJECT_HEADER_NAME_INFO structure used by 32-bit guests.
BYTE FrameType
Definition: wddefs.h:803
#define SIZE_OF_80387_REGISTERS
Definition: wddefs.h:1394
struct _LDR_DATA_TABLE_ENTRY64 * PLDR_DATA_TABLE_ENTRY64
WORD Flags
Definition: wddefs.h:783
QWORD AcquireFileForNtCreateSection
Definition: wddefs.h:328
DWORD ReferenceCount
Reference count.
Definition: wddefs.h:1387
DWORD Eax
Definition: wddefs.h:1553
struct _LIST_ENTRY32 * PLIST_ENTRY32
Format of data for (F)XSAVE/(F)XRSTOR instruction for 32-bit guests.
Definition: wddefs.h:1400
DWORD PoolTag
Definition: wddefs.h:420
struct _KTRAP_FRAME32 KTRAP_FRAME32
QWORD P3Home
Definition: wddefs.h:854
uint8_t BYTE
Definition: intro_types.h:47
QWORD HardwareDatabase
Definition: wddefs.h:267
The _DRIVER_OBJECT structure used by 64-bit guests.
Definition: wddefs.h:255
struct _KTRAP_FRAME32 * PKTRAP_FRAME32
POOL_TRACKER_BIG_PAGES32 Tracker32
Definition: wddefs.h:551
#define OFFSET_OF(Type, Member)
Definition: introlists.h:33
DWORD SegEs
Definition: wddefs.h:814
struct _CONTEXT64 * PCONTEXT64
DWORD EFlags
Definition: wddefs.h:760
QWORD NextToFree
Definition: wddefs.h:380
DWORD EnableExportAddressFilterPlus
Definition: wddefs.h:1620
This is the structure as documented in winternl.h.
Definition: wddefs.h:680
struct _EXCEPTION_RECORD64 EXCEPTION_RECORD64
An _EXCEPTION_RECORD structure used by 64-bit guests.
QWORD P4Home
Definition: wddefs.h:855
WORD Reserved7
Definition: wddefs.h:780
QWORD P1Home
Definition: wddefs.h:852
DWORD DefaultObject
Definition: wddefs.h:1328
struct _CONTEXT32 * PCONTEXT32
WORD TempSegCs
Definition: wddefs.h:801
LIST_ENTRY64 HashLinks
Definition: wddefs.h:214
DWORD DisableDynamicCodeAllowRemoteDowngrade
Definition: wddefs.h:1584
QWORD P4Home
Definition: wddefs.h:1450
LIST_ENTRY64 InLoadOrderLinks
Definition: wddefs.h:203
DWORD HighWaterNumberOfHandles
Definition: wddefs.h:1310
QWORD DebugControl
Definition: wddefs.h:958
WORD Ss
Definition: wddefs.h:773
DWORD Ebp
Definition: wddefs.h:829
struct _RTL_VERIFIER_DLL_DESCRIPTOR_64 * PRTL_VERIFIER_DLL_DESCRIPTOR_64
UCHAR ExceptionActive
Definition: wddefs.h:880
QWORD GsBase
Definition: wddefs.h:911
WORD Ss0
Definition: wddefs.h:755
M128A Xmm13
Definition: wddefs.h:1511
uint16_t WORD
Definition: intro_types.h:48
QWORD LastBranchFromRip
Definition: wddefs.h:1522
QWORD P6Home
Definition: wddefs.h:1452
DWORD AuditLoaderIntegrityContinuity
Definition: wddefs.h:1601
QWORD ExceptionAddress
The address at which the exception was generated.
Definition: wddefs.h:1050
QWORD SizeOfFastIoDispatch
Definition: wddefs.h:317
struct _RTL_VERIFIER_DLL_DESCRIPTOR_32 RTL_VERIFIER_DLL_DESCRIPTOR_32
Verifier provider initialization structures for 32-bit processes.
DWORD ExceptionCode
The code generated by hardware, or the one used with RaiseException(), or DBG_CONTROL_C.
Definition: wddefs.h:1046
XSAVE_FORMAT XMM_SAVE_AREA32
Definition: wddefs.h:1423
DWORD HardwareEsp
Definition: wddefs.h:835
DWORD FastIoUnlockSingle
Definition: wddefs.h:289
struct _OBJECT_HEADER64 * POBJECT_HEADER64
QWORD Chain
Gva to the next _OBJECT_DIRECTORY_ENTRY, may be NULL.
Definition: wddefs.h:1349
DWORD DisallowWin32kSystemCalls
Definition: wddefs.h:1586
union _WIN_MITIGATION_FLAGS2 WIN_MITIGATION_FLAGS2
Mitigation flags.
QWORD Object
Pointer to the object, may be NULL.
Definition: wddefs.h:1350
DWORD ContextFlags
Definition: wddefs.h:1532
DWORD HandleCount
Definition: wddefs.h:356
DWORD Reserved5
Definition: wddefs.h:690
enum _SECURITY_IMPERSONATION_LEVEL * PSECURITY_IMPERSONATION_LEVEL
struct _FAST_IO_DISPATCH64 * PFAST_IO_DISPATCH64
struct _UNICODE_STRING64 UNICODE_STRING64
The Windows UNICODE_STRING structure used for 64-bit guests.
POOL_HEADER32 Header32
Definition: wddefs.h:462
_WIN_SOCK_STATE
The states in which a Windows socket can be in.
Definition: wddefs.h:1750
Ignored by introcore.
Definition: wddefs.h:1181
QWORD Reserved7
Definition: wddefs.h:718
QWORD LastExceptionToRip
Definition: wddefs.h:961
struct _KI_IO_ACCESS_MAP KI_IO_ACCESS_MAP
DWORD DbgEbp
Definition: wddefs.h:798
DWORD EnableExportAddressFilter
Definition: wddefs.h:1618
The _POOL_HEADER structure used by 32-bit guests.
Definition: wddefs.h:403
QWORD P2Home
Definition: wddefs.h:853
QWORD FastIoReadCompressed
Definition: wddefs.h:337
WORD Reserved3
Definition: wddefs.h:772
DWORD SegFs
Definition: wddefs.h:1544
WORD Reserved3
Definition: wddefs.h:1412
DWORD AuditExportAddressFilterPlus
Definition: wddefs.h:1621
QWORD FastIoCheckIfPossible
Definition: wddefs.h:318
Memory used by video drivers to transfer data between the GPU and a process.
Definition: wddefs.h:1196
DWORD MxCsr
Definition: wddefs.h:822
DWORD FastIoReadCompressed
Definition: wddefs.h:302
_KTHREAD_STATE
Thread scheduling states.
Definition: wddefs.h:1269
QWORD Dr6
Definition: wddefs.h:1469
QWORD MdlReadCompleteCompressed
Definition: wddefs.h:339
struct _FAST_IO_DISPATCH64 FAST_IO_DISPATCH64
The _FAST_IO_DISPATCH structure used by 64-bit guests.
BYTE TagWord
Definition: wddefs.h:1404
Mitigation flags.
Definition: wddefs.h:1614
DWORD DriverStartIo
Definition: wddefs.h:247
DWORD DisableDynamicCode
Definition: wddefs.h:1582
DWORD SessionId
Definition: wddefs.h:700
DWORD Eax
Definition: wddefs.h:818
QWORD R8
Definition: wddefs.h:898
union _POOL_TRACKER_BIG_PAGES * PPOOL_TRACKER_BIG_PAGES
QWORD MdlWriteCompleteCompressed
Definition: wddefs.h:340
FLOATING_SAVE_AREA FloatSave
Definition: wddefs.h:1541
BYTE PreviousIrql
Definition: wddefs.h:864
DWORD AtlThunkSListPtr32
Definition: wddefs.h:694
QWORD Sid
Pointer to a _SID structure.
Definition: wddefs.h:592
QWORD EntryPointActivationContext
Definition: wddefs.h:219
BYTE PreviousPreviousMode
Definition: wddefs.h:819
FLOATING_SAVE_AREA * PFLOATING_SAVE_AREA
Definition: wddefs.h:1440
DWORD BlockSize
Definition: wddefs.h:440
struct _POOL_TRACKER_BIG_PAGES32 POOL_TRACKER_BIG_PAGES32
WORD StatusWord
Definition: wddefs.h:1403
UINT16 Fill3
Definition: wddefs.h:1020
DWORD EnableModuleTamperingProtectionNoInherit
Definition: wddefs.h:1603
QWORD PostProcessInitRoutine
32-bit pointer to a PS_POST_PROCESS_INIT_ROUTINE
Definition: wddefs.h:723
UCHAR Logging
Definition: wddefs.h:1014
QWORD SecurityDescriptor
Definition: wddefs.h:396
enum _WIN_SOCK_STATE WIN_SOCK_STATE
The states in which a Windows socket can be in.
QWORD DriverInit
Definition: wddefs.h:269
Models a LIST_ENTRY structure used by 32-bit Windows guests.
Definition: wddefs.h:153
QWORD Rdi
Definition: wddefs.h:1479
QWORD Dr7
Definition: wddefs.h:950
WORD Reserved2
Definition: wddefs.h:770
DWORD AuditBlockNonMicrosoftBinaries
Definition: wddefs.h:1598
WORD SegGs
Definition: wddefs.h:1461
WORD Ds
Definition: wddefs.h:775
QWORD _pad0
Definition: wddefs.h:1776
UNICODE_STRING64 Name
Definition: wddefs.h:1304
struct _M128A * PM128A
M128A Xmm0
Definition: wddefs.h:1498
LIST_ENTRY32 InLoadOrderLinks
Definition: wddefs.h:174
UCHAR TypeIndex
Definition: wddefs.h:361
DWORD HardwareSegSs
Definition: wddefs.h:836
QWORD FastIoUnlockSingle
Definition: wddefs.h:324
DWORD Buffer
The guest virtual address at which the wide-character string is located.
Definition: wddefs.h:129
QWORD P5Home
Definition: wddefs.h:1451
QWORD AcquireForModWrite
Definition: wddefs.h:332
DWORD EnableModuleTamperingProtection
Definition: wddefs.h:1602
UNICODE_STRING32 ImagePathName
Definition: wddefs.h:612
QWORD MdlWriteComplete
Definition: wddefs.h:336
DWORD AuditDisableDynamicCode
Definition: wddefs.h:1585
union _POOL_HEADER POOL_HEADER
QWORD FastIoDeviceControl
Definition: wddefs.h:327
DWORD ContextFlags
Definition: wddefs.h:1454
The _FAST_IO_DISPATCH structure used by 32-bit guests.
Definition: wddefs.h:280
struct _LDR_DATA_TABLE_ENTRY64 LDR_DATA_TABLE_ENTRY64
The _LDR_DATA_TABLE_ENTRY structure used by 64-bit guests.
XSAVE_FORMAT * PXMM_SAVE_AREA32
Definition: wddefs.h:1423
DWORD _Reserved1
Definition: wddefs.h:259
Definition: wddefs.h:734
DWORD ReleaseForModWrite
Definition: wddefs.h:307
DWORD Dr7
Definition: wddefs.h:811
DWORD Ecx
Definition: wddefs.h:1552
struct _SID_AND_ATTRIBUTES64 * PSID_AND_ATTRIBUTES64
DWORD _Rserved1
Definition: wddefs.h:142
DWORD HardwareDatabase
Definition: wddefs.h:244
M128A Xmm8
Definition: wddefs.h:1506
DWORD Dr6
Definition: wddefs.h:810
UNICODE_STRING32 DriverPath
Definition: wddefs.h:180
DWORD SegDs
Definition: wddefs.h:815
DWORD PoolIndex
Definition: wddefs.h:439
DWORD ProhibitLowILImageMap
Definition: wddefs.h:1595
UNICODE_STRING64 Name
The object name.
Definition: wddefs.h:1376
struct _POOL_HEADER32 POOL_HEADER32
The _POOL_HEADER structure used by 32-bit guests.
DWORD AuditProhibitRemoteImageMap
Definition: wddefs.h:1594
UINT16 SegEs
Definition: wddefs.h:970
struct _OBJECT_DIRECTORY_ENTRY32 OBJECT_DIRECTORY_ENTRY32
An OBJECT_DIRECTORY_ENTRY64 structure used by 32-bit guests.
DWORD EntryPointActivationContext
Definition: wddefs.h:190
union _POOL_TRACKER_BIG_PAGES POOL_TRACKER_BIG_PAGES
DWORD TotalNumberOfObjects
Definition: wddefs.h:1330
DWORD Esi
Definition: wddefs.h:767
DWORD Eip
Definition: wddefs.h:832
DWORD PreviousSize
Definition: wddefs.h:438
QWORD ExceptionRecord
For nested exceptions, will point to the next exception record.
Definition: wddefs.h:1049
UINT16 MaximumLength
The size, in bytes, allocated for Buffer.
Definition: wddefs.h:125
UNICODE_STRING32 Name
Definition: wddefs.h:1327
An OBJECT_DIRECTORY_ENTRY64 structure used by 32-bit guests.
Definition: wddefs.h:1360
DWORD SegGs
Definition: wddefs.h:813
WORD * Buffer
Definition: wddefs.h:110
QWORD Local
Definition: wddefs.h:1775
DWORD MdlReadComplete
Definition: wddefs.h:299
DWORD Ebx
Definition: wddefs.h:1550
QWORD AtlThunkSListPtr
Definition: wddefs.h:715
struct _RTL_USER_PROCESS_PARAMETERS64 * PRTL_USER_PROCESS_PARAMETERS64
QWORD P2Home
Definition: wddefs.h:1448
QWORD LastExceptionFromRip
Definition: wddefs.h:962
DWORD Flink
Definition: wddefs.h:155
M128A Xmm0
Definition: wddefs.h:922
UCHAR TraceFlags
Definition: wddefs.h:385
DWORD Ecx
Definition: wddefs.h:817
QWORD ProcessParameters
64-bit pointer to a _RTL_USER_PROCESS_PARAMETERS structure
Definition: wddefs.h:713
An _KEXCEPTION_FRAME structure used by 64-bit guests.
Definition: wddefs.h:1078
QWORD DriverSection
Definition: wddefs.h:264
DWORD DriverSize
Definition: wddefs.h:240
Verifier provider initialization structures for 64-bit processes.
Definition: wddefs.h:1696
DWORD AcquireFileForNtCreateSection
Definition: wddefs.h:293
DWORD HighWaterNumberOfObjects
Definition: wddefs.h:1309
QWORD LastBranchToRip
Definition: wddefs.h:959
LIST_ENTRY64 TypeList
Definition: wddefs.h:1303
DWORD EFlags
Definition: wddefs.h:1558
DWORD ReleaseForCcFlush
Definition: wddefs.h:309
QWORD LastBranchToRip
Definition: wddefs.h:1521
WORD SegFs
Definition: wddefs.h:1460
DWORD ProhibitRemoteImageMap
Definition: wddefs.h:1593
struct _KTSS KTSS
QWORD Rax
Definition: wddefs.h:895
M128A Xmm11
Definition: wddefs.h:1509
_VAD_TYPE
The types of a _MMVAD structure.
Definition: wddefs.h:1178
QWORD QuotaBlockCharged
Definition: wddefs.h:393
Verifier provider initialization structures for 64-bit processes.
Definition: wddefs.h:1725
DWORD Dr6
Definition: wddefs.h:1538
UCHAR TypeIndex
Definition: wddefs.h:384
QWORD Dr2
Definition: wddefs.h:1467
Models a LIST_ENTRY structure used by 64-bit Windows guests.
Definition: wddefs.h:162
union _LOCAL_ADDRESS * PLOCAL_ADDRESS
struct _M128A M128A
The Windows UNICODE_STRING structure used for 32-bit guests.
Definition: wddefs.h:120
DWORD EnableFilteredWin32kAPIs
Definition: wddefs.h:1588
QWORD Dr3
Definition: wddefs.h:948
DWORD AtlThunkSListPtr32
Definition: wddefs.h:720
DWORD StackRandomizationDisabled
Definition: wddefs.h:1580
WORD Es
Definition: wddefs.h:769
struct _POOL_HEADER64 POOL_HEADER64
The _POOL_HEADER structure used by 64-bit guests.
WORD PoolTagHash
Definition: wddefs.h:455
QWORD Rax
Definition: wddefs.h:1472
DWORD ObjectCreateInfo
Definition: wddefs.h:365
QWORD P1Home
Definition: wddefs.h:1447
QWORD DefaultObject
Definition: wddefs.h:1305
DWORD Ecx
Definition: wddefs.h:762
DWORD EnableImportAddressFilter
Definition: wddefs.h:1628
Context Frame for 32-bit guests.
Definition: wddefs.h:1530
struct _PEB32 PEB32
This is the structure as documented in winternl.h.
DWORD DisallowStrippedImages
Definition: wddefs.h:1577
union _WIN_MITIGATION_FLAGS WIN_MITIGATION_FLAGS
Mitigation flags.
struct _LDR_DATA_TABLE_ENTRY32 * PLDR_DATA_TABLE_ENTRY32
DWORD Fill2
Definition: wddefs.h:1017
LIST_ENTRY32 InInitializationOrderLinks
Definition: wddefs.h:176
The _DRIVER_OBJECT structure used by 32-bit guests.
Definition: wddefs.h:233
M128A Xmm12
Definition: wddefs.h:1510
QWORD Rbp
Definition: wddefs.h:1477
DWORD Attributes
A combination of SE_GROUP_* values.
Definition: wddefs.h:593
DWORD AuditDisallowWin32kSystemCalls
Definition: wddefs.h:1587
The _LDR_DATA_TABLE_ENTRY structure used by 64-bit guests.
Definition: wddefs.h:201
DWORD AcquireForModWrite
Definition: wddefs.h:297
QWORD Rip
Definition: wddefs.h:1489
UNICODE_STRING64 ImagePathName
Definition: wddefs.h:623
Definition: wddefs.h:1272
#define WIN_POOL_HEADER_SIZE64
The size of a pool header on 64-bit Windows.
Definition: wddefs.h:467
QWORD R11
Definition: wddefs.h:1483
DWORD _pad1
Definition: wddefs.h:1785
WORD LDT
Definition: wddefs.h:781
M128A Xmm2
Definition: wddefs.h:1500
DWORD Dr1
Definition: wddefs.h:1535
M128A Xmm15
Definition: wddefs.h:1513
UCHAR InfoMask
Definition: wddefs.h:386
struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR_32 RTL_VERIFIER_PROVIDER_DESCRIPTOR_32
Verifier provider initialization structures for 32-bit processes.
union _ADDRINFO ADDRINFO
DWORD Ulong1
Definition: wddefs.h:444
struct _FAST_IO_DISPATCH32 * PFAST_IO_DISPATCH32
STATIC_ASSERT(sizeof(POOL_HEADER32)==WIN_POOL_HEADER_SIZE32, "Wrong size for POOL_HEADER32!")
WORD DataSelector
Definition: wddefs.h:1411
An _OBJECT_TYPE structure used by 32-bit guests.
Definition: wddefs.h:1324
DWORD PostProcessInitRoutine
32-bit pointer to a PS_POST_PROCESS_INIT_ROUTINE
Definition: wddefs.h:697
BYTE BeingDebugged
Definition: wddefs.h:683
An _OBJECT_HEADER_NAME_INFO structure used by 32-bit guests.
Definition: wddefs.h:1383
_KWAIT_REASON
The waiting status of the threads.
Definition: wddefs.h:1220
DWORD NumberParameters
The number of valid entries inside the ExceptionInformation array.
Definition: wddefs.h:1051
WORD AllocatorBackTraceIndex
Definition: wddefs.h:454
struct _LIST_ENTRY64 * PLIST_ENTRY64
struct _RTL_DYNAMIC_HASH_TABLE32 * PRTL_DYNAMIC_HASH_TABLE32
QWORD DebugControl
Definition: wddefs.h:1520
POOL_HEADER64 Header64
Definition: wddefs.h:463
DWORD SecurityDescriptor
Definition: wddefs.h:366
DWORD ExtensionPointDisable
Definition: wddefs.h:1581
DWORD FastIoCheckIfPossible
Definition: wddefs.h:283
struct _KTRAP_FRAME64 * PKTRAP_FRAME64
union _WIN_MITIGATION_FLAGS2 * PWIN_MITIGATION_FLAGS2
DWORD ControlFlowGuardExportSuppressionEnabled
Definition: wddefs.h:1575
DWORD Reserved7
Definition: wddefs.h:692
struct _CONTEXT32 CONTEXT32
Context Frame for 32-bit guests.
DWORD BlockSize
Definition: wddefs.h:411
A _UNICODE_STRING structure as defined by Windows.
Definition: wddefs.h:106
This is the structure as documented in ntddk.h.
Definition: wddefs.h:655
struct _PEB32 * PPEB32
struct _OBJECT_DIRECTORY_ENTRY32 * POBJECT_DIRECTORY_ENTRY32
WORD ErrorOpcode
Definition: wddefs.h:1406
DWORD FastIoQueryBasicInfo
Definition: wddefs.h:286
DWORD ErrorOffset
Definition: wddefs.h:1407
struct _KTRAP_FRAME64 KTRAP_FRAME64
QWORD Flink
Definition: wddefs.h:164
UINT16 SegDs
Definition: wddefs.h:969
struct _XSAVE_FORMAT * PXSAVE_FORMAT
DWORD Ebx
Definition: wddefs.h:764
UINT16 Length
The length, in bytes, of the string in Buffer, not including the NULL terminator, if any...
Definition: wddefs.h:123
QWORD FastIoQueryStandardInfo
Definition: wddefs.h:322
QWORD Rbp
Definition: wddefs.h:994
struct _CONTEXT64 CONTEXT64
Context Frame for 64-bit guests.
unsigned long long QWORD
Definition: intro_types.h:53
QWORD DriverSize
Definition: wddefs.h:263
QWORD FastIoDispatch
Definition: wddefs.h:268
QWORD TimeStampCKCL
Definition: wddefs.h:938
An _EXCEPTION_RECORD structure used by 64-bit guests.
Definition: wddefs.h:1063
The type of an allocation used by Address Windowing Extension. Ignored by introcore.
Definition: wddefs.h:1186
DWORD SegCs
Definition: wddefs.h:1557
DWORD Dr7
Definition: wddefs.h:1539
DWORD Reserved6
Definition: wddefs.h:691
DWORD Esi
Definition: wddefs.h:1549
QWORD R15
Definition: wddefs.h:1487
QWORD ObjectCreateInfo
Definition: wddefs.h:392
DWORD SegDs
Definition: wddefs.h:1546
QWORD Rsp
Definition: wddefs.h:1476
QWORD Rsi
Definition: wddefs.h:1478
M128A Xmm1
Definition: wddefs.h:923
WORD Fs
Definition: wddefs.h:777
DWORD PreviousSize
Definition: wddefs.h:409
struct _SID_AND_ATTRIBUTES32 SID_AND_ATTRIBUTES32
DWORD Directory
Pointer to the _OBJECT_DIRECTORY that owns this.
Definition: wddefs.h:1385
DWORD Ebp
Definition: wddefs.h:1555
M128A Xmm5
Definition: wddefs.h:1503
DWORD AuditImportAddressFilter
Definition: wddefs.h:1629
DWORD AuditFilteredWin32kAPIs
Definition: wddefs.h:1589
QWORD FastIoUnlockAll
Definition: wddefs.h:325
WORD Backlink
Definition: wddefs.h:752
DWORD DriverStart
Definition: wddefs.h:239
M128A Xmm4
Definition: wddefs.h:926
M128A Xmm10
Definition: wddefs.h:1508
DWORD SegSs
Definition: wddefs.h:1560
struct _FLOATING_SAVE_AREA FLOATING_SAVE_AREA
Format of data for (F)XSAVE/(F)XRSTOR instruction.
struct _UNICODE_STRING UNICODE_STRING
A _UNICODE_STRING structure as defined by Windows.
QWORD PointerCount
Definition: wddefs.h:375
The type of an allocation that uses large pages.
Definition: wddefs.h:1194
DWORD Reserved8
Definition: wddefs.h:693
QWORD TrapFrame
Definition: wddefs.h:978
DWORD HighEntropyASLREnabled
Definition: wddefs.h:1579
union _ADDRINFO * PADDRINFO
unsigned char UCHAR
Definition: intro_types.h:55
DWORD Fill4
Definition: wddefs.h:1021
struct _RTL_DYNAMIC_HASH_TABLE64 * PRTL_DYNAMIC_HASH_TABLE64
enum _KTHREAD_STATE KTHREAD_STATE
Thread scheduling states.
DWORD ReleaseFileForNtCreateSection
Definition: wddefs.h:294
struct _EXCEPTION_RECORD64 * PEXCEPTION_RECORD64
QWORD FastIoUnlockAllByKey
Definition: wddefs.h:326
struct _FAST_IO_DISPATCH32 FAST_IO_DISPATCH32
The _FAST_IO_DISPATCH structure used by 32-bit guests.
DWORD TempEsp
Definition: wddefs.h:804
DWORD PoolType
Definition: wddefs.h:412
struct _OBJECT_HEADER32 OBJECT_HEADER32
The _OBJECT_HEADER32 structure used by 32-bit guests.
DWORD Edi
Definition: wddefs.h:768
WORD Reserved8
Definition: wddefs.h:782
The _LDR_DATA_TABLE_ENTRY structure used by 32-bit guests.
Definition: wddefs.h:172
struct _OBJECT_HEADER32 * POBJECT_HEADER32
DWORD V86Es
Definition: wddefs.h:838
struct _RTL_DYNAMIC_HASH_TABLE64 RTL_DYNAMIC_HASH_TABLE64
This is the structure as documented in ntddk.h.
struct _UNICODE_STRING32 UNICODE_STRING32
The Windows UNICODE_STRING structure used for 32-bit guests.
struct _OBJECT_TYPE32 OBJECT_TYPE32
An _OBJECT_TYPE structure used by 32-bit guests.
DWORD AcquireForCcFlush
Definition: wddefs.h:308
QWORD DriverUnload
Definition: wddefs.h:271
struct _DRIVER_OBJECT32 * PDRIVER_OBJECT32
struct _OBJECT_HEADER64 OBJECT_HEADER64
The _OBJECT_HEADER32 structure used by 64-bit guests.
union _WIN_MITIGATION_FLAGS * PWIN_MITIGATION_FLAGS
DWORD DisableDynamicCodeAllowOptOut
Definition: wddefs.h:1583
DWORD NextToFree
Definition: wddefs.h:357
WORD SegSs
Definition: wddefs.h:1462
DWORD PointerCount
Definition: wddefs.h:352
WORD Reserved0
Definition: wddefs.h:753
DWORD ProcessParameters
32-bit pointer to a _RTL_USER_PROCESS_PARAMETERS structure
Definition: wddefs.h:687
DWORD SignatureMitigationOptIn
Definition: wddefs.h:1597
DWORD AuditBlockNonMicrosoftBinariesAllowStore
Definition: wddefs.h:1599
M128A Xmm14
Definition: wddefs.h:1512
QWORD Rbx
Definition: wddefs.h:1475
DWORD ErrCode
Definition: wddefs.h:831
DWORD DbgEip
Definition: wddefs.h:799
XMM_SAVE_AREA32 FltSave
Definition: wddefs.h:1493
QWORD R8
Definition: wddefs.h:1480
struct _XSAVE_FORMAT XSAVE_FORMAT
Format of data for (F)XSAVE/(F)XRSTOR instruction for 32-bit guests.
QWORD Dr7
Definition: wddefs.h:1470
DWORD ReferenceCount
Reference count.
Definition: wddefs.h:1377
struct _SID_AND_ATTRIBUTES32 * PSID_AND_ATTRIBUTES32
struct _OBJECT_NAME32 * POBJECT_NAME32
QWORD R13
Definition: wddefs.h:1485
unsigned long long UINT64
Definition: intro_types.h:40
DWORD PoolTag
Definition: wddefs.h:447
QWORD Rdi
Definition: wddefs.h:986
QWORD ExceptionFrame
Definition: wddefs.h:1007
struct _OBJECT_TYPE64 * POBJECT_TYPE64
DWORD Edx
Definition: wddefs.h:1551
UCHAR InfoMask
Definition: wddefs.h:363
DWORD AtlThunkSListPtr
Definition: wddefs.h:689
enum _KWAIT_REASON KWAIT_REASON
The waiting status of the threads.
struct _OBJECT_TYPE32 * POBJECT_TYPE32
DWORD FastIoUnlockAllByKey
Definition: wddefs.h:291
WORD SegEs
Definition: wddefs.h:1459
UCHAR TraceFlags
Definition: wddefs.h:362
The Windows UNICODE_STRING structure used for 64-bit guests.
Definition: wddefs.h:136
DWORD SegEs
Definition: wddefs.h:1545
WORD ControlWord
Definition: wddefs.h:1402
QWORD HandleCount
Definition: wddefs.h:379
DWORD MdlReadCompleteCompressed
Definition: wddefs.h:304
struct _EXCEPTION_RECORD32 EXCEPTION_RECORD32
An _EXCEPTION_RECORD structure used by 64-bit guests.
WORD Reserved6
Definition: wddefs.h:778
QWORD TimeStampKlog
Definition: wddefs.h:1008
struct _SID_AND_ATTRIBUTES64 SID_AND_ATTRIBUTES64
QWORD Ldr
64-bit pointer to a _PEB_LDR_DATA structure
Definition: wddefs.h:712
WORD Reserved1
Definition: wddefs.h:756
uint32_t DWORD
Definition: intro_types.h:49
QWORD Rdx
Definition: wddefs.h:897
BYTE Logging
Definition: wddefs.h:802
QWORD Rcx
Definition: wddefs.h:896
DWORD DeviceObject
Definition: wddefs.h:237
DWORD Ldr
32-bit pointer to a _PEB_LDR_DATA structure
Definition: wddefs.h:686
DWORD PreferSystem32Images
Definition: wddefs.h:1592
DWORD PoolIndex
Definition: wddefs.h:410
LIST_ENTRY32 TypeList
Definition: wddefs.h:1326
QWORD Dr1
Definition: wddefs.h:1466
None. Normal allocations have this type.
Definition: wddefs.h:1180
M128A Xmm7
Definition: wddefs.h:1505
struct _OBJECT_DIRECTORY_ENTRY64 * POBJECT_DIRECTORY_ENTRY64
QWORD AcquireForCcFlush
Definition: wddefs.h:343
DWORD V86Fs
Definition: wddefs.h:840
DWORD Reserved6
Definition: wddefs.h:717
union _LOCAL_ADDRESS LOCAL_ADDRESS
QWORD FastIoQueryBasicInfo
Definition: wddefs.h:321
#define WIN_POOL_HEADER_SIZE32
The size of a pool header on 32-bit Windows.
Definition: wddefs.h:466
struct _LDR_DATA_TABLE_ENTRY32 LDR_DATA_TABLE_ENTRY32
The _LDR_DATA_TABLE_ENTRY structure used by 32-bit guests.
DWORD SizeOfFastIoDispatch
Definition: wddefs.h:282
Verifier provider initialization structures for 32-bit processes.
Definition: wddefs.h:1685
QWORD MdlReadComplete
Definition: wddefs.h:334
M128A Xmm4
Definition: wddefs.h:1502
DWORD Edx
Definition: wddefs.h:763
WORD MaximumLength
The size, in bytes, allocated for Buffer.
Definition: wddefs.h:141
QWORD ErrorCode
Definition: wddefs.h:1006
DWORD AuditNonSystemFontLoading
Definition: wddefs.h:1591
DWORD DisableNonSystemFonts
Definition: wddefs.h:1590
_POOL_TYPE
The type of a pool allocation.
Definition: wddefs.h:488
WORD SegDs
Definition: wddefs.h:1458
DWORD AuditExportAddressFilter
Definition: wddefs.h:1619
QWORD Dr0
Definition: wddefs.h:1465
DWORD LoaderIntegrityContinuityEnabled
Definition: wddefs.h:1600
struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR_64 RTL_VERIFIER_PROVIDER_DESCRIPTOR_64
Verifier provider initialization structures for 64-bit processes.
DWORD Dr2
Definition: wddefs.h:808
DWORD EnableRopCallerCheck
Definition: wddefs.h:1624
DWORD ForceRelocateImages
Definition: wddefs.h:1578
LIST_ENTRY64 InMemoryOrderLinks
Definition: wddefs.h:204
DWORD HighWaterNumberOfHandles
Definition: wddefs.h:1333
DWORD MxCsr
Definition: wddefs.h:1413
QWORD Directory
Pointer to the _OBJECT_DIRECTORY that owns this.
Definition: wddefs.h:1375
UNICODE_STRING64 DriverPath
Definition: wddefs.h:209
DWORD V86Gs
Definition: wddefs.h:841
The _OBJECT_HEADER32 structure used by 64-bit guests.
Definition: wddefs.h:373
struct _LIST_ENTRY32 LIST_ENTRY32
Models a LIST_ENTRY structure used by 32-bit Windows guests.
UNICODE_STRING32 DriverName
Definition: wddefs.h:181
Definition: wddefs.h:750
UNICODE_STRING64 CommandLine
Definition: wddefs.h:624
QWORD Dr2
Definition: wddefs.h:947
struct _PEB64 PEB64
This is the structure as documented in winternl.h.
QWORD ReleaseFileForNtCreateSection
Definition: wddefs.h:329
struct _OBJECT_TYPE64 OBJECT_TYPE64
An _OBJECT_TYPE structure used by 64-bit guests.
The _FAST_IO_DISPATCH structure used by 64-bit guests.
Definition: wddefs.h:315
QWORD DeviceObject
Definition: wddefs.h:260
DWORD Eax
Definition: wddefs.h:761
UINT16 MaximumLength
Definition: wddefs.h:109
DWORD Reserved8
Definition: wddefs.h:719
UCHAR FaultIndicator
Definition: wddefs.h:870
DWORD __unusedAlignment
Definition: wddefs.h:1052
WORD Cs
Definition: wddefs.h:771
struct _KEXCEPTION_FRAME64 * PKEXCEPTION_FRAME64
struct _RTL_USER_PROCESS_PARAMETERS32 * PRTL_USER_PROCESS_PARAMETERS32
union _POOL_HEADER * PPOOL_HEADER
This is the structure as documented in winternl.h.
Definition: wddefs.h:608
WORD ErrorSelector
Definition: wddefs.h:1408
DWORD ExceptionAddress
Definition: wddefs.h:1068
DWORD Remote
Definition: wddefs.h:1786
DWORD Dr3
Definition: wddefs.h:809
BYTE EntropyQueueDpc
Definition: wddefs.h:820
QWORD R10
Definition: wddefs.h:900
enum _POOL_TYPE POOL_TYPE
The type of a pool allocation.
QWORD Dr3
Definition: wddefs.h:1468
DWORD DbgArgMark
Definition: wddefs.h:800
DWORD TotalNumberOfHandles
Definition: wddefs.h:1308
DWORD Eip
Definition: wddefs.h:1556
DWORD SessionId
Definition: wddefs.h:726
enum _VAD_TYPE VAD_TYPE
The types of a _MMVAD structure.
struct _DRIVER_OBJECT64 * PDRIVER_OBJECT64
DWORD Object
Pointer to the object, may be NULL.
Definition: wddefs.h:1363
struct _RTL_VERIFIER_DLL_DESCRIPTOR_64 RTL_VERIFIER_DLL_DESCRIPTOR_64
Verifier provider initialization structures for 64-bit processes.
QWORD Dr6
Definition: wddefs.h:949
struct _RTL_VERIFIER_DLL_DESCRIPTOR_32 * PRTL_VERIFIER_DLL_DESCRIPTOR_32
DWORD DataOffset
Definition: wddefs.h:1410
BYTE PreviousMode
Definition: wddefs.h:863
QWORD LastExceptionFromRip
Definition: wddefs.h:1524
DWORD DriverExtension
Definition: wddefs.h:242
UINT16 Length
Definition: wddefs.h:108
DWORD Ebp
Definition: wddefs.h:766
An _OBJECT_HEADER_NAME_INFO structure used by 64-bit guests.
Definition: wddefs.h:1373
UNICODE_STRING32 CommandLine
Definition: wddefs.h:613
UINT16 SegFs
Definition: wddefs.h:971
Verifier provider initialization structures for 32-bit processes.
Definition: wddefs.h:1707
UNICODE_STRING64 DriverName
Definition: wddefs.h:210
QWORD FastIoQueryOpen
Definition: wddefs.h:341
DWORD Local
Definition: wddefs.h:1784
DWORD EFlags
Definition: wddefs.h:1016
struct _PEB64 * PPEB64
M128A Xmm2
Definition: wddefs.h:924
DWORD Dr0
Definition: wddefs.h:1534
struct _RTL_USER_PROCESS_PARAMETERS64 RTL_USER_PROCESS_PARAMETERS64
This is the structure as documented in winternl.h.
DWORD ControlFlowGuardEnabled
Definition: wddefs.h:1574
WORD SegCs
Definition: wddefs.h:1457
The type of an allocation that specified the MEM_WRITE_WATCH VirtualAlloc flag.
Definition: wddefs.h:1190
DWORD Edi
Definition: wddefs.h:826
BYTE BeingDebugged
Definition: wddefs.h:709
uint16_t UINT16
Definition: intro_types.h:38
DWORD MxCsr
Definition: wddefs.h:886
QWORD P5
Definition: wddefs.h:856
DWORD PrepareMdlWrite
Definition: wddefs.h:300
QWORD FastIoQueryNetworkOpenInfo
Definition: wddefs.h:331
QWORD VectorControl
Definition: wddefs.h:1518
WORD Length
The length, in bytes, of the string in Buffer, not including the NULL terminator, if any...
Definition: wddefs.h:139
struct _RTL_DYNAMIC_HASH_TABLE32 RTL_DYNAMIC_HASH_TABLE32
This is the structure as documented in ntddk.h.
DWORD Dr1
Definition: wddefs.h:807
QWORD DriverStartIo
Definition: wddefs.h:270
DWORD DriverInit
Definition: wddefs.h:246
UINT16 SegSs
Definition: wddefs.h:1019
DWORD MxCsr_Mask
Definition: wddefs.h:1414
M128A Xmm9
Definition: wddefs.h:1507
M128A Xmm5
Definition: wddefs.h:927
M128A Xmm1
Definition: wddefs.h:1499
DWORD FastIoWriteCompressed
Definition: wddefs.h:303
QWORD InAddr
Definition: wddefs.h:1809
QWORD R14
Definition: wddefs.h:1486
QWORD P3Home
Definition: wddefs.h:1449
QWORD Dr0
Definition: wddefs.h:945
DWORD Edi
Definition: wddefs.h:1548
An OBJECT_DIRECTORY_ENTRY64 structure used by 64-bit guests.
Definition: wddefs.h:1347
DWORD DriverUnload
Definition: wddefs.h:248
DWORD Attributes
A combination of SE_GROUP_* values.
Definition: wddefs.h:602
DWORD Esp
Definition: wddefs.h:765
DWORD Esi
Definition: wddefs.h:827
An _OBJECT_TYPE structure used by 64-bit guests.
Definition: wddefs.h:1301
DWORD Esp0
Definition: wddefs.h:754
DWORD Dr0
Definition: wddefs.h:806
WORD Gs
Definition: wddefs.h:779
DWORD ExceptionFlags
Definition: wddefs.h:1047
QWORD ReleaseForCcFlush
Definition: wddefs.h:344
WORD PoolTagHash
Definition: wddefs.h:424
DWORD V86Ds
Definition: wddefs.h:839
This is the structure as documented in winternl.h.
Definition: wddefs.h:706
DWORD ExceptionRecord
Definition: wddefs.h:1067
QWORD R10
Definition: wddefs.h:1482
DWORD Dr3
Definition: wddefs.h:1537
UINT16 SegCs
Definition: wddefs.h:1012
QWORD R11
Definition: wddefs.h:901
#define MAXIMUM_SUPPORTED_EXTENSION
Definition: wddefs.h:1395
DWORD FastIoDispatch
Definition: wddefs.h:245
struct _LIST_ENTRY64 LIST_ENTRY64
Models a LIST_ENTRY structure used by 64-bit Windows guests.
DWORD ExceptionFlags
Definition: wddefs.h:1066
LIST_ENTRY32 HashLinks
Definition: wddefs.h:185
UINT16 SegGs
Definition: wddefs.h:972
struct _DRIVER_OBJECT64 DRIVER_OBJECT64
The _DRIVER_OBJECT structure used by 64-bit guests.
UNICODE_STRING32 DriverName
Definition: wddefs.h:243
QWORD Reserved5
Definition: wddefs.h:716
POWER_ACTION
The _POWER_ACTION enum values used by the Windows kernel.
Definition: wddefs.h:1657
QWORD Rsi
Definition: wddefs.h:987
#define EXCEPTION_MAXIMUM_PARAMETERS
Definition: wddefs.h:1035
DWORD HighWaterNumberOfObjects
Definition: wddefs.h:1332
DWORD EFlags
Definition: wddefs.h:1463
The _OBJECT_HEADER32 structure used by 32-bit guests.
Definition: wddefs.h:350
DWORD FastIoQueryOpen
Definition: wddefs.h:306
struct _KI_IO_ACCESS_MAP * PKI_IO_ACCESS_MAP
M128A Xmm3
Definition: wddefs.h:1501
enum _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL
QWORD ContextRecord
Definition: wddefs.h:937
DWORD SegGs
Definition: wddefs.h:1543
LIST_ENTRY64 InInitializationOrderLinks
Definition: wddefs.h:205
M128A Xmm3
Definition: wddefs.h:925
DWORD FastIoUnlockAll
Definition: wddefs.h:290
QWORD Rbx
Definition: wddefs.h:985
Context Frame for 64-bit guests.
Definition: wddefs.h:1445
UNICODE_STRING32 Name
The object name.
Definition: wddefs.h:1386
DWORD Dr2
Definition: wddefs.h:1536
struct _OBJECT_NAME64 OBJECT_NAME64
An _OBJECT_HEADER_NAME_INFO structure used by 64-bit guests.
QWORD Dr1
Definition: wddefs.h:946
This is the structure as documented in winternl.h.
Definition: wddefs.h:619
DWORD Chain
Gva to the next _OBJECT_DIRECTORY_ENTRY, may be NULL.
Definition: wddefs.h:1362
DWORD Esp
Definition: wddefs.h:1559
DWORD FastIoQueryStandardInfo
Definition: wddefs.h:287
DWORD FastIoDeviceControl
Definition: wddefs.h:292
struct _OBJECT_NAME64 * POBJECT_NAME64
DWORD MxCsr
Definition: wddefs.h:1455
The _POOL_HEADER structure used by 64-bit guests.
Definition: wddefs.h:432
DWORD CR3
Definition: wddefs.h:758
QWORD Remote
Definition: wddefs.h:1777
DWORD Eip
Definition: wddefs.h:759
DWORD MdlWriteComplete
Definition: wddefs.h:301
UNICODE_STRING64 DriverName
Definition: wddefs.h:266
DWORD AuditProhibitLowILImageMap
Definition: wddefs.h:1596
An _EXCEPTION_RECORD structure used by 64-bit guests.
Definition: wddefs.h:1043
struct _EXCEPTION_RECORD32 * PEXCEPTION_RECORD32
QWORD ReleaseForModWrite
Definition: wddefs.h:342
QWORD DriverExtension
Definition: wddefs.h:265
QWORD LastExceptionToRip
Definition: wddefs.h:1523
struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR_32 * PRTL_VERIFIER_PROVIDER_DESCRIPTOR_32
QWORD DriverStart
Definition: wddefs.h:262
struct _OBJECT_DIRECTORY_ENTRY64 OBJECT_DIRECTORY_ENTRY64
An OBJECT_DIRECTORY_ENTRY64 structure used by 64-bit guests.
QWORD PrepareMdlWrite
Definition: wddefs.h:335
struct _POOL_TRACKER_BIG_PAGES64 POOL_TRACKER_BIG_PAGES64
Format of data for (F)XSAVE/(F)XRSTOR instruction.
Definition: wddefs.h:1428
WORD Reserved2
Definition: wddefs.h:1409
UINT64 Low
Definition: wddefs.h:736
WORD IoMapBase
Definition: wddefs.h:784
INT64 High
Definition: wddefs.h:737
DWORD FastIoDetachDevice
Definition: wddefs.h:295
QWORD LastBranchFromRip
Definition: wddefs.h:960
DWORD Ebx
Definition: wddefs.h:828
BYTE Reserved1
Definition: wddefs.h:1405
DWORD MdlWriteCompleteCompressed
Definition: wddefs.h:305
UCHAR Fill0
Definition: wddefs.h:1013
struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR_64 * PRTL_VERIFIER_PROVIDER_DESCRIPTOR_64
struct _KEXCEPTION_FRAME64 KEXCEPTION_FRAME64
An _KEXCEPTION_FRAME structure used by 64-bit guests.
QWORD R9
Definition: wddefs.h:899
Mitigation flags.
Definition: wddefs.h:1570
QWORD FaultAddress
Definition: wddefs.h:936