#define KGDT_TSS 0x0040
#define KGDT_32_R3_TEB 0x0050 // 53
+
//
// CR4
//
UINT64 R9;
UINT64 R10;
UINT64 R11;
- UINT64 GsBase;
- UINT64 GsSwap;
+ union
+ {
+ UINT64 GsBase;
+ UINT64 GsSwap;
+ };
M128A Xmm0;
M128A Xmm1;
M128A Xmm2;
M128A Xmm3;
M128A Xmm4;
M128A Xmm5;
- UINT64 FaultAddress;
- UINT64 ContextRecord;
- UINT64 TimeStampCKCL;
+ union
+ {
+ UINT64 FaultAddress;
+ UINT64 ContextRecord;
+ UINT64 TimeStampCKCL;
+ };
UINT64 Dr0;
UINT64 Dr1;
UINT64 Dr2;
UINT64 Dr3;
UINT64 Dr6;
UINT64 Dr7;
- UINT64 DebugControl;
- UINT64 LastBranchToRip;
- UINT64 LastBranchFromRip;
- UINT64 LastExceptionToRip;
- UINT64 LastExceptionFromRip;
- UINT64 LastBranchControl;
- ULONG LastBranchMSR;
+ union
+ {
+ struct
+ {
+ UINT64 DebugControl;
+ UINT64 LastBranchToRip;
+ UINT64 LastBranchFromRip;
+ UINT64 LastExceptionToRip;
+ UINT64 LastExceptionFromRip;
+ };
+ struct
+ {
+ UINT64 LastBranchControl;
+ ULONG LastBranchMSR;
+ };
+ };
USHORT SegDs;
USHORT SegEs;
USHORT SegFs;
UINT64 Rdi;
UINT64 Rsi;
UINT64 Rbp;
- UINT64 ErrorCode;
- UINT64 ExceptionFrame;
- UINT64 TimeStampKlog;
+ union
+ {
+ UINT64 ErrorCode;
+ UINT64 ExceptionFrame;
+ UINT64 TimeStampKlog;
+ };
UINT64 Rip;
USHORT SegCs;
UCHAR Fill0;
LONG CodePatchCycle;
} KTRAP_FRAME, *PKTRAP_FRAME;
+//
+// Dummy LDT_ENTRY
+//
+typedef ULONG LDT_ENTRY;
//
// GDT Entry Definition