Define Thread Environment Block and related types
This commit is contained in:
@@ -12,6 +12,7 @@
|
|||||||
#include <xttypes.h>
|
#include <xttypes.h>
|
||||||
#include <xtstruct.h>
|
#include <xtstruct.h>
|
||||||
#include <extypes.h>
|
#include <extypes.h>
|
||||||
|
#include <iotypes.h>
|
||||||
#include <mmtypes.h>
|
#include <mmtypes.h>
|
||||||
#include <setypes.h>
|
#include <setypes.h>
|
||||||
|
|
||||||
@@ -200,7 +201,7 @@ typedef struct _PEB
|
|||||||
PVOID OemCodePageData;
|
PVOID OemCodePageData;
|
||||||
PVOID UnicodeCaseTableData;
|
PVOID UnicodeCaseTableData;
|
||||||
ULONG NumberOfProcessors;
|
ULONG NumberOfProcessors;
|
||||||
ULONG NtGlobalFlag;
|
ULONG GlobalFlag;
|
||||||
LARGE_INTEGER CriticalSectionTimeout;
|
LARGE_INTEGER CriticalSectionTimeout;
|
||||||
ULONG_PTR HeapSegmentReserve;
|
ULONG_PTR HeapSegmentReserve;
|
||||||
ULONG_PTR HeapSegmentCommit;
|
ULONG_PTR HeapSegmentCommit;
|
||||||
@@ -209,14 +210,7 @@ typedef struct _PEB
|
|||||||
ULONG NumberOfHeaps;
|
ULONG NumberOfHeaps;
|
||||||
ULONG MaximumNumberOfHeaps;
|
ULONG MaximumNumberOfHeaps;
|
||||||
PVOID *ProcessHeaps;
|
PVOID *ProcessHeaps;
|
||||||
PVOID GdiSharedHandleTable;
|
|
||||||
PVOID ProcessStarterHelper;
|
PVOID ProcessStarterHelper;
|
||||||
ULONG GdiDCAttributeList;
|
|
||||||
ULONG OSMajorVersion;
|
|
||||||
ULONG OSMinorVersion;
|
|
||||||
USHORT OSBuildNumber;
|
|
||||||
USHORT OSCSDVersion;
|
|
||||||
ULONG OSPlatformId;
|
|
||||||
ULONG ImageSubsystem;
|
ULONG ImageSubsystem;
|
||||||
ULONG ImageSubsystemMajorVersion;
|
ULONG ImageSubsystemMajorVersion;
|
||||||
ULONG ImageSubsystemMinorVersion;
|
ULONG ImageSubsystemMinorVersion;
|
||||||
@@ -244,5 +238,75 @@ typedef struct _PEB_FREE_BLOCK
|
|||||||
ULONG Size;
|
ULONG Size;
|
||||||
} PEB_FREE_BLOCK, *PPEB_FREE_BLOCK;
|
} 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 /* __XTOS_ASSEMBLER__ */
|
||||||
#endif /* __XTDK_PSTYPES_H */
|
#endif /* __XTDK_PSTYPES_H */
|
||||||
|
|||||||
@@ -182,6 +182,24 @@ typedef enum _RTL_VARIABLE_TYPE
|
|||||||
TypeWideString
|
TypeWideString
|
||||||
} RTL_VARIABLE_TYPE, *PRTL_VARIABLE_TYPE;
|
} 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 */
|
/* Runtime Library red-black tree balanced node structure definition */
|
||||||
typedef struct _RTL_BALANCED_NODE
|
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_SYSTEM_INFO ACPI_SYSTEM_INFO, *PACPI_SYSTEM_INFO;
|
||||||
typedef struct _ACPI_TIMER_INFO ACPI_TIMER_INFO, *PACPI_TIMER_INFO;
|
typedef struct _ACPI_TIMER_INFO ACPI_TIMER_INFO, *PACPI_TIMER_INFO;
|
||||||
typedef struct _ACPI_XSDT ACPI_XSDT, *PACPI_XSDT;
|
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_STRING ANSI_STRING, *PANSI_STRING;
|
||||||
typedef struct _ANSI_STRING32 ANSI_STRING32, *PANSI_STRING32;
|
typedef struct _ANSI_STRING32 ANSI_STRING32, *PANSI_STRING32;
|
||||||
typedef struct _ANSI_STRING64 ANSI_STRING64, *PANSI_STRING64;
|
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_IDENTITY PROCESSOR_IDENTITY, *PPROCESSOR_IDENTITY;
|
||||||
typedef struct _PROCESSOR_POWER_STATE PROCESSOR_POWER_STATE, *PPROCESSOR_POWER_STATE;
|
typedef struct _PROCESSOR_POWER_STATE PROCESSOR_POWER_STATE, *PPROCESSOR_POWER_STATE;
|
||||||
typedef struct _QUAD QUAD, *PQUAD;
|
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_BALANCED_NODE RTL_BALANCED_NODE, *PRTL_BALANCED_NODE;
|
||||||
typedef struct _RTL_BITMAP RTL_BITMAP, *PRTL_BITMAP;
|
typedef struct _RTL_BITMAP RTL_BITMAP, *PRTL_BITMAP;
|
||||||
typedef struct _RTL_PRINT_CONTEXT RTL_PRINT_CONTEXT, *PRTL_PRINT_CONTEXT;
|
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 _STRING32 STRING32, *PSTRING32;
|
||||||
typedef struct _STRING64 STRING64, *PSTRING64;
|
typedef struct _STRING64 STRING64, *PSTRING64;
|
||||||
typedef struct _SYSTEM_POWER_STATE_CONTEXT SYSTEM_POWER_STATE_CONTEXT, *PSYSTEM_POWER_STATE_CONTEXT;
|
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 _THREAD_INFORMATION_BLOCK THREAD_INFORMATION_BLOCK, *PTHREAD_INFORMATION_BLOCK;
|
||||||
typedef struct _TIME_FIELDS TIME_FIELDS, *PTIME_FIELDS;
|
typedef struct _TIME_FIELDS TIME_FIELDS, *PTIME_FIELDS;
|
||||||
typedef struct _TIMER_ROUTINES TIMER_ROUTINES, *PTIMER_ROUTINES;
|
typedef struct _TIMER_ROUTINES TIMER_ROUTINES, *PTIMER_ROUTINES;
|
||||||
|
|||||||
Reference in New Issue
Block a user