Define Thread Environment Block and related types
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include <xttypes.h>
|
||||
#include <xtstruct.h>
|
||||
#include <extypes.h>
|
||||
#include <iotypes.h>
|
||||
#include <mmtypes.h>
|
||||
#include <setypes.h>
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user