diff --git a/sdk/xtdk/pstypes.h b/sdk/xtdk/pstypes.h index 2be3001..2562ce6 100644 --- a/sdk/xtdk/pstypes.h +++ b/sdk/xtdk/pstypes.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -195,12 +196,12 @@ typedef struct _PEB ULONG TlsBitmapBits[2]; PVOID ReadOnlySharedMemoryBase; PVOID HotpatchInformation; - PVOID* ReadOnlyStaticServerData; + PVOID *ReadOnlyStaticServerData; PVOID AnsiCodePageData; PVOID OemCodePageData; PVOID UnicodeCaseTableData; ULONG NumberOfProcessors; - ULONG NtGlobalFlag; + ULONG GlobalFlag; LARGE_INTEGER CriticalSectionTimeout; ULONG_PTR HeapSegmentReserve; ULONG_PTR HeapSegmentCommit; @@ -208,15 +209,8 @@ typedef struct _PEB ULONG_PTR HeapDeCommitFreeBlockThreshold; ULONG NumberOfHeaps; ULONG MaximumNumberOfHeaps; - PVOID* ProcessHeaps; - PVOID GdiSharedHandleTable; + PVOID *ProcessHeaps; PVOID ProcessStarterHelper; - ULONG GdiDCAttributeList; - ULONG OSMajorVersion; - ULONG OSMinorVersion; - USHORT OSBuildNumber; - USHORT OSCSDVersion; - ULONG OSPlatformId; ULONG ImageSubsystem; ULONG ImageSubsystemMajorVersion; ULONG ImageSubsystemMinorVersion; @@ -230,7 +224,7 @@ typedef struct _PEB PVOID AppCompatInfo; UNICODE_STRING CSDVersion; ULONG_PTR MinimumStackCommit; - PVOID* FlsCallback; + PVOID *FlsCallback; LIST_ENTRY FlsListHead; PVOID FlsBitmap; ULONG FlsBitmapBits[4]; @@ -244,5 +238,75 @@ typedef struct _PEB_FREE_BLOCK ULONG Size; } PEB_FREE_BLOCK, *PPEB_FREE_BLOCK; +/* Kernel's representation of a thread environment block */ +typedef struct _TEB +{ + THREAD_INFORMATION_BLOCK ThreadInformationBlock; + PVOID EnvironmentPointer; + CLIENT_ID ClientId; + PVOID ActiveRpcHandle; + PVOID ThreadLocalStoragePointer; + PPEB ProcessEnvironmentBlock; + ULONG LastErrorValue; + ULONG CountOfOwnedCriticalSections; + ULONG UserReserved[5]; + LCID CurrentLocale; + ULONG FpSoftwareStatusRegister; + PVOID SystemReserved1[54]; + LONG ExceptionCode; + PACTIVATION_CONTEXT_STACK ActivationContextStackPointer; + CLIENT_ID RealClientId; + ULONG LastStatusValue; + UNICODE_STRING StaticUnicodeString; + WCHAR StaticUnicodeBuffer[261]; + PVOID DeallocationStack; + PVOID TlsSlots[64]; + LIST_ENTRY TlsLinks; + PVOID ReservedForNtRpc; + PVOID DbgSsReserved[2]; + ULONG HardErrorMode; + PVOID Instrumentation[14]; + PVOID SubProcessTag; + PVOID EtwTraceData; + PVOID WinSockData; + BOOLEAN InDbgPrint; + BOOLEAN FreeStackOnTermination; + BOOLEAN HasFiberData; + UCHAR IdealProcessor; + ULONG GuaranteedStackBytes; + PVOID ReservedForPerf; + PVOID ReservedForOle; + ULONG WaitingOnLoaderLock; + ULONG_PTR SparePointer1; + ULONG_PTR SoftPatchPtr1; + ULONG_PTR SoftPatchPtr2; + PVOID *TlsExpansionSlots; + ULONG ImpersonationLocale; + ULONG IsImpersonating; + PVOID NlsCache; + PVOID ShimData; + ULONG HeapVirtualAffinity; + HANDLE CurrentTransactionHandle; + PTEB_ACTIVE_FRAME ActiveFrame; + PVOID FlsData; + BOOLEAN SafeThunkCall; + BOOLEAN BooleanSpare[3]; +} TEB, *PTEB; + +/* Thread Environment Block Active Frame structure definition */ +typedef struct _TEB_ACTIVE_FRAME +{ + ULONG Flags; + PTEB_ACTIVE_FRAME Previous; + PTEB_ACTIVE_FRAME_CONTEXT Context; +} TEB_ACTIVE_FRAME, *PTEB_ACTIVE_FRAME; + +/* Thread Environment Block Active Frame Context structure definition */ +typedef struct _TEB_ACTIVE_FRAME_CONTEXT +{ + ULONG Flags; + LPSTR FrameName; +} TEB_ACTIVE_FRAME_CONTEXT, *PTEB_ACTIVE_FRAME_CONTEXT; + #endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_PSTYPES_H */ diff --git a/sdk/xtdk/rtltypes.h b/sdk/xtdk/rtltypes.h index 3311b66..c2ba09e 100644 --- a/sdk/xtdk/rtltypes.h +++ b/sdk/xtdk/rtltypes.h @@ -182,6 +182,24 @@ typedef enum _RTL_VARIABLE_TYPE TypeWideString } RTL_VARIABLE_TYPE, *PRTL_VARIABLE_TYPE; +/* Activation context stack structure definition */ +typedef struct _ACTIVATION_CONTEXT_STACK +{ + PRTL_ACTIVATION_CONTEXT_STACK_FRAME ActiveFrame; + LIST_ENTRY FrameListCache; + ULONG Flags; + ULONG NextCookieSequenceNumber; + ULONG StackId; +} ACTIVATION_CONTEXT_STACK, *PACTIVATION_CONTEXT_STACK; + +/* Activation context stack frame structure definition */ +typedef struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME +{ + PRTL_ACTIVATION_CONTEXT_STACK_FRAME Previous; + PVOID ActivationContext; + ULONG Flags; +} RTL_ACTIVATION_CONTEXT_STACK_FRAME, *PRTL_ACTIVATION_CONTEXT_STACK_FRAME; + /* Runtime Library red-black tree balanced node structure definition */ typedef struct _RTL_BALANCED_NODE { diff --git a/sdk/xtdk/xtstruct.h b/sdk/xtdk/xtstruct.h index cd35639..ea4a468 100644 --- a/sdk/xtdk/xtstruct.h +++ b/sdk/xtdk/xtstruct.h @@ -105,6 +105,7 @@ typedef struct _ACPI_SUBTABLE_HEADER ACPI_SUBTABLE_HEADER, *PACPI_SUBTABLE_HEADE typedef struct _ACPI_SYSTEM_INFO ACPI_SYSTEM_INFO, *PACPI_SYSTEM_INFO; typedef struct _ACPI_TIMER_INFO ACPI_TIMER_INFO, *PACPI_TIMER_INFO; typedef struct _ACPI_XSDT ACPI_XSDT, *PACPI_XSDT; +typedef struct _ACTIVATION_CONTEXT_STACK ACTIVATION_CONTEXT_STACK, *PACTIVATION_CONTEXT_STACK; typedef struct _ANSI_STRING ANSI_STRING, *PANSI_STRING; typedef struct _ANSI_STRING32 ANSI_STRING32, *PANSI_STRING32; typedef struct _ANSI_STRING64 ANSI_STRING64, *PANSI_STRING64; @@ -440,6 +441,7 @@ typedef struct _PRIVILEGE_SET PRIVILEGE_SET, *PPRIVILEGE_SET; typedef struct _PROCESSOR_IDENTITY PROCESSOR_IDENTITY, *PPROCESSOR_IDENTITY; typedef struct _PROCESSOR_POWER_STATE PROCESSOR_POWER_STATE, *PPROCESSOR_POWER_STATE; typedef struct _QUAD QUAD, *PQUAD; +typedef struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME RTL_ACTIVATION_CONTEXT_STACK_FRAME, *PRTL_ACTIVATION_CONTEXT_STACK_FRAME; typedef struct _RTL_BALANCED_NODE RTL_BALANCED_NODE, *PRTL_BALANCED_NODE; typedef struct _RTL_BITMAP RTL_BITMAP, *PRTL_BITMAP; typedef struct _RTL_PRINT_CONTEXT RTL_PRINT_CONTEXT, *PRTL_PRINT_CONTEXT; @@ -460,6 +462,9 @@ typedef struct _STRING STRING, *PSTRING; typedef struct _STRING32 STRING32, *PSTRING32; typedef struct _STRING64 STRING64, *PSTRING64; typedef struct _SYSTEM_POWER_STATE_CONTEXT SYSTEM_POWER_STATE_CONTEXT, *PSYSTEM_POWER_STATE_CONTEXT; +typedef struct _TEB TEB, *PTEB; +typedef struct _TEB_ACTIVE_FRAME TEB_ACTIVE_FRAME, *PTEB_ACTIVE_FRAME; +typedef struct _TEB_ACTIVE_FRAME_CONTEXT TEB_ACTIVE_FRAME_CONTEXT, *PTEB_ACTIVE_FRAME_CONTEXT; typedef struct _THREAD_INFORMATION_BLOCK THREAD_INFORMATION_BLOCK, *PTHREAD_INFORMATION_BLOCK; typedef struct _TIME_FIELDS TIME_FIELDS, *PTIME_FIELDS; typedef struct _TIMER_ROUTINES TIMER_ROUTINES, *PTIMER_ROUTINES;