Improve thread CONTEXT defitions + ARM64_CONTEXT

This commit is contained in:
hakril
2025-03-06 10:30:00 +01:00
parent 8eb3384fcf
commit 6c588cf723
9 changed files with 1770 additions and 1451 deletions
@@ -0,0 +1,61 @@
// Atrget architecture description
#define CONTEXT_I386 0x00010000 // An old PFW error in case ?
#define CONTEXT_AMD64 0x00100000
#define CONTEXT_ARM 0x00200000
#define CONTEXT_ARM64 0x00400000
#define CONTEXT_i386 0x00010000L // this assumes that i386 and
#define CONTEXT_i486 0x00010000L // i486 have identical context records
#define WOW64_CONTEXT_i386 0x00010000 // this assumes that i386 and
#define WOW64_CONTEXT_i486 0x00010000 // i486 have identical context records
// Not perfect, should be explicitly for an architecture
#define CONTEXT_CONTROL 0x00000001L
#define CONTEXT_INTEGER 0x00000002L
#define CONTEXT_SEGMENTS 0x00000004L
#define CONTEXT_FLOATING_POINT 0x00000008L
#define CONTEXT_DEBUG_REGISTERS 0x00000010L
#define CONTEXT_EXTENDED_REGISTERS 0x00000020L
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
#define CONTEXT_ALL (CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS | CONTEXT_EXTENDED_REGISTERS)
#define CONTEXT_XSTATE (CONTEXT_I386 | 0x00000040L)
// WOW64
#define WOW64_CONTEXT_CONTROL (WOW64_CONTEXT_i386 | 0x00000001L) // SS:SP, CS:IP, FLAGS, BP
#define WOW64_CONTEXT_INTEGER (WOW64_CONTEXT_i386 | 0x00000002L) // AX, BX, CX, DX, SI, DI
#define WOW64_CONTEXT_SEGMENTS (WOW64_CONTEXT_i386 | 0x00000004L) // DS, ES, FS, GS
#define WOW64_CONTEXT_FLOATING_POINT (WOW64_CONTEXT_i386 | 0x00000008L) // 387 state
#define WOW64_CONTEXT_DEBUG_REGISTERS (WOW64_CONTEXT_i386 | 0x00000010L) // DB 0-3,6,7
#define WOW64_CONTEXT_EXTENDED_REGISTERS (WOW64_CONTEXT_i386 | 0x00000020L) // cpu specific extensions
#define WOW64_CONTEXT_FULL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | WOW64_CONTEXT_SEGMENTS)
#define WOW64_CONTEXT_ALL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | WOW64_CONTEXT_SEGMENTS | \
WOW64_CONTEXT_FLOATING_POINT | WOW64_CONTEXT_DEBUG_REGISTERS | \
WOW64_CONTEXT_EXTENDED_REGISTERS)
#define WOW64_CONTEXT_XSTATE (WOW64_CONTEXT_i386 | 0x00000040L)
#define WOW64_CONTEXT_EXCEPTION_ACTIVE 0x08000000
#define WOW64_CONTEXT_SERVICE_ACTIVE 0x10000000
#define WOW64_CONTEXT_EXCEPTION_REQUEST 0x40000000
#define WOW64_CONTEXT_EXCEPTION_REPORTING 0x80000000
// ARM64
#define CONTEXT_ARM64_CONTROL (CONTEXT_ARM64 | 0x1L)
#define CONTEXT_ARM64_INTEGER (CONTEXT_ARM64 | 0x2L)
#define CONTEXT_ARM64_FLOATING_POINT (CONTEXT_ARM64 | 0x4L)
#define CONTEXT_ARM64_DEBUG_REGISTERS (CONTEXT_ARM64 | 0x8L)
#define CONTEXT_ARM64_X18 (CONTEXT_ARM64 | 0x10L)
#define CONTEXT_UNWOUND_TO_CALL 0x20000000
#define CONTEXT_RET_TO_GUEST 0x04000000
#define ARM64_MAX_BREAKPOINTS 8
#define ARM64_MAX_WATCHPOINTS 2
@@ -130,22 +130,6 @@
#define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
#define TH32CS_INHERIT 0x80000000
#define CONTEXT_I386 0x00010000
#define CONTEXT_AMD64 0x00100000
#define CONTEXT_ARM 0x00200000
#define CONTEXT_ARM64 0x00400000
#define CONTEXT_CONTROL 0x00000001L
#define CONTEXT_INTEGER 0x00000002L
#define CONTEXT_SEGMENTS 0x00000004L
#define CONTEXT_FLOATING_POINT 0x00000008L
#define CONTEXT_DEBUG_REGISTERS 0x00000010L
#define CONTEXT_EXTENDED_REGISTERS 0x00000020L
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
#define CONTEXT_ALL (CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS | CONTEXT_EXTENDED_REGISTERS)
#define CONTEXT_XSTATE (CONTEXT_I386 | 0x00000040L)
#define PAGE_NOACCESS 0x01
#define PAGE_READONLY 0x02
@@ -0,0 +1,347 @@
typedef union _ARM64_NT_NEON128 {
struct {
ULONGLONG Low;
LONGLONG High;
} DUMMYSTRUCTNAME;
DOUBLE D[2];
FLOAT S[4];
WORD H[8];
BYTE B[16];
} ARM64_NT_NEON128, *PARM64_NT_NEON128;
typedef struct _ARM64_NT_CONTEXT {
//
// Control flags.
//
/* +0x000 */ DWORD ContextFlags;
//
// Integer registers
//
/* +0x004 */ DWORD Cpsr; // NZVF + DAIF + CurrentEL + SPSel
/* +0x008 */ union {
struct {
DWORD64 X0;
DWORD64 X1;
DWORD64 X2;
DWORD64 X3;
DWORD64 X4;
DWORD64 X5;
DWORD64 X6;
DWORD64 X7;
DWORD64 X8;
DWORD64 X9;
DWORD64 X10;
DWORD64 X11;
DWORD64 X12;
DWORD64 X13;
DWORD64 X14;
DWORD64 X15;
DWORD64 X16;
DWORD64 X17;
DWORD64 X18;
DWORD64 X19;
DWORD64 X20;
DWORD64 X21;
DWORD64 X22;
DWORD64 X23;
DWORD64 X24;
DWORD64 X25;
DWORD64 X26;
DWORD64 X27;
DWORD64 X28;
/* +0x0f0 */ DWORD64 Fp;
/* +0x0f8 */ DWORD64 Lr;
} DUMMYSTRUCTNAME;
DWORD64 X[31];
} DUMMYUNIONNAME;
/* +0x100 */ DWORD64 Sp;
/* +0x108 */ DWORD64 Pc;
//
// Floating Point/NEON Registers
//
/* +0x110 */ ARM64_NT_NEON128 V[32];
/* +0x310 */ DWORD Fpcr;
/* +0x314 */ DWORD Fpsr;
//
// Debug registers
//
/* +0x318 */ DWORD Bcr[ARM64_MAX_BREAKPOINTS];
/* +0x338 */ DWORD64 Bvr[ARM64_MAX_BREAKPOINTS];
/* +0x378 */ DWORD Wcr[ARM64_MAX_WATCHPOINTS];
/* +0x380 */ DWORD64 Wvr[ARM64_MAX_WATCHPOINTS];
/* +0x390 */
} ARM64_NT_CONTEXT, *PARM64_NT_CONTEXT;
typedef struct _FLOATING_SAVE_AREA {
DWORD ControlWord;
DWORD StatusWord;
DWORD TagWord;
DWORD ErrorOffset;
DWORD ErrorSelector;
DWORD DataOffset;
DWORD DataSelector;
BYTE RegisterArea[80];
DWORD Cr0NpxState;
} FLOATING_SAVE_AREA;
typedef struct _CONTEXT32 {
DWORD ContextFlags;
DWORD Dr0;
DWORD Dr1;
DWORD Dr2;
DWORD Dr3;
DWORD Dr6;
DWORD Dr7;
FLOATING_SAVE_AREA FloatSave;
DWORD SegGs;
DWORD SegFs;
DWORD SegEs;
DWORD SegDs;
DWORD Edi;
DWORD Esi;
DWORD Ebx;
DWORD Edx;
DWORD Ecx;
DWORD Eax;
DWORD Ebp;
DWORD Eip;
DWORD SegCs;
DWORD EFlags;
DWORD Esp;
DWORD SegSs;
BYTE ExtendedRegisters[512];
} CONTEXT32, *PCONTEXT32, *LPCONTEXT32;
typedef struct _WOW64_FLOATING_SAVE_AREA {
DWORD ControlWord;
DWORD StatusWord;
DWORD TagWord;
DWORD ErrorOffset;
DWORD ErrorSelector;
DWORD DataOffset;
DWORD DataSelector;
BYTE RegisterArea[WOW64_SIZE_OF_80387_REGISTERS];
DWORD Cr0NpxState;
} WOW64_FLOATING_SAVE_AREA;
typedef struct _WOW64_CONTEXT {
DWORD ContextFlags;
DWORD Dr0;
DWORD Dr1;
DWORD Dr2;
DWORD Dr3;
DWORD Dr6;
DWORD Dr7;
WOW64_FLOATING_SAVE_AREA FloatSave;
DWORD SegGs;
DWORD SegFs;
DWORD SegEs;
DWORD SegDs;
DWORD Edi;
DWORD Esi;
DWORD Ebx;
DWORD Edx;
DWORD Ecx;
DWORD Eax;
DWORD Ebp;
DWORD Eip;
DWORD SegCs;
DWORD EFlags;
DWORD Esp;
DWORD SegSs;
BYTE ExtendedRegisters[WOW64_MAXIMUM_SUPPORTED_EXTENSION];
} WOW64_CONTEXT, *PWOW64_CONTEXT;
typedef struct _M128A {
ULONGLONG Low;
LONGLONG High;
} M128A, *PM128A;
typedef struct _XSAVE_FORMAT_64 {
WORD ControlWord;
WORD StatusWord;
BYTE TagWord;
BYTE Reserved1;
WORD ErrorOpcode;
DWORD ErrorOffset;
WORD ErrorSelector;
WORD Reserved2;
DWORD DataOffset;
WORD DataSelector;
WORD Reserved3;
DWORD MxCsr;
DWORD MxCsr_Mask;
M128A FloatRegisters[8];
M128A XmmRegisters[16];
BYTE Reserved4[96];
} XSAVE_FORMAT_64, *PXSAVE_FORMAT_64;
typedef struct _XSAVE_FORMAT_32 {
WORD ControlWord;
WORD StatusWord;
BYTE TagWord;
BYTE Reserved1;
WORD ErrorOpcode;
DWORD ErrorOffset;
WORD ErrorSelector;
WORD Reserved2;
DWORD DataOffset;
WORD DataSelector;
WORD Reserved3;
DWORD MxCsr;
DWORD MxCsr_Mask;
M128A FloatRegisters[8];
M128A XmmRegisters[8];
BYTE Reserved4[192];
DWORD StackControl[7];
DWORD Cr0NpxState;
} XSAVE_FORMAT_32, *PXSAVE_FORMAT_32;
typedef struct _CONTEXT64 {
//
// Register parameter home addresses.
//
// N.B. These fields are for convience - they could be used to extend the
// context record in the future.
//
DWORD64 P1Home;
DWORD64 P2Home;
DWORD64 P3Home;
DWORD64 P4Home;
DWORD64 P5Home;
DWORD64 P6Home;
//
// Control flags.
//
DWORD ContextFlags;
DWORD MxCsr;
//
// Segment Registers and processor flags.
//
WORD SegCs;
WORD SegDs;
WORD SegEs;
WORD SegFs;
WORD SegGs;
WORD SegSs;
DWORD EFlags;
//
// Debug registers
//
DWORD64 Dr0;
DWORD64 Dr1;
DWORD64 Dr2;
DWORD64 Dr3;
DWORD64 Dr6;
DWORD64 Dr7;
//
// Integer registers.
//
DWORD64 Rax;
DWORD64 Rcx;
DWORD64 Rdx;
DWORD64 Rbx;
DWORD64 Rsp;
DWORD64 Rbp;
DWORD64 Rsi;
DWORD64 Rdi;
DWORD64 R8;
DWORD64 R9;
DWORD64 R10;
DWORD64 R11;
DWORD64 R12;
DWORD64 R13;
DWORD64 R14;
DWORD64 R15;
//
// Program counter.
//
DWORD64 Rip;
//
// Floating point state.
//
union {
XSAVE_FORMAT_64 FltSave;
struct {
M128A Header[2];
M128A Legacy[8];
M128A Xmm0;
M128A Xmm1;
M128A Xmm2;
M128A Xmm3;
M128A Xmm4;
M128A Xmm5;
M128A Xmm6;
M128A Xmm7;
M128A Xmm8;
M128A Xmm9;
M128A Xmm10;
M128A Xmm11;
M128A Xmm12;
M128A Xmm13;
M128A Xmm14;
M128A Xmm15;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
//
// Vector registers.
//
M128A VectorRegister[26];
DWORD64 VectorControl;
//
// Special debug control registers.
//
DWORD64 DebugControl;
DWORD64 LastBranchToRip;
DWORD64 LastBranchFromRip;
DWORD64 LastExceptionToRip;
DWORD64 LastExceptionFromRip;
} CONTEXT64, *PCONTEXT64, *LPCONTEXT64;
@@ -737,232 +737,7 @@ typedef struct _PROCESS_INFORMATION {
} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
typedef struct _FLOATING_SAVE_AREA {
DWORD ControlWord;
DWORD StatusWord;
DWORD TagWord;
DWORD ErrorOffset;
DWORD ErrorSelector;
DWORD DataOffset;
DWORD DataSelector;
BYTE RegisterArea[80];
DWORD Cr0NpxState;
} FLOATING_SAVE_AREA;
typedef struct _CONTEXT32 {
DWORD ContextFlags;
DWORD Dr0;
DWORD Dr1;
DWORD Dr2;
DWORD Dr3;
DWORD Dr6;
DWORD Dr7;
FLOATING_SAVE_AREA FloatSave;
DWORD SegGs;
DWORD SegFs;
DWORD SegEs;
DWORD SegDs;
DWORD Edi;
DWORD Esi;
DWORD Ebx;
DWORD Edx;
DWORD Ecx;
DWORD Eax;
DWORD Ebp;
DWORD Eip;
DWORD SegCs;
DWORD EFlags;
DWORD Esp;
DWORD SegSs;
BYTE ExtendedRegisters[512];
} CONTEXT32, *PCONTEXT32, *LPCONTEXT32;
typedef struct _WOW64_FLOATING_SAVE_AREA {
DWORD ControlWord;
DWORD StatusWord;
DWORD TagWord;
DWORD ErrorOffset;
DWORD ErrorSelector;
DWORD DataOffset;
DWORD DataSelector;
BYTE RegisterArea[WOW64_SIZE_OF_80387_REGISTERS];
DWORD Cr0NpxState;
} WOW64_FLOATING_SAVE_AREA;
typedef struct _WOW64_CONTEXT {
DWORD ContextFlags;
DWORD Dr0;
DWORD Dr1;
DWORD Dr2;
DWORD Dr3;
DWORD Dr6;
DWORD Dr7;
WOW64_FLOATING_SAVE_AREA FloatSave;
DWORD SegGs;
DWORD SegFs;
DWORD SegEs;
DWORD SegDs;
DWORD Edi;
DWORD Esi;
DWORD Ebx;
DWORD Edx;
DWORD Ecx;
DWORD Eax;
DWORD Ebp;
DWORD Eip;
DWORD SegCs;
DWORD EFlags;
DWORD Esp;
DWORD SegSs;
BYTE ExtendedRegisters[WOW64_MAXIMUM_SUPPORTED_EXTENSION];
} WOW64_CONTEXT, *PWOW64_CONTEXT;
typedef struct _M128A {
ULONGLONG Low;
LONGLONG High;
} M128A, *PM128A;
typedef struct _XSAVE_FORMAT_64 {
WORD ControlWord;
WORD StatusWord;
BYTE TagWord;
BYTE Reserved1;
WORD ErrorOpcode;
DWORD ErrorOffset;
WORD ErrorSelector;
WORD Reserved2;
DWORD DataOffset;
WORD DataSelector;
WORD Reserved3;
DWORD MxCsr;
DWORD MxCsr_Mask;
M128A FloatRegisters[8];
M128A XmmRegisters[16];
BYTE Reserved4[96];
} XSAVE_FORMAT_64, *PXSAVE_FORMAT_64;
typedef struct _XSAVE_FORMAT_32 {
WORD ControlWord;
WORD StatusWord;
BYTE TagWord;
BYTE Reserved1;
WORD ErrorOpcode;
DWORD ErrorOffset;
WORD ErrorSelector;
WORD Reserved2;
DWORD DataOffset;
WORD DataSelector;
WORD Reserved3;
DWORD MxCsr;
DWORD MxCsr_Mask;
M128A FloatRegisters[8];
M128A XmmRegisters[8];
BYTE Reserved4[192];
DWORD StackControl[7];
DWORD Cr0NpxState;
} XSAVE_FORMAT_32, *PXSAVE_FORMAT_32;
typedef struct _TMP_DUMMYSTRUCTNAME {
M128A Header[2];
M128A Legacy[8];
M128A Xmm0;
M128A Xmm1;
M128A Xmm2;
M128A Xmm3;
M128A Xmm4;
M128A Xmm5;
M128A Xmm6;
M128A Xmm7;
M128A Xmm8;
M128A Xmm9;
M128A Xmm10;
M128A Xmm11;
M128A Xmm12;
M128A Xmm13;
M128A Xmm14;
M128A Xmm15;
} TMP_DUMMYSTRUCTNAME;
typedef union _TMP_CONTEXT64_SUBUNION {
XSAVE_FORMAT_64 FltSave;
TMP_DUMMYSTRUCTNAME DUMMYSTRUCTNAME;
} TMP_CONTEXT64_SUBUNION;
typedef struct _CONTEXT64 {
DWORD64 P1Home;
DWORD64 P2Home;
DWORD64 P3Home;
DWORD64 P4Home;
DWORD64 P5Home;
DWORD64 P6Home;
DWORD ContextFlags;
DWORD MxCsr;
WORD SegCs;
WORD SegDs;
WORD SegEs;
WORD SegFs;
WORD SegGs;
WORD SegSs;
DWORD EFlags;
DWORD64 Dr0;
DWORD64 Dr1;
DWORD64 Dr2;
DWORD64 Dr3;
DWORD64 Dr6;
DWORD64 Dr7;
DWORD64 Rax;
DWORD64 Rcx;
DWORD64 Rdx;
DWORD64 Rbx;
DWORD64 Rsp;
DWORD64 Rbp;
DWORD64 Rsi;
DWORD64 Rdi;
DWORD64 R8;
DWORD64 R9;
DWORD64 R10;
DWORD64 R11;
DWORD64 R12;
DWORD64 R13;
DWORD64 R14;
DWORD64 R15;
DWORD64 Rip;
TMP_CONTEXT64_SUBUNION DUMMYUNIONNAME;
M128A VectorRegister[26];
DWORD64 VectorControl;
DWORD64 DebugControl;
DWORD64 LastBranchToRip;
DWORD64 LastBranchFromRip;
DWORD64 LastExceptionToRip;
DWORD64 LastExceptionFromRip;
} CONTEXT64, *PCONTEXT64, *LPCONTEXT64;
typedef struct tagPROCESSENTRY32W
+39 -13
View File
@@ -1849,6 +1849,45 @@ WinDef
.. autodata:: SPC_FINANCIAL_CRITERIA_OBJID
.. autodata:: SPC_LINK_OBJID
.. autodata:: SPC_SIGINFO_OBJID
.. autodata:: CONTEXT_I386
.. autodata:: CONTEXT_AMD64
.. autodata:: CONTEXT_ARM
.. autodata:: CONTEXT_ARM64
.. autodata:: CONTEXT_i386
.. autodata:: CONTEXT_i486
.. autodata:: WOW64_CONTEXT_i386
.. autodata:: WOW64_CONTEXT_i486
.. autodata:: CONTEXT_CONTROL
.. autodata:: CONTEXT_INTEGER
.. autodata:: CONTEXT_SEGMENTS
.. autodata:: CONTEXT_FLOATING_POINT
.. autodata:: CONTEXT_DEBUG_REGISTERS
.. autodata:: CONTEXT_EXTENDED_REGISTERS
.. autodata:: CONTEXT_FULL
.. autodata:: CONTEXT_ALL
.. autodata:: CONTEXT_XSTATE
.. autodata:: WOW64_CONTEXT_CONTROL
.. autodata:: WOW64_CONTEXT_INTEGER
.. autodata:: WOW64_CONTEXT_SEGMENTS
.. autodata:: WOW64_CONTEXT_FLOATING_POINT
.. autodata:: WOW64_CONTEXT_DEBUG_REGISTERS
.. autodata:: WOW64_CONTEXT_EXTENDED_REGISTERS
.. autodata:: WOW64_CONTEXT_FULL
.. autodata:: WOW64_CONTEXT_ALL
.. autodata:: WOW64_CONTEXT_XSTATE
.. autodata:: WOW64_CONTEXT_EXCEPTION_ACTIVE
.. autodata:: WOW64_CONTEXT_SERVICE_ACTIVE
.. autodata:: WOW64_CONTEXT_EXCEPTION_REQUEST
.. autodata:: WOW64_CONTEXT_EXCEPTION_REPORTING
.. autodata:: CONTEXT_ARM64_CONTROL
.. autodata:: CONTEXT_ARM64_INTEGER
.. autodata:: CONTEXT_ARM64_FLOATING_POINT
.. autodata:: CONTEXT_ARM64_DEBUG_REGISTERS
.. autodata:: CONTEXT_ARM64_X18
.. autodata:: CONTEXT_UNWOUND_TO_CALL
.. autodata:: CONTEXT_RET_TO_GUEST
.. autodata:: ARM64_MAX_BREAKPOINTS
.. autodata:: ARM64_MAX_WATCHPOINTS
.. autodata:: FILE_VER_GET_LOCALISED
.. autodata:: FILE_VER_GET_NEUTRAL
.. autodata:: FILE_VER_GET_PREFETCHED
@@ -1960,19 +1999,6 @@ WinDef
.. autodata:: TH32CS_SNAPMODULE32
.. autodata:: TH32CS_SNAPALL
.. autodata:: TH32CS_INHERIT
.. autodata:: CONTEXT_I386
.. autodata:: CONTEXT_AMD64
.. autodata:: CONTEXT_ARM
.. autodata:: CONTEXT_ARM64
.. autodata:: CONTEXT_CONTROL
.. autodata:: CONTEXT_INTEGER
.. autodata:: CONTEXT_SEGMENTS
.. autodata:: CONTEXT_FLOATING_POINT
.. autodata:: CONTEXT_DEBUG_REGISTERS
.. autodata:: CONTEXT_EXTENDED_REGISTERS
.. autodata:: CONTEXT_FULL
.. autodata:: CONTEXT_ALL
.. autodata:: CONTEXT_XSTATE
.. autodata:: PAGE_NOACCESS
.. autodata:: PAGE_READONLY
.. autodata:: PAGE_READWRITE
File diff suppressed because it is too large Load Diff
+32 -4
View File
@@ -191,6 +191,8 @@ windef = {'ABOVE_NORMAL_PRIORITY_CLASS',
'API_SET_SCHEMA_VERSION_V3',
'API_SET_SCHEMA_VERSION_V4',
'APPLICATION_ERROR_MASK',
'ARM64_MAX_BREAKPOINTS',
'ARM64_MAX_WATCHPOINTS',
'ASYNC_MODE_COMPATIBILITY',
'ASYNC_MODE_DEFAULT',
'ATM_ADDR_SIZE',
@@ -661,6 +663,11 @@ windef = {'ABOVE_NORMAL_PRIORITY_CLASS',
'CONTEXT_AMD64',
'CONTEXT_ARM',
'CONTEXT_ARM64',
'CONTEXT_ARM64_CONTROL',
'CONTEXT_ARM64_DEBUG_REGISTERS',
'CONTEXT_ARM64_FLOATING_POINT',
'CONTEXT_ARM64_INTEGER',
'CONTEXT_ARM64_X18',
'CONTEXT_CONTROL',
'CONTEXT_DEBUG_REGISTERS',
'CONTEXT_EXTENDED_REGISTERS',
@@ -668,8 +675,12 @@ windef = {'ABOVE_NORMAL_PRIORITY_CLASS',
'CONTEXT_FULL',
'CONTEXT_I386',
'CONTEXT_INTEGER',
'CONTEXT_RET_TO_GUEST',
'CONTEXT_SEGMENTS',
'CONTEXT_UNWOUND_TO_CALL',
'CONTEXT_XSTATE',
'CONTEXT_i386',
'CONTEXT_i486',
'CONTROL_C_EXIT',
'CREATE_ALWAYS',
'CREATE_BREAKAWAY_FROM_JOB',
@@ -3281,6 +3292,21 @@ windef = {'ABOVE_NORMAL_PRIORITY_CLASS',
'WIN_CERT_TYPE_RESERVED_1',
'WIN_CERT_TYPE_TS_STACK_SIGNED',
'WIN_CERT_TYPE_X509',
'WOW64_CONTEXT_ALL',
'WOW64_CONTEXT_CONTROL',
'WOW64_CONTEXT_DEBUG_REGISTERS',
'WOW64_CONTEXT_EXCEPTION_ACTIVE',
'WOW64_CONTEXT_EXCEPTION_REPORTING',
'WOW64_CONTEXT_EXCEPTION_REQUEST',
'WOW64_CONTEXT_EXTENDED_REGISTERS',
'WOW64_CONTEXT_FLOATING_POINT',
'WOW64_CONTEXT_FULL',
'WOW64_CONTEXT_INTEGER',
'WOW64_CONTEXT_SEGMENTS',
'WOW64_CONTEXT_SERVICE_ACTIVE',
'WOW64_CONTEXT_XSTATE',
'WOW64_CONTEXT_i386',
'WOW64_CONTEXT_i486',
'WOW64_MAXIMUM_SUPPORTED_EXTENSION',
'WOW64_SIZE_OF_80387_REGISTERS',
'WRITE_DAC',
@@ -12257,6 +12283,8 @@ structs = {'ACCESS_ALLOWED_ACE',
'API_SET_VALUE_ARRAY_V4',
'API_SET_VALUE_ENTRY',
'API_SET_VALUE_ENTRY_V2',
'ARM64_NT_CONTEXT',
'ARM64_NT_NEON128',
'ARRAYDESC',
'ATTACH_VIRTUAL_DISK_PARAMETERS',
'BG_AUTH_CREDENTIALS',
@@ -12887,6 +12915,8 @@ structs = {'ACCESS_ALLOWED_ACE',
'PAPI_SET_VALUE_ENTRY_V2',
'PARAMDESC',
'PARAMDESCEX',
'PARM64_NT_CONTEXT',
'PARM64_NT_NEON128',
'PATTACH_VIRTUAL_DISK_PARAMETERS',
'PBITMAP',
'PBITMAPCOREHEADER',
@@ -13570,8 +13600,6 @@ structs = {'ACCESS_ALLOWED_ACE',
'TMPUNION_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO',
'TMP_CERT_STRONG_SIGN_PARA_UNION_TYPE',
'TMP_CMSG_RECIPIENT_ENCODE_INFO_UNION',
'TMP_CONTEXT64_SUBUNION',
'TMP_DUMMYSTRUCTNAME',
'TMP_SPC_LINK_UNION',
'TMP_TYPEDESC_UNION',
'TMP_UNION_DEBUG_INFO',
@@ -13712,6 +13740,8 @@ structs = {'ACCESS_ALLOWED_ACE',
'_API_SET_VALUE_ARRAY_V4',
'_API_SET_VALUE_ENTRY',
'_API_SET_VALUE_ENTRY_V2',
'_ARM64_NT_CONTEXT',
'_ARM64_NT_NEON128',
'_ATTACH_VIRTUAL_DISK_PARAMETERS',
'_BG_FILE_INFO',
'_BG_FILE_PROGRESS',
@@ -14148,8 +14178,6 @@ structs = {'ACCESS_ALLOWED_ACE',
'_TMPUNION_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO',
'_TMPUNION_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO',
'_TMP_CMSG_RECIPIENT_ENCODE_INFO_UNION',
'_TMP_CONTEXT64_SUBUNION',
'_TMP_DUMMYSTRUCTNAME',
'_TMP_SPC_LINK_UNION',
'_TMP_TYPEDESC_UNION',
'_TMP_UNION_DEBUG_INFO',
+39 -13
View File
@@ -1889,6 +1889,45 @@ SPC_MINIMAL_CRITERIA_OBJID = make_flag("SPC_MINIMAL_CRITERIA_OBJID", "1.3.6.1.4.
SPC_FINANCIAL_CRITERIA_OBJID = make_flag("SPC_FINANCIAL_CRITERIA_OBJID", "1.3.6.1.4.1.311.2.1.27")
SPC_LINK_OBJID = make_flag("SPC_LINK_OBJID", "1.3.6.1.4.1.311.2.1.28")
SPC_SIGINFO_OBJID = make_flag("SPC_SIGINFO_OBJID", "1.3.6.1.4.1.311.2.1.30")
CONTEXT_I386 = make_flag("CONTEXT_I386", 0x00010000)
CONTEXT_AMD64 = make_flag("CONTEXT_AMD64", 0x00100000)
CONTEXT_ARM = make_flag("CONTEXT_ARM", 0x00200000)
CONTEXT_ARM64 = make_flag("CONTEXT_ARM64", 0x00400000)
CONTEXT_i386 = make_flag("CONTEXT_i386", 0x00010000)
CONTEXT_i486 = make_flag("CONTEXT_i486", 0x00010000)
WOW64_CONTEXT_i386 = make_flag("WOW64_CONTEXT_i386", 0x00010000)
WOW64_CONTEXT_i486 = make_flag("WOW64_CONTEXT_i486", 0x00010000)
CONTEXT_CONTROL = make_flag("CONTEXT_CONTROL", 0x00000001)
CONTEXT_INTEGER = make_flag("CONTEXT_INTEGER", 0x00000002)
CONTEXT_SEGMENTS = make_flag("CONTEXT_SEGMENTS", 0x00000004)
CONTEXT_FLOATING_POINT = make_flag("CONTEXT_FLOATING_POINT", 0x00000008)
CONTEXT_DEBUG_REGISTERS = make_flag("CONTEXT_DEBUG_REGISTERS", 0x00000010)
CONTEXT_EXTENDED_REGISTERS = make_flag("CONTEXT_EXTENDED_REGISTERS", 0x00000020)
CONTEXT_FULL = make_flag("CONTEXT_FULL", ( CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS ))
CONTEXT_ALL = make_flag("CONTEXT_ALL", ( CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS | CONTEXT_EXTENDED_REGISTERS ))
CONTEXT_XSTATE = make_flag("CONTEXT_XSTATE", ( CONTEXT_I386 | 0x00000040 ))
WOW64_CONTEXT_CONTROL = make_flag("WOW64_CONTEXT_CONTROL", ( WOW64_CONTEXT_i386 | 0x00000001 ))
WOW64_CONTEXT_INTEGER = make_flag("WOW64_CONTEXT_INTEGER", ( WOW64_CONTEXT_i386 | 0x00000002 ))
WOW64_CONTEXT_SEGMENTS = make_flag("WOW64_CONTEXT_SEGMENTS", ( WOW64_CONTEXT_i386 | 0x00000004 ))
WOW64_CONTEXT_FLOATING_POINT = make_flag("WOW64_CONTEXT_FLOATING_POINT", ( WOW64_CONTEXT_i386 | 0x00000008 ))
WOW64_CONTEXT_DEBUG_REGISTERS = make_flag("WOW64_CONTEXT_DEBUG_REGISTERS", ( WOW64_CONTEXT_i386 | 0x00000010 ))
WOW64_CONTEXT_EXTENDED_REGISTERS = make_flag("WOW64_CONTEXT_EXTENDED_REGISTERS", ( WOW64_CONTEXT_i386 | 0x00000020 ))
WOW64_CONTEXT_FULL = make_flag("WOW64_CONTEXT_FULL", ( WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | WOW64_CONTEXT_SEGMENTS ))
WOW64_CONTEXT_ALL = make_flag("WOW64_CONTEXT_ALL", ( WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | WOW64_CONTEXT_SEGMENTS | WOW64_CONTEXT_FLOATING_POINT | WOW64_CONTEXT_DEBUG_REGISTERS | WOW64_CONTEXT_EXTENDED_REGISTERS ))
WOW64_CONTEXT_XSTATE = make_flag("WOW64_CONTEXT_XSTATE", ( WOW64_CONTEXT_i386 | 0x00000040 ))
WOW64_CONTEXT_EXCEPTION_ACTIVE = make_flag("WOW64_CONTEXT_EXCEPTION_ACTIVE", 0x08000000)
WOW64_CONTEXT_SERVICE_ACTIVE = make_flag("WOW64_CONTEXT_SERVICE_ACTIVE", 0x10000000)
WOW64_CONTEXT_EXCEPTION_REQUEST = make_flag("WOW64_CONTEXT_EXCEPTION_REQUEST", 0x40000000)
WOW64_CONTEXT_EXCEPTION_REPORTING = make_flag("WOW64_CONTEXT_EXCEPTION_REPORTING", 0x80000000)
CONTEXT_ARM64_CONTROL = make_flag("CONTEXT_ARM64_CONTROL", ( CONTEXT_ARM64 | 0x1 ))
CONTEXT_ARM64_INTEGER = make_flag("CONTEXT_ARM64_INTEGER", ( CONTEXT_ARM64 | 0x2 ))
CONTEXT_ARM64_FLOATING_POINT = make_flag("CONTEXT_ARM64_FLOATING_POINT", ( CONTEXT_ARM64 | 0x4 ))
CONTEXT_ARM64_DEBUG_REGISTERS = make_flag("CONTEXT_ARM64_DEBUG_REGISTERS", ( CONTEXT_ARM64 | 0x8 ))
CONTEXT_ARM64_X18 = make_flag("CONTEXT_ARM64_X18", ( CONTEXT_ARM64 | 0x10 ))
CONTEXT_UNWOUND_TO_CALL = make_flag("CONTEXT_UNWOUND_TO_CALL", 0x20000000)
CONTEXT_RET_TO_GUEST = make_flag("CONTEXT_RET_TO_GUEST", 0x04000000)
ARM64_MAX_BREAKPOINTS = make_flag("ARM64_MAX_BREAKPOINTS", 8)
ARM64_MAX_WATCHPOINTS = make_flag("ARM64_MAX_WATCHPOINTS", 2)
FILE_VER_GET_LOCALISED = make_flag("FILE_VER_GET_LOCALISED", 0x01)
FILE_VER_GET_NEUTRAL = make_flag("FILE_VER_GET_NEUTRAL", 0x02)
FILE_VER_GET_PREFETCHED = make_flag("FILE_VER_GET_PREFETCHED", 0x04)
@@ -2000,19 +2039,6 @@ TH32CS_SNAPMODULE = make_flag("TH32CS_SNAPMODULE", 0x00000008)
TH32CS_SNAPMODULE32 = make_flag("TH32CS_SNAPMODULE32", 0x00000010)
TH32CS_SNAPALL = make_flag("TH32CS_SNAPALL", ( TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE ))
TH32CS_INHERIT = make_flag("TH32CS_INHERIT", 0x80000000)
CONTEXT_I386 = make_flag("CONTEXT_I386", 0x00010000)
CONTEXT_AMD64 = make_flag("CONTEXT_AMD64", 0x00100000)
CONTEXT_ARM = make_flag("CONTEXT_ARM", 0x00200000)
CONTEXT_ARM64 = make_flag("CONTEXT_ARM64", 0x00400000)
CONTEXT_CONTROL = make_flag("CONTEXT_CONTROL", 0x00000001)
CONTEXT_INTEGER = make_flag("CONTEXT_INTEGER", 0x00000002)
CONTEXT_SEGMENTS = make_flag("CONTEXT_SEGMENTS", 0x00000004)
CONTEXT_FLOATING_POINT = make_flag("CONTEXT_FLOATING_POINT", 0x00000008)
CONTEXT_DEBUG_REGISTERS = make_flag("CONTEXT_DEBUG_REGISTERS", 0x00000010)
CONTEXT_EXTENDED_REGISTERS = make_flag("CONTEXT_EXTENDED_REGISTERS", 0x00000020)
CONTEXT_FULL = make_flag("CONTEXT_FULL", ( CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS ))
CONTEXT_ALL = make_flag("CONTEXT_ALL", ( CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS | CONTEXT_EXTENDED_REGISTERS ))
CONTEXT_XSTATE = make_flag("CONTEXT_XSTATE", ( CONTEXT_I386 | 0x00000040 ))
PAGE_NOACCESS = make_flag("PAGE_NOACCESS", 0x01)
PAGE_READONLY = make_flag("PAGE_READONLY", 0x02)
PAGE_READWRITE = make_flag("PAGE_READWRITE", 0x04)
+307 -228
View File
@@ -5212,6 +5212,313 @@ class _TEB(Structure):
]
TEB = _TEB
class _ANON__ARM64_NT_NEON128_SUB_STRUCTURE_1(Structure):
_fields_ = [
("Low", ULONGLONG),
("High", LONGLONG),
]
class _ARM64_NT_NEON128(Union):
_anonymous_ = ("DUMMYSTRUCTNAME",)
_fields_ = [
("DUMMYSTRUCTNAME", _ANON__ARM64_NT_NEON128_SUB_STRUCTURE_1),
("D", DOUBLE * (2)),
("S", FLOAT * (4)),
("H", WORD * (8)),
("B", BYTE * (16)),
]
ARM64_NT_NEON128 = _ARM64_NT_NEON128
PARM64_NT_NEON128 = POINTER(_ARM64_NT_NEON128)
class _ANON__ANON__ARM64_NT_CONTEXT_SUB_UNION_1_SUB_STRUCTURE_1(Structure):
_fields_ = [
("X0", DWORD64),
("X1", DWORD64),
("X2", DWORD64),
("X3", DWORD64),
("X4", DWORD64),
("X5", DWORD64),
("X6", DWORD64),
("X7", DWORD64),
("X8", DWORD64),
("X9", DWORD64),
("X10", DWORD64),
("X11", DWORD64),
("X12", DWORD64),
("X13", DWORD64),
("X14", DWORD64),
("X15", DWORD64),
("X16", DWORD64),
("X17", DWORD64),
("X18", DWORD64),
("X19", DWORD64),
("X20", DWORD64),
("X21", DWORD64),
("X22", DWORD64),
("X23", DWORD64),
("X24", DWORD64),
("X25", DWORD64),
("X26", DWORD64),
("X27", DWORD64),
("X28", DWORD64),
("Fp", DWORD64),
("Lr", DWORD64),
]
class _ANON__ARM64_NT_CONTEXT_SUB_UNION_1(Union):
_anonymous_ = ("DUMMYSTRUCTNAME",)
_fields_ = [
("DUMMYSTRUCTNAME", _ANON__ANON__ARM64_NT_CONTEXT_SUB_UNION_1_SUB_STRUCTURE_1),
("X", DWORD64 * (31)),
]
class _ARM64_NT_CONTEXT(Structure):
_anonymous_ = ("DUMMYUNIONNAME",)
_fields_ = [
("ContextFlags", DWORD),
("Cpsr", DWORD),
("DUMMYUNIONNAME", _ANON__ARM64_NT_CONTEXT_SUB_UNION_1),
("Sp", DWORD64),
("Pc", DWORD64),
("V", ARM64_NT_NEON128 * (32)),
("Fpcr", DWORD),
("Fpsr", DWORD),
("Bcr", DWORD * (ARM64_MAX_BREAKPOINTS)),
("Bvr", DWORD64 * (ARM64_MAX_BREAKPOINTS)),
("Wcr", DWORD * (ARM64_MAX_WATCHPOINTS)),
("Wvr", DWORD64 * (ARM64_MAX_WATCHPOINTS)),
]
ARM64_NT_CONTEXT = _ARM64_NT_CONTEXT
PARM64_NT_CONTEXT = POINTER(_ARM64_NT_CONTEXT)
class _FLOATING_SAVE_AREA(Structure):
_fields_ = [
("ControlWord", DWORD),
("StatusWord", DWORD),
("TagWord", DWORD),
("ErrorOffset", DWORD),
("ErrorSelector", DWORD),
("DataOffset", DWORD),
("DataSelector", DWORD),
("RegisterArea", BYTE * (80)),
("Cr0NpxState", DWORD),
]
FLOATING_SAVE_AREA = _FLOATING_SAVE_AREA
class _CONTEXT32(Structure):
_fields_ = [
("ContextFlags", DWORD),
("Dr0", DWORD),
("Dr1", DWORD),
("Dr2", DWORD),
("Dr3", DWORD),
("Dr6", DWORD),
("Dr7", DWORD),
("FloatSave", FLOATING_SAVE_AREA),
("SegGs", DWORD),
("SegFs", DWORD),
("SegEs", DWORD),
("SegDs", DWORD),
("Edi", DWORD),
("Esi", DWORD),
("Ebx", DWORD),
("Edx", DWORD),
("Ecx", DWORD),
("Eax", DWORD),
("Ebp", DWORD),
("Eip", DWORD),
("SegCs", DWORD),
("EFlags", DWORD),
("Esp", DWORD),
("SegSs", DWORD),
("ExtendedRegisters", BYTE * (512)),
]
CONTEXT32 = _CONTEXT32
LPCONTEXT32 = POINTER(_CONTEXT32)
PCONTEXT32 = POINTER(_CONTEXT32)
class _WOW64_FLOATING_SAVE_AREA(Structure):
_fields_ = [
("ControlWord", DWORD),
("StatusWord", DWORD),
("TagWord", DWORD),
("ErrorOffset", DWORD),
("ErrorSelector", DWORD),
("DataOffset", DWORD),
("DataSelector", DWORD),
("RegisterArea", BYTE * (WOW64_SIZE_OF_80387_REGISTERS)),
("Cr0NpxState", DWORD),
]
WOW64_FLOATING_SAVE_AREA = _WOW64_FLOATING_SAVE_AREA
class _WOW64_CONTEXT(Structure):
_fields_ = [
("ContextFlags", DWORD),
("Dr0", DWORD),
("Dr1", DWORD),
("Dr2", DWORD),
("Dr3", DWORD),
("Dr6", DWORD),
("Dr7", DWORD),
("FloatSave", WOW64_FLOATING_SAVE_AREA),
("SegGs", DWORD),
("SegFs", DWORD),
("SegEs", DWORD),
("SegDs", DWORD),
("Edi", DWORD),
("Esi", DWORD),
("Ebx", DWORD),
("Edx", DWORD),
("Ecx", DWORD),
("Eax", DWORD),
("Ebp", DWORD),
("Eip", DWORD),
("SegCs", DWORD),
("EFlags", DWORD),
("Esp", DWORD),
("SegSs", DWORD),
("ExtendedRegisters", BYTE * (WOW64_MAXIMUM_SUPPORTED_EXTENSION)),
]
PWOW64_CONTEXT = POINTER(_WOW64_CONTEXT)
WOW64_CONTEXT = _WOW64_CONTEXT
class _M128A(Structure):
_fields_ = [
("Low", ULONGLONG),
("High", LONGLONG),
]
M128A = _M128A
PM128A = POINTER(_M128A)
class _XSAVE_FORMAT_64(Structure):
_fields_ = [
("ControlWord", WORD),
("StatusWord", WORD),
("TagWord", BYTE),
("Reserved1", BYTE),
("ErrorOpcode", WORD),
("ErrorOffset", DWORD),
("ErrorSelector", WORD),
("Reserved2", WORD),
("DataOffset", DWORD),
("DataSelector", WORD),
("Reserved3", WORD),
("MxCsr", DWORD),
("MxCsr_Mask", DWORD),
("FloatRegisters", M128A * (8)),
("XmmRegisters", M128A * (16)),
("Reserved4", BYTE * (96)),
]
PXSAVE_FORMAT_64 = POINTER(_XSAVE_FORMAT_64)
XSAVE_FORMAT_64 = _XSAVE_FORMAT_64
class _XSAVE_FORMAT_32(Structure):
_fields_ = [
("ControlWord", WORD),
("StatusWord", WORD),
("TagWord", BYTE),
("Reserved1", BYTE),
("ErrorOpcode", WORD),
("ErrorOffset", DWORD),
("ErrorSelector", WORD),
("Reserved2", WORD),
("DataOffset", DWORD),
("DataSelector", WORD),
("Reserved3", WORD),
("MxCsr", DWORD),
("MxCsr_Mask", DWORD),
("FloatRegisters", M128A * (8)),
("XmmRegisters", M128A * (8)),
("Reserved4", BYTE * (192)),
("StackControl", DWORD * (7)),
("Cr0NpxState", DWORD),
]
PXSAVE_FORMAT_32 = POINTER(_XSAVE_FORMAT_32)
XSAVE_FORMAT_32 = _XSAVE_FORMAT_32
class _ANON__ANON__CONTEXT64_SUB_UNION_1_SUB_STRUCTURE_1(Structure):
_fields_ = [
("Header", M128A * (2)),
("Legacy", M128A * (8)),
("Xmm0", M128A),
("Xmm1", M128A),
("Xmm2", M128A),
("Xmm3", M128A),
("Xmm4", M128A),
("Xmm5", M128A),
("Xmm6", M128A),
("Xmm7", M128A),
("Xmm8", M128A),
("Xmm9", M128A),
("Xmm10", M128A),
("Xmm11", M128A),
("Xmm12", M128A),
("Xmm13", M128A),
("Xmm14", M128A),
("Xmm15", M128A),
]
class _ANON__CONTEXT64_SUB_UNION_1(Union):
_anonymous_ = ("DUMMYSTRUCTNAME",)
_fields_ = [
("FltSave", XSAVE_FORMAT_64),
("DUMMYSTRUCTNAME", _ANON__ANON__CONTEXT64_SUB_UNION_1_SUB_STRUCTURE_1),
]
class _CONTEXT64(Structure):
_anonymous_ = ("DUMMYUNIONNAME",)
_fields_ = [
("P1Home", DWORD64),
("P2Home", DWORD64),
("P3Home", DWORD64),
("P4Home", DWORD64),
("P5Home", DWORD64),
("P6Home", DWORD64),
("ContextFlags", DWORD),
("MxCsr", DWORD),
("SegCs", WORD),
("SegDs", WORD),
("SegEs", WORD),
("SegFs", WORD),
("SegGs", WORD),
("SegSs", WORD),
("EFlags", DWORD),
("Dr0", DWORD64),
("Dr1", DWORD64),
("Dr2", DWORD64),
("Dr3", DWORD64),
("Dr6", DWORD64),
("Dr7", DWORD64),
("Rax", DWORD64),
("Rcx", DWORD64),
("Rdx", DWORD64),
("Rbx", DWORD64),
("Rsp", DWORD64),
("Rbp", DWORD64),
("Rsi", DWORD64),
("Rdi", DWORD64),
("R8", DWORD64),
("R9", DWORD64),
("R10", DWORD64),
("R11", DWORD64),
("R12", DWORD64),
("R13", DWORD64),
("R14", DWORD64),
("R15", DWORD64),
("Rip", DWORD64),
("DUMMYUNIONNAME", _ANON__CONTEXT64_SUB_UNION_1),
("VectorRegister", M128A * (26)),
("VectorControl", DWORD64),
("DebugControl", DWORD64),
("LastBranchToRip", DWORD64),
("LastBranchFromRip", DWORD64),
("LastExceptionToRip", DWORD64),
("LastExceptionFromRip", DWORD64),
]
CONTEXT64 = _CONTEXT64
LPCONTEXT64 = POINTER(_CONTEXT64)
PCONTEXT64 = POINTER(_CONTEXT64)
class _TRACE_PROVIDER_INFO(Structure):
_fields_ = [
("ProviderGuid", GUID),
@@ -6321,234 +6628,6 @@ LPPROCESS_INFORMATION = POINTER(_PROCESS_INFORMATION)
PPROCESS_INFORMATION = POINTER(_PROCESS_INFORMATION)
PROCESS_INFORMATION = _PROCESS_INFORMATION
class _FLOATING_SAVE_AREA(Structure):
_fields_ = [
("ControlWord", DWORD),
("StatusWord", DWORD),
("TagWord", DWORD),
("ErrorOffset", DWORD),
("ErrorSelector", DWORD),
("DataOffset", DWORD),
("DataSelector", DWORD),
("RegisterArea", BYTE * (80)),
("Cr0NpxState", DWORD),
]
FLOATING_SAVE_AREA = _FLOATING_SAVE_AREA
class _CONTEXT32(Structure):
_fields_ = [
("ContextFlags", DWORD),
("Dr0", DWORD),
("Dr1", DWORD),
("Dr2", DWORD),
("Dr3", DWORD),
("Dr6", DWORD),
("Dr7", DWORD),
("FloatSave", FLOATING_SAVE_AREA),
("SegGs", DWORD),
("SegFs", DWORD),
("SegEs", DWORD),
("SegDs", DWORD),
("Edi", DWORD),
("Esi", DWORD),
("Ebx", DWORD),
("Edx", DWORD),
("Ecx", DWORD),
("Eax", DWORD),
("Ebp", DWORD),
("Eip", DWORD),
("SegCs", DWORD),
("EFlags", DWORD),
("Esp", DWORD),
("SegSs", DWORD),
("ExtendedRegisters", BYTE * (512)),
]
CONTEXT32 = _CONTEXT32
LPCONTEXT32 = POINTER(_CONTEXT32)
PCONTEXT32 = POINTER(_CONTEXT32)
class _WOW64_FLOATING_SAVE_AREA(Structure):
_fields_ = [
("ControlWord", DWORD),
("StatusWord", DWORD),
("TagWord", DWORD),
("ErrorOffset", DWORD),
("ErrorSelector", DWORD),
("DataOffset", DWORD),
("DataSelector", DWORD),
("RegisterArea", BYTE * (WOW64_SIZE_OF_80387_REGISTERS)),
("Cr0NpxState", DWORD),
]
WOW64_FLOATING_SAVE_AREA = _WOW64_FLOATING_SAVE_AREA
class _WOW64_CONTEXT(Structure):
_fields_ = [
("ContextFlags", DWORD),
("Dr0", DWORD),
("Dr1", DWORD),
("Dr2", DWORD),
("Dr3", DWORD),
("Dr6", DWORD),
("Dr7", DWORD),
("FloatSave", WOW64_FLOATING_SAVE_AREA),
("SegGs", DWORD),
("SegFs", DWORD),
("SegEs", DWORD),
("SegDs", DWORD),
("Edi", DWORD),
("Esi", DWORD),
("Ebx", DWORD),
("Edx", DWORD),
("Ecx", DWORD),
("Eax", DWORD),
("Ebp", DWORD),
("Eip", DWORD),
("SegCs", DWORD),
("EFlags", DWORD),
("Esp", DWORD),
("SegSs", DWORD),
("ExtendedRegisters", BYTE * (WOW64_MAXIMUM_SUPPORTED_EXTENSION)),
]
PWOW64_CONTEXT = POINTER(_WOW64_CONTEXT)
WOW64_CONTEXT = _WOW64_CONTEXT
class _M128A(Structure):
_fields_ = [
("Low", ULONGLONG),
("High", LONGLONG),
]
M128A = _M128A
PM128A = POINTER(_M128A)
class _XSAVE_FORMAT_64(Structure):
_fields_ = [
("ControlWord", WORD),
("StatusWord", WORD),
("TagWord", BYTE),
("Reserved1", BYTE),
("ErrorOpcode", WORD),
("ErrorOffset", DWORD),
("ErrorSelector", WORD),
("Reserved2", WORD),
("DataOffset", DWORD),
("DataSelector", WORD),
("Reserved3", WORD),
("MxCsr", DWORD),
("MxCsr_Mask", DWORD),
("FloatRegisters", M128A * (8)),
("XmmRegisters", M128A * (16)),
("Reserved4", BYTE * (96)),
]
PXSAVE_FORMAT_64 = POINTER(_XSAVE_FORMAT_64)
XSAVE_FORMAT_64 = _XSAVE_FORMAT_64
class _XSAVE_FORMAT_32(Structure):
_fields_ = [
("ControlWord", WORD),
("StatusWord", WORD),
("TagWord", BYTE),
("Reserved1", BYTE),
("ErrorOpcode", WORD),
("ErrorOffset", DWORD),
("ErrorSelector", WORD),
("Reserved2", WORD),
("DataOffset", DWORD),
("DataSelector", WORD),
("Reserved3", WORD),
("MxCsr", DWORD),
("MxCsr_Mask", DWORD),
("FloatRegisters", M128A * (8)),
("XmmRegisters", M128A * (8)),
("Reserved4", BYTE * (192)),
("StackControl", DWORD * (7)),
("Cr0NpxState", DWORD),
]
PXSAVE_FORMAT_32 = POINTER(_XSAVE_FORMAT_32)
XSAVE_FORMAT_32 = _XSAVE_FORMAT_32
class _TMP_DUMMYSTRUCTNAME(Structure):
_fields_ = [
("Header", M128A * (2)),
("Legacy", M128A * (8)),
("Xmm0", M128A),
("Xmm1", M128A),
("Xmm2", M128A),
("Xmm3", M128A),
("Xmm4", M128A),
("Xmm5", M128A),
("Xmm6", M128A),
("Xmm7", M128A),
("Xmm8", M128A),
("Xmm9", M128A),
("Xmm10", M128A),
("Xmm11", M128A),
("Xmm12", M128A),
("Xmm13", M128A),
("Xmm14", M128A),
("Xmm15", M128A),
]
TMP_DUMMYSTRUCTNAME = _TMP_DUMMYSTRUCTNAME
class _TMP_CONTEXT64_SUBUNION(Union):
_fields_ = [
("FltSave", XSAVE_FORMAT_64),
("DUMMYSTRUCTNAME", TMP_DUMMYSTRUCTNAME),
]
TMP_CONTEXT64_SUBUNION = _TMP_CONTEXT64_SUBUNION
class _CONTEXT64(Structure):
_fields_ = [
("P1Home", DWORD64),
("P2Home", DWORD64),
("P3Home", DWORD64),
("P4Home", DWORD64),
("P5Home", DWORD64),
("P6Home", DWORD64),
("ContextFlags", DWORD),
("MxCsr", DWORD),
("SegCs", WORD),
("SegDs", WORD),
("SegEs", WORD),
("SegFs", WORD),
("SegGs", WORD),
("SegSs", WORD),
("EFlags", DWORD),
("Dr0", DWORD64),
("Dr1", DWORD64),
("Dr2", DWORD64),
("Dr3", DWORD64),
("Dr6", DWORD64),
("Dr7", DWORD64),
("Rax", DWORD64),
("Rcx", DWORD64),
("Rdx", DWORD64),
("Rbx", DWORD64),
("Rsp", DWORD64),
("Rbp", DWORD64),
("Rsi", DWORD64),
("Rdi", DWORD64),
("R8", DWORD64),
("R9", DWORD64),
("R10", DWORD64),
("R11", DWORD64),
("R12", DWORD64),
("R13", DWORD64),
("R14", DWORD64),
("R15", DWORD64),
("Rip", DWORD64),
("DUMMYUNIONNAME", TMP_CONTEXT64_SUBUNION),
("VectorRegister", M128A * (26)),
("VectorControl", DWORD64),
("DebugControl", DWORD64),
("LastBranchToRip", DWORD64),
("LastBranchFromRip", DWORD64),
("LastExceptionToRip", DWORD64),
("LastExceptionFromRip", DWORD64),
]
CONTEXT64 = _CONTEXT64
LPCONTEXT64 = POINTER(_CONTEXT64)
PCONTEXT64 = POINTER(_CONTEXT64)
class tagPROCESSENTRY32W(Structure):
_fields_ = [
("dwSize", DWORD),