include: Always define 32- and 64-bit versions of the TEB and PEB structures.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
784faaaea4
commit
e2659819b8
|
@ -578,27 +578,6 @@ struct cpu
|
|||
|
||||
extern struct cpu* dbghelp_current_cpu DECLSPEC_HIDDEN;
|
||||
|
||||
/* Abbreviated 32-bit PEB */
|
||||
typedef struct _PEB32
|
||||
{
|
||||
BOOLEAN InheritedAddressSpace;
|
||||
BOOLEAN ReadImageFileExecOptions;
|
||||
BOOLEAN BeingDebugged;
|
||||
BOOLEAN SpareBool;
|
||||
DWORD Mutant;
|
||||
DWORD ImageBaseAddress;
|
||||
DWORD LdrData;
|
||||
DWORD ProcessParameters;
|
||||
DWORD SubSystemData;
|
||||
DWORD ProcessHeap;
|
||||
DWORD FastPebLock;
|
||||
DWORD FastPebLockRoutine;
|
||||
DWORD FastPebUnlockRoutine;
|
||||
ULONG EnvironmentUpdateCount;
|
||||
DWORD KernelCallbackTable;
|
||||
ULONG Reserved[2];
|
||||
} PEB32;
|
||||
|
||||
/* dbghelp.c */
|
||||
extern struct process* process_find_by_handle(HANDLE hProcess) DECLSPEC_HIDDEN;
|
||||
extern BOOL validate_addr64(DWORD64 addr) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -741,38 +741,6 @@ HRESULT WINAPI /* DECLSPEC_HOTPATCH */ WerUnregisterRuntimeExceptionModule( cons
|
|||
***********************************************************************/
|
||||
|
||||
|
||||
typedef struct _PEB32
|
||||
{
|
||||
BOOLEAN InheritedAddressSpace;
|
||||
BOOLEAN ReadImageFileExecOptions;
|
||||
BOOLEAN BeingDebugged;
|
||||
BOOLEAN SpareBool;
|
||||
DWORD Mutant;
|
||||
DWORD ImageBaseAddress;
|
||||
DWORD LdrData;
|
||||
} PEB32;
|
||||
|
||||
typedef struct _LIST_ENTRY32
|
||||
{
|
||||
DWORD Flink;
|
||||
DWORD Blink;
|
||||
} LIST_ENTRY32;
|
||||
|
||||
typedef struct _PEB_LDR_DATA32
|
||||
{
|
||||
ULONG Length;
|
||||
BOOLEAN Initialized;
|
||||
DWORD SsHandle;
|
||||
LIST_ENTRY32 InLoadOrderModuleList;
|
||||
} PEB_LDR_DATA32;
|
||||
|
||||
typedef struct _UNICODE_STRING32
|
||||
{
|
||||
USHORT Length;
|
||||
USHORT MaximumLength;
|
||||
DWORD Buffer;
|
||||
} UNICODE_STRING32;
|
||||
|
||||
typedef struct _LDR_DATA_TABLE_ENTRY32
|
||||
{
|
||||
LIST_ENTRY32 InLoadOrderModuleList;
|
||||
|
|
|
@ -504,9 +504,18 @@ typedef struct _TEB
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* The 64-bit version of the PEB and TEB for WoW64
|
||||
* The 32-bit/64-bit version of the PEB and TEB for WoW64
|
||||
*/
|
||||
#ifndef _WIN64
|
||||
typedef struct _NT_TIB32
|
||||
{
|
||||
ULONG ExceptionList; /* 0000 */
|
||||
ULONG StackBase; /* 0004 */
|
||||
ULONG StackLimit; /* 0008 */
|
||||
ULONG SubSystemTib; /* 000c */
|
||||
ULONG FiberData; /* 0010 */
|
||||
ULONG ArbitraryUserPointer; /* 0014 */
|
||||
ULONG Self; /* 0018 */
|
||||
} NT_TIB32;
|
||||
|
||||
typedef struct _NT_TIB64
|
||||
{
|
||||
|
@ -519,18 +528,37 @@ typedef struct _NT_TIB64
|
|||
ULONG64 Self; /* 0030 */
|
||||
} NT_TIB64;
|
||||
|
||||
typedef struct _CLIENT_ID32
|
||||
{
|
||||
ULONG UniqueProcess;
|
||||
ULONG UniqueThread;
|
||||
} CLIENT_ID32;
|
||||
|
||||
typedef struct _CLIENT_ID64
|
||||
{
|
||||
ULONG64 UniqueProcess;
|
||||
ULONG64 UniqueThread;
|
||||
} CLIENT_ID64;
|
||||
|
||||
typedef struct _LIST_ENTRY32
|
||||
{
|
||||
ULONG Flink;
|
||||
ULONG Blink;
|
||||
} LIST_ENTRY32;
|
||||
|
||||
typedef struct _LIST_ENTRY64
|
||||
{
|
||||
ULONG64 Flink;
|
||||
ULONG64 Blink;
|
||||
} LIST_ENTRY64;
|
||||
|
||||
typedef struct _UNICODE_STRING32
|
||||
{
|
||||
USHORT Length;
|
||||
USHORT MaximumLength;
|
||||
ULONG Buffer;
|
||||
} UNICODE_STRING32;
|
||||
|
||||
typedef struct _UNICODE_STRING64
|
||||
{
|
||||
USHORT Length;
|
||||
|
@ -538,6 +566,15 @@ typedef struct _UNICODE_STRING64
|
|||
ULONG64 Buffer;
|
||||
} UNICODE_STRING64;
|
||||
|
||||
typedef struct _ACTIVATION_CONTEXT_STACK32
|
||||
{
|
||||
ULONG ActiveFrame;
|
||||
LIST_ENTRY32 FrameListCache;
|
||||
ULONG Flags;
|
||||
ULONG NextCookieSequenceNumber;
|
||||
ULONG32 StackId;
|
||||
} ACTIVATION_CONTEXT_STACK32;
|
||||
|
||||
typedef struct _ACTIVATION_CONTEXT_STACK64
|
||||
{
|
||||
ULONG64 ActiveFrame;
|
||||
|
@ -547,6 +584,123 @@ typedef struct _ACTIVATION_CONTEXT_STACK64
|
|||
ULONG64 StackId;
|
||||
} ACTIVATION_CONTEXT_STACK64;
|
||||
|
||||
typedef struct _PEB_LDR_DATA32
|
||||
{
|
||||
ULONG Length;
|
||||
BOOLEAN Initialized;
|
||||
ULONG SsHandle;
|
||||
LIST_ENTRY32 InLoadOrderModuleList;
|
||||
LIST_ENTRY32 InMemoryOrderModuleList;
|
||||
LIST_ENTRY32 InInitializationOrderModuleList;
|
||||
ULONG EntryInProgress;
|
||||
BOOLEAN ShutdownInProgress;
|
||||
ULONG ShutdownThreadId;
|
||||
} PEB_LDR_DATA32, *PPEB_LDR_DATA32;
|
||||
|
||||
typedef struct _PEB_LDR_DATA64
|
||||
{
|
||||
ULONG Length;
|
||||
BOOLEAN Initialized;
|
||||
ULONG64 SsHandle;
|
||||
LIST_ENTRY64 InLoadOrderModuleList;
|
||||
LIST_ENTRY64 InMemoryOrderModuleList;
|
||||
LIST_ENTRY64 InInitializationOrderModuleList;
|
||||
ULONG64 EntryInProgress;
|
||||
BOOLEAN ShutdownInProgress;
|
||||
ULONG64 ShutdownThreadId;
|
||||
} PEB_LDR_DATA64, *PPEB_LDR_DATA64;
|
||||
|
||||
typedef struct _PEB32
|
||||
{
|
||||
BOOLEAN InheritedAddressSpace; /* 0000 */
|
||||
BOOLEAN ReadImageFileExecOptions; /* 0001 */
|
||||
BOOLEAN BeingDebugged; /* 0002 */
|
||||
BOOLEAN SpareBool; /* 0003 */
|
||||
ULONG Mutant; /* 0004 */
|
||||
ULONG ImageBaseAddress; /* 0008 */
|
||||
ULONG LdrData; /* 000c */
|
||||
ULONG ProcessParameters; /* 0010 */
|
||||
ULONG SubSystemData; /* 0014 */
|
||||
ULONG ProcessHeap; /* 0018 */
|
||||
ULONG FastPebLock; /* 001c */
|
||||
ULONG FastPebLockRoutine; /* 0020 */
|
||||
ULONG FastPebUnlockRoutine; /* 0024 */
|
||||
ULONG EnvironmentUpdateCount; /* 0028 */
|
||||
ULONG KernelCallbackTable; /* 002c */
|
||||
ULONG Reserved; /* 0030 */
|
||||
ULONG AtlThunkSListPtr32; /* 0034 */
|
||||
ULONG FreeList; /* 0038 */
|
||||
ULONG TlsExpansionCounter; /* 003c */
|
||||
ULONG TlsBitmap; /* 0040 */
|
||||
ULONG TlsBitmapBits[2]; /* 0044 */
|
||||
ULONG ReadOnlySharedMemoryBase; /* 004c */
|
||||
ULONG ReadOnlySharedMemoryHeap; /* 0050 */
|
||||
ULONG ReadOnlyStaticServerData; /* 0054 */
|
||||
ULONG AnsiCodePageData; /* 0058 */
|
||||
ULONG OemCodePageData; /* 005c */
|
||||
ULONG UnicodeCaseTableData; /* 0060 */
|
||||
ULONG NumberOfProcessors; /* 0064 */
|
||||
ULONG NtGlobalFlag; /* 0068 */
|
||||
LARGE_INTEGER CriticalSectionTimeout; /* 0070 */
|
||||
ULONG HeapSegmentReserve; /* 0078 */
|
||||
ULONG HeapSegmentCommit; /* 007c */
|
||||
ULONG HeapDeCommitTotalFreeThreshold; /* 0080 */
|
||||
ULONG HeapDeCommitFreeBlockThreshold; /* 0084 */
|
||||
ULONG NumberOfHeaps; /* 0088 */
|
||||
ULONG MaximumNumberOfHeaps; /* 008c */
|
||||
ULONG ProcessHeaps; /* 0090 */
|
||||
ULONG GdiSharedHandleTable; /* 0094 */
|
||||
ULONG ProcessStarterHelper; /* 0098 */
|
||||
ULONG GdiDCAttributeList; /* 009c */
|
||||
ULONG LoaderLock; /* 00a0 */
|
||||
ULONG OSMajorVersion; /* 00a4 */
|
||||
ULONG OSMinorVersion; /* 00a8 */
|
||||
ULONG OSBuildNumber; /* 00ac */
|
||||
ULONG OSPlatformId; /* 00b0 */
|
||||
ULONG ImageSubSystem; /* 00b4 */
|
||||
ULONG ImageSubSystemMajorVersion; /* 00b8 */
|
||||
ULONG ImageSubSystemMinorVersion; /* 00bc */
|
||||
ULONG ImageProcessAffinityMask; /* 00c0 */
|
||||
ULONG GdiHandleBuffer[28]; /* 00c4 */
|
||||
ULONG unknown[6]; /* 0134 */
|
||||
ULONG PostProcessInitRoutine; /* 014c */
|
||||
ULONG TlsExpansionBitmap; /* 0150 */
|
||||
ULONG TlsExpansionBitmapBits[32]; /* 0154 */
|
||||
ULONG SessionId; /* 01d4 */
|
||||
ULARGE_INTEGER AppCompatFlags; /* 01d8 */
|
||||
ULARGE_INTEGER AppCompatFlagsUser; /* 01e0 */
|
||||
ULONG ShimData; /* 01e8 */
|
||||
ULONG AppCompatInfo; /* 01ec */
|
||||
UNICODE_STRING CSDVersion; /* 01f0 */
|
||||
ULONG ActivationContextData; /* 01f8 */
|
||||
ULONG ProcessAssemblyStorageMap; /* 01fc */
|
||||
ULONG SystemDefaultActivationData; /* 0200 */
|
||||
ULONG SystemAssemblyStorageMap; /* 0204 */
|
||||
ULONG MinimumStackCommit; /* 0208 */
|
||||
ULONG FlsCallback; /* 020c */
|
||||
LIST_ENTRY FlsListHead; /* 0210 */
|
||||
ULONG FlsBitmap; /* 0218 */
|
||||
ULONG FlsBitmapBits[4]; /* 021c */
|
||||
ULONG FlsHighIndex; /* 022c */
|
||||
ULONG WerRegistrationData; /* 0230 */
|
||||
ULONG WerShipAssertPtr; /* 0234 */
|
||||
ULONG pUnused; /* 0238 */
|
||||
ULONG pImageHeaderHash; /* 023c */
|
||||
ULONG TracingFlags; /* 0240 */
|
||||
ULONGLONG CsrServerReadOnlySharedMemoryBase; /* 0248 */
|
||||
ULONG TppWorkerpListLock; /* 0250 */
|
||||
LIST_ENTRY TppWorkerpList; /* 0254 */
|
||||
ULONG WaitOnAddressHashTable [0x80]; /* 025c */
|
||||
ULONG TelemetryCoverageHeader; /* 045c */
|
||||
ULONG CloudFileFlags; /* 0460 */
|
||||
ULONG CloudFileDiagFlags; /* 0464 */
|
||||
CHAR PlaceholderCompatibilityMode; /* 0468 */
|
||||
CHAR PlaceholderCompatibilityModeReserved[7]; /* 0469 */
|
||||
ULONG LeapSecondData; /* 0470 */
|
||||
ULONG LeapSecondFlags; /* 0474 */
|
||||
ULONG NtGlobalFlag2; /* 0478 */
|
||||
} PEB32;
|
||||
|
||||
typedef struct _PEB64
|
||||
{
|
||||
BOOLEAN InheritedAddressSpace; /* 0000 */
|
||||
|
@ -638,6 +792,98 @@ typedef struct _PEB64
|
|||
ULONG NtGlobalFlag2; /* 07c4 */
|
||||
} PEB64;
|
||||
|
||||
typedef struct _TEB32
|
||||
{
|
||||
NT_TIB32 Tib; /* 0000 */
|
||||
ULONG EnvironmentPointer; /* 001c */
|
||||
CLIENT_ID32 ClientId; /* 0020 */
|
||||
ULONG ActiveRpcHandle; /* 0028 */
|
||||
ULONG ThreadLocalStoragePointer; /* 002c */
|
||||
ULONG Peb; /* 0030 */
|
||||
ULONG LastErrorValue; /* 0034 */
|
||||
ULONG CountOfOwnedCriticalSections; /* 0038 */
|
||||
ULONG CsrClientThread; /* 003c */
|
||||
ULONG Win32ThreadInfo; /* 0040 */
|
||||
ULONG User32Reserved[26]; /* 0044 */
|
||||
ULONG UserReserved[5]; /* 00ac */
|
||||
ULONG WOW32Reserved; /* 00c0 */
|
||||
ULONG CurrentLocale; /* 00c4 */
|
||||
ULONG FpSoftwareStatusRegister; /* 00c8 */
|
||||
ULONG ReservedForDebuggerInstrumentation[16]; /* 00cc */
|
||||
ULONG SystemReserved1[26]; /* 010c */
|
||||
char PlaceholderCompatibilityMode; /* 0174 */
|
||||
char PlaceholderReserved[11]; /* 0175 */
|
||||
DWORD ProxiedProcessId; /* 0180 */
|
||||
ACTIVATION_CONTEXT_STACK32 ActivationContextStack; /* 0184 */
|
||||
UCHAR WorkingOnBehalfOfTicket[8]; /* 019c */
|
||||
LONG ExceptionCode; /* 01a4 */
|
||||
ULONG ActivationContextStackPointer; /* 01a8 */
|
||||
ULONG InstrumentationCallbackSp; /* 01ac */
|
||||
ULONG InstrumentationCallbackPreviousPc; /* 01b0 */
|
||||
ULONG InstrumentationCallbackPreviousSp; /* 01b4 */
|
||||
BOOLEAN InstrumentationCallbackDisabled; /* 01b8 */
|
||||
BYTE SpareBytes1[23]; /* 01b9 */
|
||||
ULONG TxFsContext; /* 01d0 */
|
||||
ULONG GdiTebBatch[0x138]; /* 01d4 */
|
||||
CLIENT_ID32 RealClientId; /* 06b4 */
|
||||
ULONG GdiCachedProcessHandle; /* 06bc */
|
||||
ULONG GdiClientPID; /* 06c0 */
|
||||
ULONG GdiClientTID; /* 06c4 */
|
||||
ULONG GdiThreadLocaleInfo; /* 06c8 */
|
||||
ULONG Win32ClientInfo[62]; /* 06cc */
|
||||
ULONG glDispatchTable[233]; /* 07c4 */
|
||||
ULONG glReserved1[29]; /* 0b68 */
|
||||
ULONG glReserved2; /* 0bdc */
|
||||
ULONG glSectionInfo; /* 0be0 */
|
||||
ULONG glSection; /* 0be4 */
|
||||
ULONG glTable; /* 0be8 */
|
||||
ULONG glCurrentRC; /* 0bec */
|
||||
ULONG glContext; /* 0bf0 */
|
||||
ULONG LastStatusValue; /* 0bf4 */
|
||||
UNICODE_STRING32 StaticUnicodeString; /* 0bf8 */
|
||||
WCHAR StaticUnicodeBuffer[261]; /* 0c00 */
|
||||
ULONG DeallocationStack; /* 0e0c */
|
||||
ULONG TlsSlots[64]; /* 0e10 */
|
||||
LIST_ENTRY32 TlsLinks; /* 0f10 */
|
||||
ULONG Vdm; /* 0f18 */
|
||||
ULONG ReservedForNtRpc; /* 0f1c */
|
||||
ULONG DbgSsReserved[2]; /* 0f20 */
|
||||
ULONG HardErrorDisabled; /* 0f28 */
|
||||
ULONG Instrumentation[16]; /* 0f2c */
|
||||
ULONG WinSockData; /* 0f6c */
|
||||
ULONG GdiBatchCount; /* 0f70 */
|
||||
ULONG Spare2; /* 0f74 */
|
||||
ULONG GuaranteedStackBytes; /* 0f78 */
|
||||
ULONG ReservedForPerf; /* 0f7c */
|
||||
ULONG ReservedForOle; /* 0f80 */
|
||||
ULONG WaitingOnLoaderLock; /* 0f84 */
|
||||
ULONG Reserved5[3]; /* 0f88 */
|
||||
ULONG TlsExpansionSlots; /* 0f94 */
|
||||
ULONG ImpersonationLocale; /* 0f98 */
|
||||
ULONG IsImpersonating; /* 0f9c */
|
||||
ULONG NlsCache; /* 0fa0 */
|
||||
ULONG ShimData; /* 0fa4 */
|
||||
ULONG HeapVirtualAffinity; /* 0fa8 */
|
||||
ULONG CurrentTransactionHandle; /* 0fac */
|
||||
ULONG ActiveFrame; /* 0fb0 */
|
||||
ULONG FlsSlots; /* 0fb4 */
|
||||
ULONG PreferredLanguages; /* 0fb8 */
|
||||
ULONG UserPrefLanguages; /* 0fbc */
|
||||
ULONG MergedPrefLanguages; /* 0fc0 */
|
||||
ULONG MuiImpersonation; /* 0fc4 */
|
||||
USHORT CrossTebFlags; /* 0fc8 */
|
||||
USHORT SameTebFlags; /* 0fca */
|
||||
ULONG TxnScopeEnterCallback; /* 0fcc */
|
||||
ULONG TxnScopeExitCallback; /* 0fd0 */
|
||||
ULONG TxnScopeContext; /* 0fd4 */
|
||||
ULONG LockCount; /* 0fd8 */
|
||||
LONG WowTebOffset; /* 0fdc */
|
||||
ULONG ResourceRetValue; /* 0fe0 */
|
||||
ULONG ReservedForWdf; /* 0fe4 */
|
||||
ULONGLONG ReservedForCrt; /* 0fe8 */
|
||||
GUID EffectiveContainerId; /* 0ff0 */
|
||||
} TEB32;
|
||||
|
||||
typedef struct _TEB64
|
||||
{
|
||||
NT_TIB64 Tib; /* 0000 */
|
||||
|
@ -734,7 +980,6 @@ typedef struct _TEB64
|
|||
/* reserved TEB64 TLS slots for Wow64 */
|
||||
#define WOW64_TLS_FILESYSREDIR 8
|
||||
|
||||
#endif /* _WIN64 */
|
||||
|
||||
/***********************************************************************
|
||||
* Enums
|
||||
|
|
Loading…
Reference in New Issue