Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
36203f1b
Commit
36203f1b
authored
Apr 19, 2023
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
include: Update the PEB and TEB structures.
According to Geoff Chappell's information.
parent
b7f6620c
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
161 additions
and
63 deletions
+161
-63
loader.c
dlls/ntdll/loader.c
+3
-3
rtl.c
dlls/ntdll/rtl.c
+3
-3
rtl.c
dlls/ntdll/tests/rtl.c
+4
-4
signal_x86_64.c
dlls/ntdll/unix/signal_x86_64.c
+1
-1
ntoskrnl.c
dlls/ntoskrnl.exe/ntoskrnl.c
+4
-4
winternl.h
include/winternl.h
+146
-48
No files found.
dlls/ntdll/loader.c
View file @
36203f1b
...
@@ -1268,7 +1268,7 @@ static BOOL alloc_tls_slot( LDR_DATA_TABLE_ENTRY *mod )
...
@@ -1268,7 +1268,7 @@ static BOOL alloc_tls_slot( LDR_DATA_TABLE_ENTRY *mod )
if
(
old
)
memcpy
(
new
,
old
,
tls_module_count
*
sizeof
(
*
new
)
);
if
(
old
)
memcpy
(
new
,
old
,
tls_module_count
*
sizeof
(
*
new
)
);
teb
->
ThreadLocalStoragePointer
=
new
;
teb
->
ThreadLocalStoragePointer
=
new
;
#ifdef __x86_64__
/* macOS-specific hack */
#ifdef __x86_64__
/* macOS-specific hack */
if
(
teb
->
Reserved5
[
0
])
((
TEB
*
)
teb
->
Reserved5
[
0
])
->
ThreadLocalStoragePointer
=
new
;
if
(
teb
->
Instrumentation
[
0
])
((
TEB
*
)
teb
->
Instrumentation
[
0
])
->
ThreadLocalStoragePointer
=
new
;
#endif
#endif
TRACE
(
"thread %04lx tls block %p -> %p
\n
"
,
HandleToULong
(
teb
->
ClientId
.
UniqueThread
),
old
,
new
);
TRACE
(
"thread %04lx tls block %p -> %p
\n
"
,
HandleToULong
(
teb
->
ClientId
.
UniqueThread
),
old
,
new
);
/* FIXME: can't free old block here, should be freed at thread exit */
/* FIXME: can't free old block here, should be freed at thread exit */
...
@@ -1520,8 +1520,8 @@ static NTSTATUS alloc_thread_tls(void)
...
@@ -1520,8 +1520,8 @@ static NTSTATUS alloc_thread_tls(void)
}
}
NtCurrentTeb
()
->
ThreadLocalStoragePointer
=
pointers
;
NtCurrentTeb
()
->
ThreadLocalStoragePointer
=
pointers
;
#ifdef __x86_64__
/* macOS-specific hack */
#ifdef __x86_64__
/* macOS-specific hack */
if
(
NtCurrentTeb
()
->
Reserved5
[
0
])
if
(
NtCurrentTeb
()
->
Instrumentation
[
0
])
((
TEB
*
)
NtCurrentTeb
()
->
Reserved5
[
0
])
->
ThreadLocalStoragePointer
=
pointers
;
((
TEB
*
)
NtCurrentTeb
()
->
Instrumentation
[
0
])
->
ThreadLocalStoragePointer
=
pointers
;
#endif
#endif
return
STATUS_SUCCESS
;
return
STATUS_SUCCESS
;
}
}
...
...
dlls/ntdll/rtl.c
View file @
36203f1b
...
@@ -2072,9 +2072,9 @@ NTSTATUS WINAPI RtlSetThreadErrorMode( DWORD mode, LPDWORD oldmode )
...
@@ -2072,9 +2072,9 @@ NTSTATUS WINAPI RtlSetThreadErrorMode( DWORD mode, LPDWORD oldmode )
return
STATUS_INVALID_PARAMETER_1
;
return
STATUS_INVALID_PARAMETER_1
;
if
(
oldmode
)
if
(
oldmode
)
*
oldmode
=
NtCurrentTeb
()
->
HardError
Disabled
;
*
oldmode
=
NtCurrentTeb
()
->
HardError
Mode
;
NtCurrentTeb
()
->
HardError
Disabled
=
mode
;
NtCurrentTeb
()
->
HardError
Mode
=
mode
;
return
STATUS_SUCCESS
;
return
STATUS_SUCCESS
;
}
}
...
@@ -2091,7 +2091,7 @@ NTSTATUS WINAPI RtlSetThreadErrorMode( DWORD mode, LPDWORD oldmode )
...
@@ -2091,7 +2091,7 @@ NTSTATUS WINAPI RtlSetThreadErrorMode( DWORD mode, LPDWORD oldmode )
*/
*/
DWORD
WINAPI
RtlGetThreadErrorMode
(
void
)
DWORD
WINAPI
RtlGetThreadErrorMode
(
void
)
{
{
return
NtCurrentTeb
()
->
HardError
Disabled
;
return
NtCurrentTeb
()
->
HardError
Mode
;
}
}
/******************************************************************************
/******************************************************************************
...
...
dlls/ntdll/tests/rtl.c
View file @
36203f1b
...
@@ -683,9 +683,9 @@ static void test_RtlThreadErrorMode(void)
...
@@ -683,9 +683,9 @@ static void test_RtlThreadErrorMode(void)
"RtlGetThreadErrorMode returned 0x%lx, expected 0x%x
\n
"
,
mode
,
0x70
);
"RtlGetThreadErrorMode returned 0x%lx, expected 0x%x
\n
"
,
mode
,
0x70
);
if
(
!
is_wow64
)
if
(
!
is_wow64
)
{
{
ok
(
NtCurrentTeb
()
->
HardError
Disabled
==
0x70
,
ok
(
NtCurrentTeb
()
->
HardError
Mode
==
0x70
,
"The TEB contains 0x%lx, expected 0x%x
\n
"
,
"The TEB contains 0x%lx, expected 0x%x
\n
"
,
NtCurrentTeb
()
->
HardError
Disabled
,
0x70
);
NtCurrentTeb
()
->
HardError
Mode
,
0x70
);
}
}
status
=
pRtlSetThreadErrorMode
(
0
,
&
mode
);
status
=
pRtlSetThreadErrorMode
(
0
,
&
mode
);
...
@@ -699,9 +699,9 @@ static void test_RtlThreadErrorMode(void)
...
@@ -699,9 +699,9 @@ static void test_RtlThreadErrorMode(void)
"RtlGetThreadErrorMode returned 0x%lx, expected 0x%x
\n
"
,
mode
,
0
);
"RtlGetThreadErrorMode returned 0x%lx, expected 0x%x
\n
"
,
mode
,
0
);
if
(
!
is_wow64
)
if
(
!
is_wow64
)
{
{
ok
(
NtCurrentTeb
()
->
HardError
Disabled
==
0
,
ok
(
NtCurrentTeb
()
->
HardError
Mode
==
0
,
"The TEB contains 0x%lx, expected 0x%x
\n
"
,
"The TEB contains 0x%lx, expected 0x%x
\n
"
,
NtCurrentTeb
()
->
HardError
Disabled
,
0
);
NtCurrentTeb
()
->
HardError
Mode
,
0
);
}
}
for
(
mode
=
1
;
mode
;
mode
<<=
1
)
for
(
mode
=
1
;
mode
;
mode
<<=
1
)
...
...
dlls/ntdll/unix/signal_x86_64.c
View file @
36203f1b
...
@@ -2531,7 +2531,7 @@ void DECLSPEC_HIDDEN call_init_thunk( LPTHREAD_START_ROUTINE entry, void *arg, B
...
@@ -2531,7 +2531,7 @@ void DECLSPEC_HIDDEN call_init_thunk( LPTHREAD_START_ROUTINE entry, void *arg, B
/* alloc_tls_slot() needs to poke a value to an address relative to each
/* alloc_tls_slot() needs to poke a value to an address relative to each
thread's gsbase. Have each thread record its gsbase pointer into its
thread's gsbase. Have each thread record its gsbase pointer into its
TEB so alloc_tls_slot() can find it. */
TEB so alloc_tls_slot() can find it. */
teb
->
Reserved5
[
0
]
=
amd64_thread_data
()
->
pthread_teb
;
teb
->
Instrumentation
[
0
]
=
amd64_thread_data
()
->
pthread_teb
;
#else
#else
# error Please define setting %gs for your architecture
# error Please define setting %gs for your architecture
#endif
#endif
...
...
dlls/ntoskrnl.exe/ntoskrnl.c
View file @
36203f1b
...
@@ -944,7 +944,7 @@ NTSTATUS CDECL wine_ntoskrnl_main_loop( HANDLE stop_event )
...
@@ -944,7 +944,7 @@ NTSTATUS CDECL wine_ntoskrnl_main_loop( HANDLE stop_event )
for
(;;)
for
(;;)
{
{
NtCurrentTeb
()
->
Reserved5
[
1
]
=
NULL
;
NtCurrentTeb
()
->
Instrumentation
[
1
]
=
NULL
;
if
(
!
context
.
in_buff
&&
!
(
context
.
in_buff
=
HeapAlloc
(
GetProcessHeap
(),
0
,
context
.
in_size
)))
if
(
!
context
.
in_buff
&&
!
(
context
.
in_buff
=
HeapAlloc
(
GetProcessHeap
(),
0
,
context
.
in_size
)))
{
{
ERR
(
"failed to allocate buffer
\n
"
);
ERR
(
"failed to allocate buffer
\n
"
);
...
@@ -995,7 +995,7 @@ NTSTATUS CDECL wine_ntoskrnl_main_loop( HANDLE stop_event )
...
@@ -995,7 +995,7 @@ NTSTATUS CDECL wine_ntoskrnl_main_loop( HANDLE stop_event )
context
.
params
=
reply
->
params
;
context
.
params
=
reply
->
params
;
context
.
in_size
=
reply
->
in_size
;
context
.
in_size
=
reply
->
in_size
;
client_tid
=
reply
->
client_tid
;
client_tid
=
reply
->
client_tid
;
NtCurrentTeb
()
->
Reserved5
[
1
]
=
wine_server_get_ptr
(
reply
->
client_thread
);
NtCurrentTeb
()
->
Instrumentation
[
1
]
=
wine_server_get_ptr
(
reply
->
client_thread
);
}
}
else
else
{
{
...
@@ -2527,7 +2527,7 @@ POBJECT_TYPE PsThreadType = &thread_type;
...
@@ -2527,7 +2527,7 @@ POBJECT_TYPE PsThreadType = &thread_type;
*/
*/
PRKTHREAD
WINAPI
KeGetCurrentThread
(
void
)
PRKTHREAD
WINAPI
KeGetCurrentThread
(
void
)
{
{
struct
_KTHREAD
*
thread
=
NtCurrentTeb
()
->
Reserved5
[
1
];
struct
_KTHREAD
*
thread
=
NtCurrentTeb
()
->
Instrumentation
[
1
];
if
(
!
thread
)
if
(
!
thread
)
{
{
...
@@ -2540,7 +2540,7 @@ PRKTHREAD WINAPI KeGetCurrentThread(void)
...
@@ -2540,7 +2540,7 @@ PRKTHREAD WINAPI KeGetCurrentThread(void)
kernel_object_from_handle
(
handle
,
PsThreadType
,
(
void
**
)
&
thread
);
kernel_object_from_handle
(
handle
,
PsThreadType
,
(
void
**
)
&
thread
);
if
(
handle
!=
GetCurrentThread
())
NtClose
(
handle
);
if
(
handle
!=
GetCurrentThread
())
NtClose
(
handle
);
NtCurrentTeb
()
->
Reserved5
[
1
]
=
thread
;
NtCurrentTeb
()
->
Instrumentation
[
1
]
=
thread
;
}
}
return
thread
;
return
thread
;
...
...
include/winternl.h
View file @
36203f1b
...
@@ -307,7 +307,14 @@ typedef struct _PEB
...
@@ -307,7 +307,14 @@ typedef struct _PEB
BOOLEAN
InheritedAddressSpace
;
/* 000/000 */
BOOLEAN
InheritedAddressSpace
;
/* 000/000 */
BOOLEAN
ReadImageFileExecOptions
;
/* 001/001 */
BOOLEAN
ReadImageFileExecOptions
;
/* 001/001 */
BOOLEAN
BeingDebugged
;
/* 002/002 */
BOOLEAN
BeingDebugged
;
/* 002/002 */
BOOLEAN
SpareBool
;
/* 003/003 */
UCHAR
ImageUsedLargePages
:
1
;
/* 003/003 */
UCHAR
IsProtectedProcess
:
1
;
UCHAR
IsImageDynamicallyRelocated
:
1
;
UCHAR
SkipPatchingUser32Forwarders
:
1
;
UCHAR
IsPackagedProcess
:
1
;
UCHAR
IsAppContainer
:
1
;
UCHAR
IsProtectedProcessLight
:
1
;
UCHAR
IsLongPathAwareProcess
:
1
;
HANDLE
Mutant
;
/* 004/008 */
HANDLE
Mutant
;
/* 004/008 */
HMODULE
ImageBaseAddress
;
/* 008/010 */
HMODULE
ImageBaseAddress
;
/* 008/010 */
PPEB_LDR_DATA
LdrData
;
/* 00c/018 */
PPEB_LDR_DATA
LdrData
;
/* 00c/018 */
...
@@ -315,9 +322,17 @@ typedef struct _PEB
...
@@ -315,9 +322,17 @@ typedef struct _PEB
PVOID
SubSystemData
;
/* 014/028 */
PVOID
SubSystemData
;
/* 014/028 */
HANDLE
ProcessHeap
;
/* 018/030 */
HANDLE
ProcessHeap
;
/* 018/030 */
PRTL_CRITICAL_SECTION
FastPebLock
;
/* 01c/038 */
PRTL_CRITICAL_SECTION
FastPebLock
;
/* 01c/038 */
PVOID
/*PPEBLOCKROUTINE*/
FastPebLockRoutine
;
/* 020/040 */
PVOID
AtlThunkSListPtr
;
/* 020/040 */
PVOID
/*PPEBLOCKROUTINE*/
FastPebUnlockRoutine
;
/* 024/048 */
PVOID
IFEOKey
;
/* 024/048 */
ULONG
EnvironmentUpdateCount
;
/* 028/050 */
ULONG
ProcessInJob
:
1
;
/* 028/050 */
ULONG
ProcessInitializing
:
1
;
ULONG
ProcessUsingVEH
:
1
;
ULONG
ProcessUsingVCH
:
1
;
ULONG
ProcessUsingFTH
:
1
;
ULONG
ProcessPreviouslyThrottled
:
1
;
ULONG
ProcessCurrentlyThrottled
:
1
;
ULONG
ProcessImagesHotPatched
:
1
;
ULONG
ReservedBits0
:
24
;
PVOID
KernelCallbackTable
;
/* 02c/058 */
PVOID
KernelCallbackTable
;
/* 02c/058 */
ULONG
Reserved
;
/* 030/060 */
ULONG
Reserved
;
/* 030/060 */
ULONG
AtlThunkSListPtr32
;
/* 034/064 */
ULONG
AtlThunkSListPtr32
;
/* 034/064 */
...
@@ -326,7 +341,7 @@ typedef struct _PEB
...
@@ -326,7 +341,7 @@ typedef struct _PEB
PRTL_BITMAP
TlsBitmap
;
/* 040/078 */
PRTL_BITMAP
TlsBitmap
;
/* 040/078 */
ULONG
TlsBitmapBits
[
2
];
/* 044/080 */
ULONG
TlsBitmapBits
[
2
];
/* 044/080 */
PVOID
ReadOnlySharedMemoryBase
;
/* 04c/088 */
PVOID
ReadOnlySharedMemoryBase
;
/* 04c/088 */
PVOID
ReadOnlySharedMemoryHeap
;
/* 050/090 */
PVOID
SharedData
;
/* 050/090 */
PVOID
*
ReadOnlyStaticServerData
;
/* 054/098 */
PVOID
*
ReadOnlyStaticServerData
;
/* 054/098 */
PVOID
AnsiCodePageData
;
/* 058/0a0 */
PVOID
AnsiCodePageData
;
/* 058/0a0 */
PVOID
OemCodePageData
;
/* 05c/0a8 */
PVOID
OemCodePageData
;
/* 05c/0a8 */
...
@@ -352,9 +367,12 @@ typedef struct _PEB
...
@@ -352,9 +367,12 @@ typedef struct _PEB
ULONG
ImageSubSystem
;
/* 0b4/128 */
ULONG
ImageSubSystem
;
/* 0b4/128 */
ULONG
ImageSubSystemMajorVersion
;
/* 0b8/12c */
ULONG
ImageSubSystemMajorVersion
;
/* 0b8/12c */
ULONG
ImageSubSystemMinorVersion
;
/* 0bc/130 */
ULONG
ImageSubSystemMinorVersion
;
/* 0bc/130 */
ULONG
ImageProcessAffinityMask
;
/* 0c0/134 */
KAFFINITY
ActiveProcessAffinityMask
;
/* 0c0/138 */
HANDLE
GdiHandleBuffer
[
28
];
/* 0c4/138 */
#ifdef _WIN64
ULONG
unknown
[
6
];
/* 134/218 */
ULONG
GdiHandleBuffer
[
60
];
/* /140 */
#else
ULONG
GdiHandleBuffer
[
34
];
/* 0c4/ */
#endif
PVOID
PostProcessInitRoutine
;
/* 14c/230 */
PVOID
PostProcessInitRoutine
;
/* 14c/230 */
PRTL_BITMAP
TlsExpansionBitmap
;
/* 150/238 */
PRTL_BITMAP
TlsExpansionBitmap
;
/* 150/238 */
ULONG
TlsExpansionBitmapBits
[
32
];
/* 154/240 */
ULONG
TlsExpansionBitmapBits
[
32
];
/* 154/240 */
...
@@ -378,7 +396,10 @@ typedef struct _PEB
...
@@ -378,7 +396,10 @@ typedef struct _PEB
PVOID
WerShipAssertPtr
;
/* 234/360 */
PVOID
WerShipAssertPtr
;
/* 234/360 */
PVOID
pUnused
;
/* 238/368 */
PVOID
pUnused
;
/* 238/368 */
PVOID
pImageHeaderHash
;
/* 23c/370 */
PVOID
pImageHeaderHash
;
/* 23c/370 */
ULONG
TracingFlags
;
/* 240/378 */
ULONG
HeapTracingEnabled
:
1
;
/* 240/378 */
ULONG
CritSecTracingEnabled
:
1
;
ULONG
LibLoaderTracingEnabled
:
1
;
ULONG
SpareTracingBits
:
29
;
ULONGLONG
CsrServerReadOnlySharedMemoryBase
;
/* 248/380 */
ULONGLONG
CsrServerReadOnlySharedMemoryBase
;
/* 248/380 */
ULONG
TppWorkerpListLock
;
/* 250/388 */
ULONG
TppWorkerpListLock
;
/* 250/388 */
LIST_ENTRY
TppWorkerpList
;
/* 254/390 */
LIST_ENTRY
TppWorkerpList
;
/* 254/390 */
...
@@ -421,7 +442,8 @@ typedef struct _TEB
...
@@ -421,7 +442,8 @@ typedef struct _TEB
PVOID
SystemReserved1
[
26
];
/* 10c/ used for krnl386 private data in Wine */
PVOID
SystemReserved1
[
26
];
/* 10c/ used for krnl386 private data in Wine */
#endif
#endif
char
PlaceholderCompatibilityMode
;
/* 174/0280 */
char
PlaceholderCompatibilityMode
;
/* 174/0280 */
char
PlaceholderReserved
[
11
];
/* 175/0281 */
BOOLEAN
PlaceholderHydrationAlwaysExplicit
;
/* 175/0281 */
char
PlaceholderReserved
[
10
];
/* 176/0282 */
DWORD
ProxiedProcessId
;
/* 180/028c */
DWORD
ProxiedProcessId
;
/* 180/028c */
ACTIVATION_CONTEXT_STACK
ActivationContextStack
;
/* 184/0290 */
ACTIVATION_CONTEXT_STACK
ActivationContextStack
;
/* 184/0290 */
UCHAR
WorkingOnBehalfOfTicket
[
8
];
/* 19c/02b8 */
UCHAR
WorkingOnBehalfOfTicket
[
8
];
/* 19c/02b8 */
...
@@ -433,6 +455,7 @@ typedef struct _TEB
...
@@ -433,6 +455,7 @@ typedef struct _TEB
#ifdef _WIN64
#ifdef _WIN64
ULONG
TxFsContext
;
/* /02e8 */
ULONG
TxFsContext
;
/* /02e8 */
BOOLEAN
InstrumentationCallbackDisabled
;
/* /02ec */
BOOLEAN
InstrumentationCallbackDisabled
;
/* /02ec */
BOOLEAN
UnalignedLoadStoreExceptions
;
/* /02ed */
#else
#else
BOOLEAN
InstrumentationCallbackDisabled
;
/* 1b8/ */
BOOLEAN
InstrumentationCallbackDisabled
;
/* 1b8/ */
BYTE
SpareBytes1
[
23
];
/* 1b9/ */
BYTE
SpareBytes1
[
23
];
/* 1b9/ */
...
@@ -462,22 +485,32 @@ typedef struct _TEB
...
@@ -462,22 +485,32 @@ typedef struct _TEB
PVOID
Vdm
;
/* f18/1690 */
PVOID
Vdm
;
/* f18/1690 */
PVOID
ReservedForNtRpc
;
/* f1c/1698 */
PVOID
ReservedForNtRpc
;
/* f1c/1698 */
PVOID
DbgSsReserved
[
2
];
/* f20/16a0 */
PVOID
DbgSsReserved
[
2
];
/* f20/16a0 */
ULONG
HardErrorDisabled
;
/* f28/16b0 */
ULONG
HardErrorMode
;
/* f28/16b0 */
PVOID
Instrumentation
[
16
];
/* f2c/16b8 */
#ifdef _WIN64
PVOID
Instrumentation
[
11
];
/* /16b8 */
#else
PVOID
Instrumentation
[
9
];
/* f2c/ */
#endif
GUID
ActivityId
;
/* f50/1710 */
PVOID
SubProcessTag
;
/* f60/1720 */
PVOID
PerflibData
;
/* f64/1728 */
PVOID
EtwTraceData
;
/* f68/1730 */
PVOID
WinSockData
;
/* f6c/1738 */
PVOID
WinSockData
;
/* f6c/1738 */
ULONG
GdiBatchCount
;
/* f70/1740 */
ULONG
GdiBatchCount
;
/* f70/1740 */
ULONG
Spare2
;
/* f74/1744 */
ULONG
IdealProcessorValue
;
/* f74/1744 */
ULONG
GuaranteedStackBytes
;
/* f78/1748 */
ULONG
GuaranteedStackBytes
;
/* f78/1748 */
PVOID
ReservedForPerf
;
/* f7c/1750 */
PVOID
ReservedForPerf
;
/* f7c/1750 */
PVOID
ReservedForOle
;
/* f80/1758 */
PVOID
ReservedForOle
;
/* f80/1758 */
ULONG
WaitingOnLoaderLock
;
/* f84/1760 */
ULONG
WaitingOnLoaderLock
;
/* f84/1760 */
PVOID
Reserved5
[
3
];
/* f88/1768 */
PVOID
SavedPriorityState
;
/* f88/1768 */
ULONG_PTR
ReservedForCodeCoverage
;
/* f8c/1770 */
PVOID
ThreadPoolData
;
/* f90/1778 */
PVOID
*
TlsExpansionSlots
;
/* f94/1780 */
PVOID
*
TlsExpansionSlots
;
/* f94/1780 */
#ifdef _WIN64
#ifdef _WIN64
PVOID
DeallocationBStore
;
/* /1788 */
PVOID
DeallocationBStore
;
/* /1788 */
PVOID
BStoreLimit
;
/* /1790 */
PVOID
BStoreLimit
;
/* /1790 */
#endif
#endif
ULONG
ImpersonationLocale
;
/* f98/1798 */
ULONG
MuiGeneration
;
/* f98/1798 */
ULONG
IsImpersonating
;
/* f9c/179c */
ULONG
IsImpersonating
;
/* f9c/179c */
PVOID
NlsCache
;
/* fa0/17a0 */
PVOID
NlsCache
;
/* fa0/17a0 */
PVOID
ShimData
;
/* fa4/17a8 */
PVOID
ShimData
;
/* fa4/17a8 */
...
@@ -717,7 +750,14 @@ typedef struct _PEB32
...
@@ -717,7 +750,14 @@ typedef struct _PEB32
BOOLEAN
InheritedAddressSpace
;
/* 0000 */
BOOLEAN
InheritedAddressSpace
;
/* 0000 */
BOOLEAN
ReadImageFileExecOptions
;
/* 0001 */
BOOLEAN
ReadImageFileExecOptions
;
/* 0001 */
BOOLEAN
BeingDebugged
;
/* 0002 */
BOOLEAN
BeingDebugged
;
/* 0002 */
BOOLEAN
SpareBool
;
/* 0003 */
UCHAR
ImageUsedLargePages
:
1
;
/* 0003 */
UCHAR
IsProtectedProcess
:
1
;
UCHAR
IsImageDynamicallyRelocated
:
1
;
UCHAR
SkipPatchingUser32Forwarders
:
1
;
UCHAR
IsPackagedProcess
:
1
;
UCHAR
IsAppContainer
:
1
;
UCHAR
IsProtectedProcessLight
:
1
;
UCHAR
IsLongPathAwareProcess
:
1
;
ULONG
Mutant
;
/* 0004 */
ULONG
Mutant
;
/* 0004 */
ULONG
ImageBaseAddress
;
/* 0008 */
ULONG
ImageBaseAddress
;
/* 0008 */
ULONG
LdrData
;
/* 000c */
ULONG
LdrData
;
/* 000c */
...
@@ -725,9 +765,17 @@ typedef struct _PEB32
...
@@ -725,9 +765,17 @@ typedef struct _PEB32
ULONG
SubSystemData
;
/* 0014 */
ULONG
SubSystemData
;
/* 0014 */
ULONG
ProcessHeap
;
/* 0018 */
ULONG
ProcessHeap
;
/* 0018 */
ULONG
FastPebLock
;
/* 001c */
ULONG
FastPebLock
;
/* 001c */
ULONG
FastPebLockRoutine
;
/* 0020 */
ULONG
AtlThunkSListPtr
;
/* 0020 */
ULONG
FastPebUnlockRoutine
;
/* 0024 */
ULONG
IFEOKey
;
/* 0024 */
ULONG
EnvironmentUpdateCount
;
/* 0028 */
ULONG
ProcessInJob
:
1
;
/* 0028 */
ULONG
ProcessInitializing
:
1
;
ULONG
ProcessUsingVEH
:
1
;
ULONG
ProcessUsingVCH
:
1
;
ULONG
ProcessUsingFTH
:
1
;
ULONG
ProcessPreviouslyThrottled
:
1
;
ULONG
ProcessCurrentlyThrottled
:
1
;
ULONG
ProcessImagesHotPatched
:
1
;
ULONG
ReservedBits0
:
24
;
ULONG
KernelCallbackTable
;
/* 002c */
ULONG
KernelCallbackTable
;
/* 002c */
ULONG
Reserved
;
/* 0030 */
ULONG
Reserved
;
/* 0030 */
ULONG
AtlThunkSListPtr32
;
/* 0034 */
ULONG
AtlThunkSListPtr32
;
/* 0034 */
...
@@ -736,7 +784,7 @@ typedef struct _PEB32
...
@@ -736,7 +784,7 @@ typedef struct _PEB32
ULONG
TlsBitmap
;
/* 0040 */
ULONG
TlsBitmap
;
/* 0040 */
ULONG
TlsBitmapBits
[
2
];
/* 0044 */
ULONG
TlsBitmapBits
[
2
];
/* 0044 */
ULONG
ReadOnlySharedMemoryBase
;
/* 004c */
ULONG
ReadOnlySharedMemoryBase
;
/* 004c */
ULONG
ReadOnlySharedMemoryHeap
;
/* 0050 */
ULONG
SharedData
;
/* 0050 */
ULONG
ReadOnlyStaticServerData
;
/* 0054 */
ULONG
ReadOnlyStaticServerData
;
/* 0054 */
ULONG
AnsiCodePageData
;
/* 0058 */
ULONG
AnsiCodePageData
;
/* 0058 */
ULONG
OemCodePageData
;
/* 005c */
ULONG
OemCodePageData
;
/* 005c */
...
@@ -762,9 +810,8 @@ typedef struct _PEB32
...
@@ -762,9 +810,8 @@ typedef struct _PEB32
ULONG
ImageSubSystem
;
/* 00b4 */
ULONG
ImageSubSystem
;
/* 00b4 */
ULONG
ImageSubSystemMajorVersion
;
/* 00b8 */
ULONG
ImageSubSystemMajorVersion
;
/* 00b8 */
ULONG
ImageSubSystemMinorVersion
;
/* 00bc */
ULONG
ImageSubSystemMinorVersion
;
/* 00bc */
ULONG
ImageProcessAffinityMask
;
/* 00c0 */
ULONG
ActiveProcessAffinityMask
;
/* 00c0 */
ULONG
GdiHandleBuffer
[
28
];
/* 00c4 */
ULONG
GdiHandleBuffer
[
34
];
/* 00c4 */
ULONG
unknown
[
6
];
/* 0134 */
ULONG
PostProcessInitRoutine
;
/* 014c */
ULONG
PostProcessInitRoutine
;
/* 014c */
ULONG
TlsExpansionBitmap
;
/* 0150 */
ULONG
TlsExpansionBitmap
;
/* 0150 */
ULONG
TlsExpansionBitmapBits
[
32
];
/* 0154 */
ULONG
TlsExpansionBitmapBits
[
32
];
/* 0154 */
...
@@ -773,14 +820,14 @@ typedef struct _PEB32
...
@@ -773,14 +820,14 @@ typedef struct _PEB32
ULARGE_INTEGER
AppCompatFlagsUser
;
/* 01e0 */
ULARGE_INTEGER
AppCompatFlagsUser
;
/* 01e0 */
ULONG
ShimData
;
/* 01e8 */
ULONG
ShimData
;
/* 01e8 */
ULONG
AppCompatInfo
;
/* 01ec */
ULONG
AppCompatInfo
;
/* 01ec */
UNICODE_STRING
CSDVersion
;
/* 01f0 */
UNICODE_STRING
32
CSDVersion
;
/* 01f0 */
ULONG
ActivationContextData
;
/* 01f8 */
ULONG
ActivationContextData
;
/* 01f8 */
ULONG
ProcessAssemblyStorageMap
;
/* 01fc */
ULONG
ProcessAssemblyStorageMap
;
/* 01fc */
ULONG
SystemDefaultActivationData
;
/* 0200 */
ULONG
SystemDefaultActivationData
;
/* 0200 */
ULONG
SystemAssemblyStorageMap
;
/* 0204 */
ULONG
SystemAssemblyStorageMap
;
/* 0204 */
ULONG
MinimumStackCommit
;
/* 0208 */
ULONG
MinimumStackCommit
;
/* 0208 */
ULONG
FlsCallback
;
/* 020c */
ULONG
FlsCallback
;
/* 020c */
LIST_ENTRY
FlsListHead
;
/* 0210 */
LIST_ENTRY
32
FlsListHead
;
/* 0210 */
ULONG
FlsBitmap
;
/* 0218 */
ULONG
FlsBitmap
;
/* 0218 */
ULONG
FlsBitmapBits
[
4
];
/* 021c */
ULONG
FlsBitmapBits
[
4
];
/* 021c */
ULONG
FlsHighIndex
;
/* 022c */
ULONG
FlsHighIndex
;
/* 022c */
...
@@ -788,10 +835,13 @@ typedef struct _PEB32
...
@@ -788,10 +835,13 @@ typedef struct _PEB32
ULONG
WerShipAssertPtr
;
/* 0234 */
ULONG
WerShipAssertPtr
;
/* 0234 */
ULONG
pUnused
;
/* 0238 */
ULONG
pUnused
;
/* 0238 */
ULONG
pImageHeaderHash
;
/* 023c */
ULONG
pImageHeaderHash
;
/* 023c */
ULONG
TracingFlags
;
/* 0240 */
ULONG
HeapTracingEnabled
:
1
;
/* 0240 */
ULONG
CritSecTracingEnabled
:
1
;
ULONG
LibLoaderTracingEnabled
:
1
;
ULONG
SpareTracingBits
:
29
;
ULONGLONG
CsrServerReadOnlySharedMemoryBase
;
/* 0248 */
ULONGLONG
CsrServerReadOnlySharedMemoryBase
;
/* 0248 */
ULONG
TppWorkerpListLock
;
/* 0250 */
ULONG
TppWorkerpListLock
;
/* 0250 */
LIST_ENTRY
TppWorkerpList
;
/* 0254 */
LIST_ENTRY
32
TppWorkerpList
;
/* 0254 */
ULONG
WaitOnAddressHashTable
[
0x80
];
/* 025c */
ULONG
WaitOnAddressHashTable
[
0x80
];
/* 025c */
ULONG
TelemetryCoverageHeader
;
/* 045c */
ULONG
TelemetryCoverageHeader
;
/* 045c */
ULONG
CloudFileFlags
;
/* 0460 */
ULONG
CloudFileFlags
;
/* 0460 */
...
@@ -803,12 +853,21 @@ typedef struct _PEB32
...
@@ -803,12 +853,21 @@ typedef struct _PEB32
ULONG
NtGlobalFlag2
;
/* 0478 */
ULONG
NtGlobalFlag2
;
/* 0478 */
}
PEB32
;
}
PEB32
;
C_ASSERT
(
sizeof
(
PEB32
)
==
0x480
);
typedef
struct
_PEB64
typedef
struct
_PEB64
{
{
BOOLEAN
InheritedAddressSpace
;
/* 0000 */
BOOLEAN
InheritedAddressSpace
;
/* 0000 */
BOOLEAN
ReadImageFileExecOptions
;
/* 0001 */
BOOLEAN
ReadImageFileExecOptions
;
/* 0001 */
BOOLEAN
BeingDebugged
;
/* 0002 */
BOOLEAN
BeingDebugged
;
/* 0002 */
BOOLEAN
SpareBool
;
/* 0003 */
UCHAR
ImageUsedLargePages
:
1
;
/* 0003 */
UCHAR
IsProtectedProcess
:
1
;
UCHAR
IsImageDynamicallyRelocated
:
1
;
UCHAR
SkipPatchingUser32Forwarders
:
1
;
UCHAR
IsPackagedProcess
:
1
;
UCHAR
IsAppContainer
:
1
;
UCHAR
IsProtectedProcessLight
:
1
;
UCHAR
IsLongPathAwareProcess
:
1
;
ULONG64
Mutant
;
/* 0008 */
ULONG64
Mutant
;
/* 0008 */
ULONG64
ImageBaseAddress
;
/* 0010 */
ULONG64
ImageBaseAddress
;
/* 0010 */
ULONG64
LdrData
;
/* 0018 */
ULONG64
LdrData
;
/* 0018 */
...
@@ -816,9 +875,17 @@ typedef struct _PEB64
...
@@ -816,9 +875,17 @@ typedef struct _PEB64
ULONG64
SubSystemData
;
/* 0028 */
ULONG64
SubSystemData
;
/* 0028 */
ULONG64
ProcessHeap
;
/* 0030 */
ULONG64
ProcessHeap
;
/* 0030 */
ULONG64
FastPebLock
;
/* 0038 */
ULONG64
FastPebLock
;
/* 0038 */
ULONG64
FastPebLockRoutine
;
/* 0040 */
ULONG64
AtlThunkSListPtr
;
/* 0040 */
ULONG64
FastPebUnlockRoutine
;
/* 0048 */
ULONG64
IFEOKey
;
/* 0048 */
ULONG
EnvironmentUpdateCount
;
/* 0050 */
ULONG
ProcessInJob
:
1
;
/* 0050 */
ULONG
ProcessInitializing
:
1
;
ULONG
ProcessUsingVEH
:
1
;
ULONG
ProcessUsingVCH
:
1
;
ULONG
ProcessUsingFTH
:
1
;
ULONG
ProcessPreviouslyThrottled
:
1
;
ULONG
ProcessCurrentlyThrottled
:
1
;
ULONG
ProcessImagesHotPatched
:
1
;
ULONG
ReservedBits0
:
24
;
ULONG64
KernelCallbackTable
;
/* 0058 */
ULONG64
KernelCallbackTable
;
/* 0058 */
ULONG
Reserved
;
/* 0060 */
ULONG
Reserved
;
/* 0060 */
ULONG
AtlThunkSListPtr32
;
/* 0064 */
ULONG
AtlThunkSListPtr32
;
/* 0064 */
...
@@ -827,7 +894,7 @@ typedef struct _PEB64
...
@@ -827,7 +894,7 @@ typedef struct _PEB64
ULONG64
TlsBitmap
;
/* 0078 */
ULONG64
TlsBitmap
;
/* 0078 */
ULONG
TlsBitmapBits
[
2
];
/* 0080 */
ULONG
TlsBitmapBits
[
2
];
/* 0080 */
ULONG64
ReadOnlySharedMemoryBase
;
/* 0088 */
ULONG64
ReadOnlySharedMemoryBase
;
/* 0088 */
ULONG64
ReadOnlySharedMemoryHeap
;
/* 0090 */
ULONG64
SharedData
;
/* 0090 */
ULONG64
ReadOnlyStaticServerData
;
/* 0098 */
ULONG64
ReadOnlyStaticServerData
;
/* 0098 */
ULONG64
AnsiCodePageData
;
/* 00a0 */
ULONG64
AnsiCodePageData
;
/* 00a0 */
ULONG64
OemCodePageData
;
/* 00a8 */
ULONG64
OemCodePageData
;
/* 00a8 */
...
@@ -853,9 +920,8 @@ typedef struct _PEB64
...
@@ -853,9 +920,8 @@ typedef struct _PEB64
ULONG
ImageSubSystem
;
/* 0128 */
ULONG
ImageSubSystem
;
/* 0128 */
ULONG
ImageSubSystemMajorVersion
;
/* 012c */
ULONG
ImageSubSystemMajorVersion
;
/* 012c */
ULONG
ImageSubSystemMinorVersion
;
/* 0130 */
ULONG
ImageSubSystemMinorVersion
;
/* 0130 */
ULONG
ImageProcessAffinityMask
;
/* 0134 */
ULONG64
ActiveProcessAffinityMask
;
/* 0138 */
ULONG64
GdiHandleBuffer
[
28
];
/* 0138 */
ULONG
GdiHandleBuffer
[
60
];
/* 0140 */
ULONG
unknown
[
6
];
/* 0218 */
ULONG64
PostProcessInitRoutine
;
/* 0230 */
ULONG64
PostProcessInitRoutine
;
/* 0230 */
ULONG64
TlsExpansionBitmap
;
/* 0238 */
ULONG64
TlsExpansionBitmap
;
/* 0238 */
ULONG
TlsExpansionBitmapBits
[
32
];
/* 0240 */
ULONG
TlsExpansionBitmapBits
[
32
];
/* 0240 */
...
@@ -879,7 +945,10 @@ typedef struct _PEB64
...
@@ -879,7 +945,10 @@ typedef struct _PEB64
ULONG64
WerShipAssertPtr
;
/* 0360 */
ULONG64
WerShipAssertPtr
;
/* 0360 */
ULONG64
pUnused
;
/* 0368 */
ULONG64
pUnused
;
/* 0368 */
ULONG64
pImageHeaderHash
;
/* 0370 */
ULONG64
pImageHeaderHash
;
/* 0370 */
ULONG
TracingFlags
;
/* 0378 */
ULONG
HeapTracingEnabled
:
1
;
/* 0378 */
ULONG
CritSecTracingEnabled
:
1
;
ULONG
LibLoaderTracingEnabled
:
1
;
ULONG
SpareTracingBits
:
29
;
ULONGLONG
CsrServerReadOnlySharedMemoryBase
;
/* 0380 */
ULONGLONG
CsrServerReadOnlySharedMemoryBase
;
/* 0380 */
ULONG
TppWorkerpListLock
;
/* 0388 */
ULONG
TppWorkerpListLock
;
/* 0388 */
LIST_ENTRY64
TppWorkerpList
;
/* 0390 */
LIST_ENTRY64
TppWorkerpList
;
/* 0390 */
...
@@ -894,6 +963,8 @@ typedef struct _PEB64
...
@@ -894,6 +963,8 @@ typedef struct _PEB64
ULONG
NtGlobalFlag2
;
/* 07c4 */
ULONG
NtGlobalFlag2
;
/* 07c4 */
}
PEB64
;
}
PEB64
;
C_ASSERT
(
sizeof
(
PEB64
)
==
0x7c8
);
typedef
struct
_TEB32
typedef
struct
_TEB32
{
{
NT_TIB32
Tib
;
/* 0000 */
NT_TIB32
Tib
;
/* 0000 */
...
@@ -914,7 +985,8 @@ typedef struct _TEB32
...
@@ -914,7 +985,8 @@ typedef struct _TEB32
ULONG
ReservedForDebuggerInstrumentation
[
16
];
/* 00cc */
ULONG
ReservedForDebuggerInstrumentation
[
16
];
/* 00cc */
ULONG
SystemReserved1
[
26
];
/* 010c */
ULONG
SystemReserved1
[
26
];
/* 010c */
char
PlaceholderCompatibilityMode
;
/* 0174 */
char
PlaceholderCompatibilityMode
;
/* 0174 */
char
PlaceholderReserved
[
11
];
/* 0175 */
BOOLEAN
PlaceholderHydrationAlwaysExplicit
;
/* 0175 */
char
PlaceholderReserved
[
10
];
/* 0176 */
DWORD
ProxiedProcessId
;
/* 0180 */
DWORD
ProxiedProcessId
;
/* 0180 */
ACTIVATION_CONTEXT_STACK32
ActivationContextStack
;
/* 0184 */
ACTIVATION_CONTEXT_STACK32
ActivationContextStack
;
/* 0184 */
UCHAR
WorkingOnBehalfOfTicket
[
8
];
/* 019c */
UCHAR
WorkingOnBehalfOfTicket
[
8
];
/* 019c */
...
@@ -950,18 +1022,24 @@ typedef struct _TEB32
...
@@ -950,18 +1022,24 @@ typedef struct _TEB32
ULONG
Vdm
;
/* 0f18 */
ULONG
Vdm
;
/* 0f18 */
ULONG
ReservedForNtRpc
;
/* 0f1c */
ULONG
ReservedForNtRpc
;
/* 0f1c */
ULONG
DbgSsReserved
[
2
];
/* 0f20 */
ULONG
DbgSsReserved
[
2
];
/* 0f20 */
ULONG
HardErrorDisabled
;
/* 0f28 */
ULONG
HardErrorMode
;
/* 0f28 */
ULONG
Instrumentation
[
16
];
/* 0f2c */
ULONG
Instrumentation
[
9
];
/* 0f2c */
GUID
ActivityId
;
/* 0f50 */
ULONG
SubProcessTag
;
/* 0f60 */
ULONG
PerflibData
;
/* 0f64 */
ULONG
EtwTraceData
;
/* 0f68 */
ULONG
WinSockData
;
/* 0f6c */
ULONG
WinSockData
;
/* 0f6c */
ULONG
GdiBatchCount
;
/* 0f70 */
ULONG
GdiBatchCount
;
/* 0f70 */
ULONG
Spare2
;
/* 0f74 */
ULONG
IdealProcessorValue
;
/* 0f74 */
ULONG
GuaranteedStackBytes
;
/* 0f78 */
ULONG
GuaranteedStackBytes
;
/* 0f78 */
ULONG
ReservedForPerf
;
/* 0f7c */
ULONG
ReservedForPerf
;
/* 0f7c */
ULONG
ReservedForOle
;
/* 0f80 */
ULONG
ReservedForOle
;
/* 0f80 */
ULONG
WaitingOnLoaderLock
;
/* 0f84 */
ULONG
WaitingOnLoaderLock
;
/* 0f84 */
ULONG
Reserved5
[
3
];
/* 0f88 */
ULONG
SavedPriorityState
;
/* 0f88 */
ULONG
ReservedForCodeCoverage
;
/* 0f8c */
ULONG
ThreadPoolData
;
/* 0f90 */
ULONG
TlsExpansionSlots
;
/* 0f94 */
ULONG
TlsExpansionSlots
;
/* 0f94 */
ULONG
ImpersonationLocale
;
/* 0f98 */
ULONG
MuiGeneration
;
/* 0f98 */
ULONG
IsImpersonating
;
/* 0f9c */
ULONG
IsImpersonating
;
/* 0f9c */
ULONG
NlsCache
;
/* 0fa0 */
ULONG
NlsCache
;
/* 0fa0 */
ULONG
ShimData
;
/* 0fa4 */
ULONG
ShimData
;
/* 0fa4 */
...
@@ -986,6 +1064,8 @@ typedef struct _TEB32
...
@@ -986,6 +1064,8 @@ typedef struct _TEB32
GUID
EffectiveContainerId
;
/* 0ff0 */
GUID
EffectiveContainerId
;
/* 0ff0 */
}
TEB32
;
}
TEB32
;
C_ASSERT
(
sizeof
(
TEB32
)
==
0x1000
);
typedef
struct
_TEB64
typedef
struct
_TEB64
{
{
NT_TIB64
Tib
;
/* 0000 */
NT_TIB64
Tib
;
/* 0000 */
...
@@ -1006,7 +1086,8 @@ typedef struct _TEB64
...
@@ -1006,7 +1086,8 @@ typedef struct _TEB64
ULONG64
ReservedForDebuggerInstrumentation
[
16
];
/* 0110 */
ULONG64
ReservedForDebuggerInstrumentation
[
16
];
/* 0110 */
ULONG64
SystemReserved1
[
30
];
/* 0190 */
ULONG64
SystemReserved1
[
30
];
/* 0190 */
char
PlaceholderCompatibilityMode
;
/* 0280 */
char
PlaceholderCompatibilityMode
;
/* 0280 */
char
PlaceholderReserved
[
11
];
/* 0281 */
BOOLEAN
PlaceholderHydrationAlwaysExplicit
;
/* 0281 */
char
PlaceholderReserved
[
10
];
/* 0282 */
DWORD
ProxiedProcessId
;
/* 028c */
DWORD
ProxiedProcessId
;
/* 028c */
ACTIVATION_CONTEXT_STACK64
ActivationContextStack
;
/* 0290 */
ACTIVATION_CONTEXT_STACK64
ActivationContextStack
;
/* 0290 */
UCHAR
WorkingOnBehalfOfTicket
[
8
];
/* 02b8 */
UCHAR
WorkingOnBehalfOfTicket
[
8
];
/* 02b8 */
...
@@ -1017,6 +1098,7 @@ typedef struct _TEB64
...
@@ -1017,6 +1098,7 @@ typedef struct _TEB64
ULONG64
InstrumentationCallbackPreviousSp
;
/* 02e0 */
ULONG64
InstrumentationCallbackPreviousSp
;
/* 02e0 */
ULONG
TxFsContext
;
/* 02e8 */
ULONG
TxFsContext
;
/* 02e8 */
BOOLEAN
InstrumentationCallbackDisabled
;
/* 02ec */
BOOLEAN
InstrumentationCallbackDisabled
;
/* 02ec */
BOOLEAN
UnalignedLoadStoreExceptions
;
/* 02ed */
ULONG64
GdiTebBatch
[
0x9d
];
/* 02f0 */
ULONG64
GdiTebBatch
[
0x9d
];
/* 02f0 */
CLIENT_ID64
RealClientId
;
/* 07d8 */
CLIENT_ID64
RealClientId
;
/* 07d8 */
ULONG64
GdiCachedProcessHandle
;
/* 07e8 */
ULONG64
GdiCachedProcessHandle
;
/* 07e8 */
...
@@ -1041,20 +1123,26 @@ typedef struct _TEB64
...
@@ -1041,20 +1123,26 @@ typedef struct _TEB64
ULONG64
Vdm
;
/* 1690 */
ULONG64
Vdm
;
/* 1690 */
ULONG64
ReservedForNtRpc
;
/* 1698 */
ULONG64
ReservedForNtRpc
;
/* 1698 */
ULONG64
DbgSsReserved
[
2
];
/* 16a0 */
ULONG64
DbgSsReserved
[
2
];
/* 16a0 */
ULONG
HardErrorDisabled
;
/* 16b0 */
ULONG
HardErrorMode
;
/* 16b0 */
ULONG64
Instrumentation
[
16
];
/* 16b8 */
ULONG64
Instrumentation
[
11
];
/* 16b8 */
GUID
ActivityId
;
/* 1710 */
ULONG64
SubProcessTag
;
/* 1720 */
ULONG64
PerflibData
;
/* 1728 */
ULONG64
EtwTraceData
;
/* 1730 */
ULONG64
WinSockData
;
/* 1738 */
ULONG64
WinSockData
;
/* 1738 */
ULONG
GdiBatchCount
;
/* 1740 */
ULONG
GdiBatchCount
;
/* 1740 */
ULONG
Spare2
;
/* 1744 */
ULONG
IdealProcessorValue
;
/* 1744 */
ULONG
GuaranteedStackBytes
;
/* 1748 */
ULONG
GuaranteedStackBytes
;
/* 1748 */
ULONG64
ReservedForPerf
;
/* 1750 */
ULONG64
ReservedForPerf
;
/* 1750 */
ULONG64
ReservedForOle
;
/* 1758 */
ULONG64
ReservedForOle
;
/* 1758 */
ULONG
WaitingOnLoaderLock
;
/* 1760 */
ULONG
WaitingOnLoaderLock
;
/* 1760 */
ULONG64
Reserved5
[
3
];
/* 1768 */
ULONG64
SavedPriorityState
;
/* 1768 */
ULONG64
ReservedForCodeCoverage
;
/* 1770 */
ULONG64
ThreadPoolData
;
/* 1778 */
ULONG64
TlsExpansionSlots
;
/* 1780 */
ULONG64
TlsExpansionSlots
;
/* 1780 */
ULONG64
DeallocationBStore
;
/* 1788 */
ULONG64
DeallocationBStore
;
/* 1788 */
ULONG64
BStoreLimit
;
/* 1790 */
ULONG64
BStoreLimit
;
/* 1790 */
ULONG
ImpersonationLocale
;
/* 1798 */
ULONG
MuiGeneration
;
/* 1798 */
ULONG
IsImpersonating
;
/* 179c */
ULONG
IsImpersonating
;
/* 179c */
ULONG64
NlsCache
;
/* 17a0 */
ULONG64
NlsCache
;
/* 17a0 */
ULONG64
ShimData
;
/* 17a8 */
ULONG64
ShimData
;
/* 17a8 */
...
@@ -1079,6 +1167,16 @@ typedef struct _TEB64
...
@@ -1079,6 +1167,16 @@ typedef struct _TEB64
GUID
EffectiveContainerId
;
/* 1828 */
GUID
EffectiveContainerId
;
/* 1828 */
}
TEB64
;
}
TEB64
;
C_ASSERT
(
sizeof
(
TEB64
)
==
0x1838
);
#ifdef _WIN64
C_ASSERT
(
sizeof
(
PEB
)
==
sizeof
(
PEB64
)
);
C_ASSERT
(
sizeof
(
TEB
)
==
sizeof
(
TEB64
)
);
#else
C_ASSERT
(
sizeof
(
PEB
)
==
sizeof
(
PEB32
)
);
C_ASSERT
(
sizeof
(
TEB
)
==
sizeof
(
TEB32
)
);
#endif
/* reserved TEB64 TLS slots for Wow64 */
/* reserved TEB64 TLS slots for Wow64 */
#define WOW64_TLS_CPURESERVED 1
#define WOW64_TLS_CPURESERVED 1
#define WOW64_TLS_TEMPLIST 3
#define WOW64_TLS_TEMPLIST 3
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment