diff --git a/ctypes_generation/definitions/defines/thread_context.txt b/ctypes_generation/definitions/defines/thread_context.txt new file mode 100644 index 0000000..5c0d2ab --- /dev/null +++ b/ctypes_generation/definitions/defines/thread_context.txt @@ -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 \ No newline at end of file diff --git a/ctypes_generation/definitions/defines/windef.txt b/ctypes_generation/definitions/defines/windef.txt index 6595c2e..cdea792 100644 --- a/ctypes_generation/definitions/defines/windef.txt +++ b/ctypes_generation/definitions/defines/windef.txt @@ -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 diff --git a/ctypes_generation/definitions/structures/thread_context.txt b/ctypes_generation/definitions/structures/thread_context.txt new file mode 100644 index 0000000..ac22e1f --- /dev/null +++ b/ctypes_generation/definitions/structures/thread_context.txt @@ -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; \ No newline at end of file diff --git a/ctypes_generation/definitions/structures/winstruct.txt b/ctypes_generation/definitions/structures/winstruct.txt index cd462b5..ae2589d 100644 --- a/ctypes_generation/definitions/structures/winstruct.txt +++ b/ctypes_generation/definitions/structures/winstruct.txt @@ -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 diff --git a/docs/source/windef_generated.rst b/docs/source/windef_generated.rst index 5ef88a5..45b2014 100644 --- a/docs/source/windef_generated.rst +++ b/docs/source/windef_generated.rst @@ -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 diff --git a/docs/source/winstructs_generated.rst b/docs/source/winstructs_generated.rst index 240a2ec..77d6560 100644 --- a/docs/source/winstructs_generated.rst +++ b/docs/source/winstructs_generated.rst @@ -11291,6 +11291,951 @@ _TEB :class:`ULONG` +_ARM64_NT_NEON128 +''''''''''''''''' +.. class:: ARM64_NT_NEON128 + + Alias for :class:`_ARM64_NT_NEON128` + +.. class:: PARM64_NT_NEON128 + + Pointer to :class:`_ARM64_NT_NEON128` + +.. class:: _ARM64_NT_NEON128 + + .. attribute:: DUMMYSTRUCTNAME + + :class:`_ANON__ARM64_NT_NEON128_SUB_STRUCTURE_1` + + + .. attribute:: D + + :class:`DOUBLE` ``[2]`` + + + .. attribute:: S + + :class:`FLOAT` ``[4]`` + + + .. attribute:: H + + :class:`WORD` ``[8]`` + + + .. attribute:: B + + :class:`BYTE` ``[16]`` + +_ARM64_NT_CONTEXT +''''''''''''''''' +.. class:: ARM64_NT_CONTEXT + + Alias for :class:`_ARM64_NT_CONTEXT` + +.. class:: PARM64_NT_CONTEXT + + Pointer to :class:`_ARM64_NT_CONTEXT` + +.. class:: _ARM64_NT_CONTEXT + + .. attribute:: ContextFlags + + :class:`DWORD` + + + .. attribute:: Cpsr + + :class:`DWORD` + + + .. attribute:: DUMMYUNIONNAME + + :class:`_ANON__ARM64_NT_CONTEXT_SUB_UNION_1` + + + .. attribute:: Sp + + :class:`DWORD64` + + + .. attribute:: Pc + + :class:`DWORD64` + + + .. attribute:: V + + :class:`ARM64_NT_NEON128` ``[32]`` + + + .. attribute:: Fpcr + + :class:`DWORD` + + + .. attribute:: Fpsr + + :class:`DWORD` + + + .. attribute:: Bcr + + :class:`DWORD` ``[ARM64_MAX_BREAKPOINTS]`` + + + .. attribute:: Bvr + + :class:`DWORD64` ``[ARM64_MAX_BREAKPOINTS]`` + + + .. attribute:: Wcr + + :class:`DWORD` ``[ARM64_MAX_WATCHPOINTS]`` + + + .. attribute:: Wvr + + :class:`DWORD64` ``[ARM64_MAX_WATCHPOINTS]`` + +_FLOATING_SAVE_AREA +''''''''''''''''''' +.. class:: FLOATING_SAVE_AREA + + Alias for :class:`_FLOATING_SAVE_AREA` + +.. class:: _FLOATING_SAVE_AREA + + .. attribute:: ControlWord + + :class:`DWORD` + + + .. attribute:: StatusWord + + :class:`DWORD` + + + .. attribute:: TagWord + + :class:`DWORD` + + + .. attribute:: ErrorOffset + + :class:`DWORD` + + + .. attribute:: ErrorSelector + + :class:`DWORD` + + + .. attribute:: DataOffset + + :class:`DWORD` + + + .. attribute:: DataSelector + + :class:`DWORD` + + + .. attribute:: RegisterArea + + :class:`BYTE` ``[80]`` + + + .. attribute:: Cr0NpxState + + :class:`DWORD` + +_CONTEXT32 +'''''''''' +.. class:: CONTEXT32 + + Alias for :class:`_CONTEXT32` + +.. class:: LPCONTEXT32 + + Pointer to :class:`_CONTEXT32` + +.. class:: PCONTEXT32 + + Pointer to :class:`_CONTEXT32` + +.. class:: _CONTEXT32 + + .. attribute:: ContextFlags + + :class:`DWORD` + + + .. attribute:: Dr0 + + :class:`DWORD` + + + .. attribute:: Dr1 + + :class:`DWORD` + + + .. attribute:: Dr2 + + :class:`DWORD` + + + .. attribute:: Dr3 + + :class:`DWORD` + + + .. attribute:: Dr6 + + :class:`DWORD` + + + .. attribute:: Dr7 + + :class:`DWORD` + + + .. attribute:: FloatSave + + :class:`FLOATING_SAVE_AREA` + + + .. attribute:: SegGs + + :class:`DWORD` + + + .. attribute:: SegFs + + :class:`DWORD` + + + .. attribute:: SegEs + + :class:`DWORD` + + + .. attribute:: SegDs + + :class:`DWORD` + + + .. attribute:: Edi + + :class:`DWORD` + + + .. attribute:: Esi + + :class:`DWORD` + + + .. attribute:: Ebx + + :class:`DWORD` + + + .. attribute:: Edx + + :class:`DWORD` + + + .. attribute:: Ecx + + :class:`DWORD` + + + .. attribute:: Eax + + :class:`DWORD` + + + .. attribute:: Ebp + + :class:`DWORD` + + + .. attribute:: Eip + + :class:`DWORD` + + + .. attribute:: SegCs + + :class:`DWORD` + + + .. attribute:: EFlags + + :class:`DWORD` + + + .. attribute:: Esp + + :class:`DWORD` + + + .. attribute:: SegSs + + :class:`DWORD` + + + .. attribute:: ExtendedRegisters + + :class:`BYTE` ``[512]`` + +_WOW64_FLOATING_SAVE_AREA +''''''''''''''''''''''''' +.. class:: WOW64_FLOATING_SAVE_AREA + + Alias for :class:`_WOW64_FLOATING_SAVE_AREA` + +.. class:: _WOW64_FLOATING_SAVE_AREA + + .. attribute:: ControlWord + + :class:`DWORD` + + + .. attribute:: StatusWord + + :class:`DWORD` + + + .. attribute:: TagWord + + :class:`DWORD` + + + .. attribute:: ErrorOffset + + :class:`DWORD` + + + .. attribute:: ErrorSelector + + :class:`DWORD` + + + .. attribute:: DataOffset + + :class:`DWORD` + + + .. attribute:: DataSelector + + :class:`DWORD` + + + .. attribute:: RegisterArea + + :class:`BYTE` ``[WOW64_SIZE_OF_80387_REGISTERS]`` + + + .. attribute:: Cr0NpxState + + :class:`DWORD` + +_WOW64_CONTEXT +'''''''''''''' +.. class:: PWOW64_CONTEXT + + Pointer to :class:`_WOW64_CONTEXT` + +.. class:: WOW64_CONTEXT + + Alias for :class:`_WOW64_CONTEXT` + +.. class:: _WOW64_CONTEXT + + .. attribute:: ContextFlags + + :class:`DWORD` + + + .. attribute:: Dr0 + + :class:`DWORD` + + + .. attribute:: Dr1 + + :class:`DWORD` + + + .. attribute:: Dr2 + + :class:`DWORD` + + + .. attribute:: Dr3 + + :class:`DWORD` + + + .. attribute:: Dr6 + + :class:`DWORD` + + + .. attribute:: Dr7 + + :class:`DWORD` + + + .. attribute:: FloatSave + + :class:`WOW64_FLOATING_SAVE_AREA` + + + .. attribute:: SegGs + + :class:`DWORD` + + + .. attribute:: SegFs + + :class:`DWORD` + + + .. attribute:: SegEs + + :class:`DWORD` + + + .. attribute:: SegDs + + :class:`DWORD` + + + .. attribute:: Edi + + :class:`DWORD` + + + .. attribute:: Esi + + :class:`DWORD` + + + .. attribute:: Ebx + + :class:`DWORD` + + + .. attribute:: Edx + + :class:`DWORD` + + + .. attribute:: Ecx + + :class:`DWORD` + + + .. attribute:: Eax + + :class:`DWORD` + + + .. attribute:: Ebp + + :class:`DWORD` + + + .. attribute:: Eip + + :class:`DWORD` + + + .. attribute:: SegCs + + :class:`DWORD` + + + .. attribute:: EFlags + + :class:`DWORD` + + + .. attribute:: Esp + + :class:`DWORD` + + + .. attribute:: SegSs + + :class:`DWORD` + + + .. attribute:: ExtendedRegisters + + :class:`BYTE` ``[WOW64_MAXIMUM_SUPPORTED_EXTENSION]`` + +_M128A +'''''' +.. class:: M128A + + Alias for :class:`_M128A` + +.. class:: PM128A + + Pointer to :class:`_M128A` + +.. class:: _M128A + + .. attribute:: Low + + :class:`ULONGLONG` + + + .. attribute:: High + + :class:`LONGLONG` + +_XSAVE_FORMAT_64 +'''''''''''''''' +.. class:: PXSAVE_FORMAT_64 + + Pointer to :class:`_XSAVE_FORMAT_64` + +.. class:: XSAVE_FORMAT_64 + + Alias for :class:`_XSAVE_FORMAT_64` + +.. class:: _XSAVE_FORMAT_64 + + .. attribute:: ControlWord + + :class:`WORD` + + + .. attribute:: StatusWord + + :class:`WORD` + + + .. attribute:: TagWord + + :class:`BYTE` + + + .. attribute:: Reserved1 + + :class:`BYTE` + + + .. attribute:: ErrorOpcode + + :class:`WORD` + + + .. attribute:: ErrorOffset + + :class:`DWORD` + + + .. attribute:: ErrorSelector + + :class:`WORD` + + + .. attribute:: Reserved2 + + :class:`WORD` + + + .. attribute:: DataOffset + + :class:`DWORD` + + + .. attribute:: DataSelector + + :class:`WORD` + + + .. attribute:: Reserved3 + + :class:`WORD` + + + .. attribute:: MxCsr + + :class:`DWORD` + + + .. attribute:: MxCsr_Mask + + :class:`DWORD` + + + .. attribute:: FloatRegisters + + :class:`M128A` ``[8]`` + + + .. attribute:: XmmRegisters + + :class:`M128A` ``[16]`` + + + .. attribute:: Reserved4 + + :class:`BYTE` ``[96]`` + +_XSAVE_FORMAT_32 +'''''''''''''''' +.. class:: PXSAVE_FORMAT_32 + + Pointer to :class:`_XSAVE_FORMAT_32` + +.. class:: XSAVE_FORMAT_32 + + Alias for :class:`_XSAVE_FORMAT_32` + +.. class:: _XSAVE_FORMAT_32 + + .. attribute:: ControlWord + + :class:`WORD` + + + .. attribute:: StatusWord + + :class:`WORD` + + + .. attribute:: TagWord + + :class:`BYTE` + + + .. attribute:: Reserved1 + + :class:`BYTE` + + + .. attribute:: ErrorOpcode + + :class:`WORD` + + + .. attribute:: ErrorOffset + + :class:`DWORD` + + + .. attribute:: ErrorSelector + + :class:`WORD` + + + .. attribute:: Reserved2 + + :class:`WORD` + + + .. attribute:: DataOffset + + :class:`DWORD` + + + .. attribute:: DataSelector + + :class:`WORD` + + + .. attribute:: Reserved3 + + :class:`WORD` + + + .. attribute:: MxCsr + + :class:`DWORD` + + + .. attribute:: MxCsr_Mask + + :class:`DWORD` + + + .. attribute:: FloatRegisters + + :class:`M128A` ``[8]`` + + + .. attribute:: XmmRegisters + + :class:`M128A` ``[8]`` + + + .. attribute:: Reserved4 + + :class:`BYTE` ``[192]`` + + + .. attribute:: StackControl + + :class:`DWORD` ``[7]`` + + + .. attribute:: Cr0NpxState + + :class:`DWORD` + +_CONTEXT64 +'''''''''' +.. class:: CONTEXT64 + + Alias for :class:`_CONTEXT64` + +.. class:: LPCONTEXT64 + + Pointer to :class:`_CONTEXT64` + +.. class:: PCONTEXT64 + + Pointer to :class:`_CONTEXT64` + +.. class:: _CONTEXT64 + + .. attribute:: P1Home + + :class:`DWORD64` + + + .. attribute:: P2Home + + :class:`DWORD64` + + + .. attribute:: P3Home + + :class:`DWORD64` + + + .. attribute:: P4Home + + :class:`DWORD64` + + + .. attribute:: P5Home + + :class:`DWORD64` + + + .. attribute:: P6Home + + :class:`DWORD64` + + + .. attribute:: ContextFlags + + :class:`DWORD` + + + .. attribute:: MxCsr + + :class:`DWORD` + + + .. attribute:: SegCs + + :class:`WORD` + + + .. attribute:: SegDs + + :class:`WORD` + + + .. attribute:: SegEs + + :class:`WORD` + + + .. attribute:: SegFs + + :class:`WORD` + + + .. attribute:: SegGs + + :class:`WORD` + + + .. attribute:: SegSs + + :class:`WORD` + + + .. attribute:: EFlags + + :class:`DWORD` + + + .. attribute:: Dr0 + + :class:`DWORD64` + + + .. attribute:: Dr1 + + :class:`DWORD64` + + + .. attribute:: Dr2 + + :class:`DWORD64` + + + .. attribute:: Dr3 + + :class:`DWORD64` + + + .. attribute:: Dr6 + + :class:`DWORD64` + + + .. attribute:: Dr7 + + :class:`DWORD64` + + + .. attribute:: Rax + + :class:`DWORD64` + + + .. attribute:: Rcx + + :class:`DWORD64` + + + .. attribute:: Rdx + + :class:`DWORD64` + + + .. attribute:: Rbx + + :class:`DWORD64` + + + .. attribute:: Rsp + + :class:`DWORD64` + + + .. attribute:: Rbp + + :class:`DWORD64` + + + .. attribute:: Rsi + + :class:`DWORD64` + + + .. attribute:: Rdi + + :class:`DWORD64` + + + .. attribute:: R8 + + :class:`DWORD64` + + + .. attribute:: R9 + + :class:`DWORD64` + + + .. attribute:: R10 + + :class:`DWORD64` + + + .. attribute:: R11 + + :class:`DWORD64` + + + .. attribute:: R12 + + :class:`DWORD64` + + + .. attribute:: R13 + + :class:`DWORD64` + + + .. attribute:: R14 + + :class:`DWORD64` + + + .. attribute:: R15 + + :class:`DWORD64` + + + .. attribute:: Rip + + :class:`DWORD64` + + + .. attribute:: DUMMYUNIONNAME + + :class:`_ANON__CONTEXT64_SUB_UNION_1` + + + .. attribute:: VectorRegister + + :class:`M128A` ``[26]`` + + + .. attribute:: VectorControl + + :class:`DWORD64` + + + .. attribute:: DebugControl + + :class:`DWORD64` + + + .. attribute:: LastBranchToRip + + :class:`DWORD64` + + + .. attribute:: LastBranchFromRip + + :class:`DWORD64` + + + .. attribute:: LastExceptionToRip + + :class:`DWORD64` + + + .. attribute:: LastExceptionFromRip + + :class:`DWORD64` + _TRACE_PROVIDER_INFO '''''''''''''''''''' .. class:: TRACE_PROVIDER_INFO @@ -12681,958 +13626,6 @@ _PROCESS_INFORMATION :class:`DWORD` -_FLOATING_SAVE_AREA -''''''''''''''''''' -.. class:: FLOATING_SAVE_AREA - - Alias for :class:`_FLOATING_SAVE_AREA` - -.. class:: _FLOATING_SAVE_AREA - - .. attribute:: ControlWord - - :class:`DWORD` - - - .. attribute:: StatusWord - - :class:`DWORD` - - - .. attribute:: TagWord - - :class:`DWORD` - - - .. attribute:: ErrorOffset - - :class:`DWORD` - - - .. attribute:: ErrorSelector - - :class:`DWORD` - - - .. attribute:: DataOffset - - :class:`DWORD` - - - .. attribute:: DataSelector - - :class:`DWORD` - - - .. attribute:: RegisterArea - - :class:`BYTE` ``[80]`` - - - .. attribute:: Cr0NpxState - - :class:`DWORD` - -_CONTEXT32 -'''''''''' -.. class:: CONTEXT32 - - Alias for :class:`_CONTEXT32` - -.. class:: LPCONTEXT32 - - Pointer to :class:`_CONTEXT32` - -.. class:: PCONTEXT32 - - Pointer to :class:`_CONTEXT32` - -.. class:: _CONTEXT32 - - .. attribute:: ContextFlags - - :class:`DWORD` - - - .. attribute:: Dr0 - - :class:`DWORD` - - - .. attribute:: Dr1 - - :class:`DWORD` - - - .. attribute:: Dr2 - - :class:`DWORD` - - - .. attribute:: Dr3 - - :class:`DWORD` - - - .. attribute:: Dr6 - - :class:`DWORD` - - - .. attribute:: Dr7 - - :class:`DWORD` - - - .. attribute:: FloatSave - - :class:`FLOATING_SAVE_AREA` - - - .. attribute:: SegGs - - :class:`DWORD` - - - .. attribute:: SegFs - - :class:`DWORD` - - - .. attribute:: SegEs - - :class:`DWORD` - - - .. attribute:: SegDs - - :class:`DWORD` - - - .. attribute:: Edi - - :class:`DWORD` - - - .. attribute:: Esi - - :class:`DWORD` - - - .. attribute:: Ebx - - :class:`DWORD` - - - .. attribute:: Edx - - :class:`DWORD` - - - .. attribute:: Ecx - - :class:`DWORD` - - - .. attribute:: Eax - - :class:`DWORD` - - - .. attribute:: Ebp - - :class:`DWORD` - - - .. attribute:: Eip - - :class:`DWORD` - - - .. attribute:: SegCs - - :class:`DWORD` - - - .. attribute:: EFlags - - :class:`DWORD` - - - .. attribute:: Esp - - :class:`DWORD` - - - .. attribute:: SegSs - - :class:`DWORD` - - - .. attribute:: ExtendedRegisters - - :class:`BYTE` ``[512]`` - -_WOW64_FLOATING_SAVE_AREA -''''''''''''''''''''''''' -.. class:: WOW64_FLOATING_SAVE_AREA - - Alias for :class:`_WOW64_FLOATING_SAVE_AREA` - -.. class:: _WOW64_FLOATING_SAVE_AREA - - .. attribute:: ControlWord - - :class:`DWORD` - - - .. attribute:: StatusWord - - :class:`DWORD` - - - .. attribute:: TagWord - - :class:`DWORD` - - - .. attribute:: ErrorOffset - - :class:`DWORD` - - - .. attribute:: ErrorSelector - - :class:`DWORD` - - - .. attribute:: DataOffset - - :class:`DWORD` - - - .. attribute:: DataSelector - - :class:`DWORD` - - - .. attribute:: RegisterArea - - :class:`BYTE` ``[WOW64_SIZE_OF_80387_REGISTERS]`` - - - .. attribute:: Cr0NpxState - - :class:`DWORD` - -_WOW64_CONTEXT -'''''''''''''' -.. class:: PWOW64_CONTEXT - - Pointer to :class:`_WOW64_CONTEXT` - -.. class:: WOW64_CONTEXT - - Alias for :class:`_WOW64_CONTEXT` - -.. class:: _WOW64_CONTEXT - - .. attribute:: ContextFlags - - :class:`DWORD` - - - .. attribute:: Dr0 - - :class:`DWORD` - - - .. attribute:: Dr1 - - :class:`DWORD` - - - .. attribute:: Dr2 - - :class:`DWORD` - - - .. attribute:: Dr3 - - :class:`DWORD` - - - .. attribute:: Dr6 - - :class:`DWORD` - - - .. attribute:: Dr7 - - :class:`DWORD` - - - .. attribute:: FloatSave - - :class:`WOW64_FLOATING_SAVE_AREA` - - - .. attribute:: SegGs - - :class:`DWORD` - - - .. attribute:: SegFs - - :class:`DWORD` - - - .. attribute:: SegEs - - :class:`DWORD` - - - .. attribute:: SegDs - - :class:`DWORD` - - - .. attribute:: Edi - - :class:`DWORD` - - - .. attribute:: Esi - - :class:`DWORD` - - - .. attribute:: Ebx - - :class:`DWORD` - - - .. attribute:: Edx - - :class:`DWORD` - - - .. attribute:: Ecx - - :class:`DWORD` - - - .. attribute:: Eax - - :class:`DWORD` - - - .. attribute:: Ebp - - :class:`DWORD` - - - .. attribute:: Eip - - :class:`DWORD` - - - .. attribute:: SegCs - - :class:`DWORD` - - - .. attribute:: EFlags - - :class:`DWORD` - - - .. attribute:: Esp - - :class:`DWORD` - - - .. attribute:: SegSs - - :class:`DWORD` - - - .. attribute:: ExtendedRegisters - - :class:`BYTE` ``[WOW64_MAXIMUM_SUPPORTED_EXTENSION]`` - -_M128A -'''''' -.. class:: M128A - - Alias for :class:`_M128A` - -.. class:: PM128A - - Pointer to :class:`_M128A` - -.. class:: _M128A - - .. attribute:: Low - - :class:`ULONGLONG` - - - .. attribute:: High - - :class:`LONGLONG` - -_XSAVE_FORMAT_64 -'''''''''''''''' -.. class:: PXSAVE_FORMAT_64 - - Pointer to :class:`_XSAVE_FORMAT_64` - -.. class:: XSAVE_FORMAT_64 - - Alias for :class:`_XSAVE_FORMAT_64` - -.. class:: _XSAVE_FORMAT_64 - - .. attribute:: ControlWord - - :class:`WORD` - - - .. attribute:: StatusWord - - :class:`WORD` - - - .. attribute:: TagWord - - :class:`BYTE` - - - .. attribute:: Reserved1 - - :class:`BYTE` - - - .. attribute:: ErrorOpcode - - :class:`WORD` - - - .. attribute:: ErrorOffset - - :class:`DWORD` - - - .. attribute:: ErrorSelector - - :class:`WORD` - - - .. attribute:: Reserved2 - - :class:`WORD` - - - .. attribute:: DataOffset - - :class:`DWORD` - - - .. attribute:: DataSelector - - :class:`WORD` - - - .. attribute:: Reserved3 - - :class:`WORD` - - - .. attribute:: MxCsr - - :class:`DWORD` - - - .. attribute:: MxCsr_Mask - - :class:`DWORD` - - - .. attribute:: FloatRegisters - - :class:`M128A` ``[8]`` - - - .. attribute:: XmmRegisters - - :class:`M128A` ``[16]`` - - - .. attribute:: Reserved4 - - :class:`BYTE` ``[96]`` - -_XSAVE_FORMAT_32 -'''''''''''''''' -.. class:: PXSAVE_FORMAT_32 - - Pointer to :class:`_XSAVE_FORMAT_32` - -.. class:: XSAVE_FORMAT_32 - - Alias for :class:`_XSAVE_FORMAT_32` - -.. class:: _XSAVE_FORMAT_32 - - .. attribute:: ControlWord - - :class:`WORD` - - - .. attribute:: StatusWord - - :class:`WORD` - - - .. attribute:: TagWord - - :class:`BYTE` - - - .. attribute:: Reserved1 - - :class:`BYTE` - - - .. attribute:: ErrorOpcode - - :class:`WORD` - - - .. attribute:: ErrorOffset - - :class:`DWORD` - - - .. attribute:: ErrorSelector - - :class:`WORD` - - - .. attribute:: Reserved2 - - :class:`WORD` - - - .. attribute:: DataOffset - - :class:`DWORD` - - - .. attribute:: DataSelector - - :class:`WORD` - - - .. attribute:: Reserved3 - - :class:`WORD` - - - .. attribute:: MxCsr - - :class:`DWORD` - - - .. attribute:: MxCsr_Mask - - :class:`DWORD` - - - .. attribute:: FloatRegisters - - :class:`M128A` ``[8]`` - - - .. attribute:: XmmRegisters - - :class:`M128A` ``[8]`` - - - .. attribute:: Reserved4 - - :class:`BYTE` ``[192]`` - - - .. attribute:: StackControl - - :class:`DWORD` ``[7]`` - - - .. attribute:: Cr0NpxState - - :class:`DWORD` - -_TMP_DUMMYSTRUCTNAME -'''''''''''''''''''' -.. class:: TMP_DUMMYSTRUCTNAME - - Alias for :class:`_TMP_DUMMYSTRUCTNAME` - -.. class:: _TMP_DUMMYSTRUCTNAME - - .. attribute:: Header - - :class:`M128A` ``[2]`` - - - .. attribute:: Legacy - - :class:`M128A` ``[8]`` - - - .. attribute:: Xmm0 - - :class:`M128A` - - - .. attribute:: Xmm1 - - :class:`M128A` - - - .. attribute:: Xmm2 - - :class:`M128A` - - - .. attribute:: Xmm3 - - :class:`M128A` - - - .. attribute:: Xmm4 - - :class:`M128A` - - - .. attribute:: Xmm5 - - :class:`M128A` - - - .. attribute:: Xmm6 - - :class:`M128A` - - - .. attribute:: Xmm7 - - :class:`M128A` - - - .. attribute:: Xmm8 - - :class:`M128A` - - - .. attribute:: Xmm9 - - :class:`M128A` - - - .. attribute:: Xmm10 - - :class:`M128A` - - - .. attribute:: Xmm11 - - :class:`M128A` - - - .. attribute:: Xmm12 - - :class:`M128A` - - - .. attribute:: Xmm13 - - :class:`M128A` - - - .. attribute:: Xmm14 - - :class:`M128A` - - - .. attribute:: Xmm15 - - :class:`M128A` - -_TMP_CONTEXT64_SUBUNION -''''''''''''''''''''''' -.. class:: TMP_CONTEXT64_SUBUNION - - Alias for :class:`_TMP_CONTEXT64_SUBUNION` - -.. class:: _TMP_CONTEXT64_SUBUNION - - .. attribute:: FltSave - - :class:`XSAVE_FORMAT_64` - - - .. attribute:: DUMMYSTRUCTNAME - - :class:`TMP_DUMMYSTRUCTNAME` - -_CONTEXT64 -'''''''''' -.. class:: CONTEXT64 - - Alias for :class:`_CONTEXT64` - -.. class:: LPCONTEXT64 - - Pointer to :class:`_CONTEXT64` - -.. class:: PCONTEXT64 - - Pointer to :class:`_CONTEXT64` - -.. class:: _CONTEXT64 - - .. attribute:: P1Home - - :class:`DWORD64` - - - .. attribute:: P2Home - - :class:`DWORD64` - - - .. attribute:: P3Home - - :class:`DWORD64` - - - .. attribute:: P4Home - - :class:`DWORD64` - - - .. attribute:: P5Home - - :class:`DWORD64` - - - .. attribute:: P6Home - - :class:`DWORD64` - - - .. attribute:: ContextFlags - - :class:`DWORD` - - - .. attribute:: MxCsr - - :class:`DWORD` - - - .. attribute:: SegCs - - :class:`WORD` - - - .. attribute:: SegDs - - :class:`WORD` - - - .. attribute:: SegEs - - :class:`WORD` - - - .. attribute:: SegFs - - :class:`WORD` - - - .. attribute:: SegGs - - :class:`WORD` - - - .. attribute:: SegSs - - :class:`WORD` - - - .. attribute:: EFlags - - :class:`DWORD` - - - .. attribute:: Dr0 - - :class:`DWORD64` - - - .. attribute:: Dr1 - - :class:`DWORD64` - - - .. attribute:: Dr2 - - :class:`DWORD64` - - - .. attribute:: Dr3 - - :class:`DWORD64` - - - .. attribute:: Dr6 - - :class:`DWORD64` - - - .. attribute:: Dr7 - - :class:`DWORD64` - - - .. attribute:: Rax - - :class:`DWORD64` - - - .. attribute:: Rcx - - :class:`DWORD64` - - - .. attribute:: Rdx - - :class:`DWORD64` - - - .. attribute:: Rbx - - :class:`DWORD64` - - - .. attribute:: Rsp - - :class:`DWORD64` - - - .. attribute:: Rbp - - :class:`DWORD64` - - - .. attribute:: Rsi - - :class:`DWORD64` - - - .. attribute:: Rdi - - :class:`DWORD64` - - - .. attribute:: R8 - - :class:`DWORD64` - - - .. attribute:: R9 - - :class:`DWORD64` - - - .. attribute:: R10 - - :class:`DWORD64` - - - .. attribute:: R11 - - :class:`DWORD64` - - - .. attribute:: R12 - - :class:`DWORD64` - - - .. attribute:: R13 - - :class:`DWORD64` - - - .. attribute:: R14 - - :class:`DWORD64` - - - .. attribute:: R15 - - :class:`DWORD64` - - - .. attribute:: Rip - - :class:`DWORD64` - - - .. attribute:: DUMMYUNIONNAME - - :class:`TMP_CONTEXT64_SUBUNION` - - - .. attribute:: VectorRegister - - :class:`M128A` ``[26]`` - - - .. attribute:: VectorControl - - :class:`DWORD64` - - - .. attribute:: DebugControl - - :class:`DWORD64` - - - .. attribute:: LastBranchToRip - - :class:`DWORD64` - - - .. attribute:: LastBranchFromRip - - :class:`DWORD64` - - - .. attribute:: LastExceptionToRip - - :class:`DWORD64` - - - .. attribute:: LastExceptionFromRip - - :class:`DWORD64` - tagPROCESSENTRY32W '''''''''''''''''' .. class:: LPPROCESSENTRY32W diff --git a/windows/generated_def/meta.py b/windows/generated_def/meta.py index 9dea2ff..a13d471 100644 --- a/windows/generated_def/meta.py +++ b/windows/generated_def/meta.py @@ -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', diff --git a/windows/generated_def/windef.py b/windows/generated_def/windef.py index d21e344..7a45703 100644 --- a/windows/generated_def/windef.py +++ b/windows/generated_def/windef.py @@ -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) diff --git a/windows/generated_def/winstructs.py b/windows/generated_def/winstructs.py index b1204df..2e67b77 100644 --- a/windows/generated_def/winstructs.py +++ b/windows/generated_def/winstructs.py @@ -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),