extern struct PEB [src]

Process Environment Block Microsoft documentation of this is incomplete, the fields here are taken from various resources including: https://github.com/wine-mirror/wine/blob/1aff1e6a370ee8c0213a0fd4b220d121da8527aa/include/winternl.h#L269 https://www.geoffchappell.com/studies/windows/win32/ntdll/structs/peb/index.htm

Fields

InheritedAddressSpace: BOOLEAN
ReadImageFileExecOptions: BOOLEAN
BeingDebugged: BOOLEAN
BitField: UCHAR
Mutant: HANDLE
ImageBaseAddress: HMODULE
Ldr: *PEB_LDR_DATA
ProcessParameters: *RTL_USER_PROCESS_PARAMETERS
SubSystemData: PVOID
ProcessHeap: HANDLE
FastPebLock: *RTL_CRITICAL_SECTION
AtlThunkSListPtr: PVOID
IFEOKey: PVOID
CrossProcessFlags: ULONGhttps://www.geoffchappell.com/studies/windows/win32/ntdll/structs/peb/crossprocessflags.htm
union1: extern union { KernelCallbackTable: PVOID, UserSharedInfoPtr: PVOID, }
SystemReserved: ULONG
AtlThunkSListPtr32: ULONG
ApiSetMap: PVOID
TlsExpansionCounter: ULONG
TlsBitmap: *RTL_BITMAP
TlsBitmapBits: [2]ULONG
ReadOnlySharedMemoryBase: PVOID
SharedData: PVOID
ReadOnlyStaticServerData: *PVOID
AnsiCodePageData: PVOID
OemCodePageData: PVOID
UnicodeCaseTableData: PVOID
NumberOfProcessors: ULONG
NtGlobalFlag: ULONG
CriticalSectionTimeout: LARGE_INTEGER
HeapSegmentReserve: ULONG_PTR
HeapSegmentCommit: ULONG_PTR
HeapDeCommitTotalFreeThreshold: ULONG_PTR
HeapDeCommitFreeBlockThreshold: ULONG_PTR
NumberOfHeaps: ULONG
MaximumNumberOfHeaps: ULONG
ProcessHeaps: *PVOID
GdiSharedHandleTable: PVOID
ProcessStarterHelper: PVOID
GdiDCAttributeList: ULONG
LoaderLock: *RTL_CRITICAL_SECTION
OSMajorVersion: ULONG
OSMinorVersion: ULONG
OSBuildNumber: USHORT
OSCSDVersion: USHORT
OSPlatformId: ULONG
ImageSubSystem: ULONG
ImageSubSystemMajorVersion: ULONG
ImageSubSystemMinorVersion: ULONG
ActiveProcessAffinityMask: KAFFINITY
GdiHandleBuffer: [ switch (@sizeOf(usize)) { 4 => 0x22, 8 => 0x3C, else => unreachable, } ]ULONG
PostProcessInitRoutine: PVOID
TlsExpansionBitmap: *RTL_BITMAP
TlsExpansionBitmapBits: [32]ULONG
SessionId: ULONG
AppCompatFlags: ULARGE_INTEGER
AppCompatFlagsUser: ULARGE_INTEGER
ShimData: PVOID
AppCompatInfo: PVOID
CSDVersion: UNICODE_STRING
ActivationContextData: *const ACTIVATION_CONTEXT_DATA
ProcessAssemblyStorageMap: *ASSEMBLY_STORAGE_MAP
SystemDefaultActivationData: *const ACTIVATION_CONTEXT_DATA
SystemAssemblyStorageMap: *ASSEMBLY_STORAGE_MAP
MinimumStackCommit: ULONG_PTR
FlsCallback: *FLS_CALLBACK_INFO
FlsListHead: LIST_ENTRY
FlsBitmap: *RTL_BITMAP
FlsBitmapBits: [4]ULONG
FlsHighIndex: ULONG
WerRegistrationData: PVOID
WerShipAssertPtr: PVOID
pUnused: PVOID
pImageHeaderHash: PVOID
TracingFlags: ULONGTODO: https://www.geoffchappell.com/studies/windows/win32/ntdll/structs/peb/tracingflags.htm
CsrServerReadOnlySharedMemoryBase: ULONGLONG
TppWorkerpListLock: ULONG
TppWorkerpList: LIST_ENTRY
WaitOnAddressHashTable: [0x80]PVOID
TelemetryCoverageHeader: PVOID
CloudFileFlags: ULONG

Source

pub const PEB = extern struct { // Versions: All InheritedAddressSpace: BOOLEAN, // Versions: 3.51+ ReadImageFileExecOptions: BOOLEAN, BeingDebugged: BOOLEAN, // Versions: 5.2+ (previously was padding) BitField: UCHAR, // Versions: all Mutant: HANDLE, ImageBaseAddress: HMODULE, Ldr: *PEB_LDR_DATA, ProcessParameters: *RTL_USER_PROCESS_PARAMETERS, SubSystemData: PVOID, ProcessHeap: HANDLE, // Versions: 5.1+ FastPebLock: *RTL_CRITICAL_SECTION, // Versions: 5.2+ AtlThunkSListPtr: PVOID, IFEOKey: PVOID, // Versions: 6.0+ /// https://www.geoffchappell.com/studies/windows/win32/ntdll/structs/peb/crossprocessflags.htm CrossProcessFlags: ULONG, // Versions: 6.0+ union1: extern union { KernelCallbackTable: PVOID, UserSharedInfoPtr: PVOID, }, // Versions: 5.1+ SystemReserved: ULONG, // Versions: 5.1, (not 5.2, not 6.0), 6.1+ AtlThunkSListPtr32: ULONG, // Versions: 6.1+ ApiSetMap: PVOID, // Versions: all TlsExpansionCounter: ULONG, // note: there is padding here on 64 bit TlsBitmap: *RTL_BITMAP, TlsBitmapBits: [2]ULONG, ReadOnlySharedMemoryBase: PVOID, // Versions: 1703+ SharedData: PVOID, // Versions: all ReadOnlyStaticServerData: *PVOID, AnsiCodePageData: PVOID, OemCodePageData: PVOID, UnicodeCaseTableData: PVOID, // Versions: 3.51+ NumberOfProcessors: ULONG, NtGlobalFlag: ULONG, // Versions: all CriticalSectionTimeout: LARGE_INTEGER, // End of Original PEB size // Fields appended in 3.51: HeapSegmentReserve: ULONG_PTR, HeapSegmentCommit: ULONG_PTR, HeapDeCommitTotalFreeThreshold: ULONG_PTR, HeapDeCommitFreeBlockThreshold: ULONG_PTR, NumberOfHeaps: ULONG, MaximumNumberOfHeaps: ULONG, ProcessHeaps: *PVOID, // Fields appended in 4.0: GdiSharedHandleTable: PVOID, ProcessStarterHelper: PVOID, GdiDCAttributeList: ULONG, // note: there is padding here on 64 bit LoaderLock: *RTL_CRITICAL_SECTION, OSMajorVersion: ULONG, OSMinorVersion: ULONG, OSBuildNumber: USHORT, OSCSDVersion: USHORT, OSPlatformId: ULONG, ImageSubSystem: ULONG, ImageSubSystemMajorVersion: ULONG, ImageSubSystemMinorVersion: ULONG, // note: there is padding here on 64 bit ActiveProcessAffinityMask: KAFFINITY, GdiHandleBuffer: [ switch (@sizeOf(usize)) { 4 => 0x22, 8 => 0x3C, else => unreachable, } ]ULONG, // Fields appended in 5.0 (Windows 2000): PostProcessInitRoutine: PVOID, TlsExpansionBitmap: *RTL_BITMAP, TlsExpansionBitmapBits: [32]ULONG, SessionId: ULONG, // note: there is padding here on 64 bit // Versions: 5.1+ AppCompatFlags: ULARGE_INTEGER, AppCompatFlagsUser: ULARGE_INTEGER, ShimData: PVOID, // Versions: 5.0+ AppCompatInfo: PVOID, CSDVersion: UNICODE_STRING, // Fields appended in 5.1 (Windows XP): ActivationContextData: *const ACTIVATION_CONTEXT_DATA, ProcessAssemblyStorageMap: *ASSEMBLY_STORAGE_MAP, SystemDefaultActivationData: *const ACTIVATION_CONTEXT_DATA, SystemAssemblyStorageMap: *ASSEMBLY_STORAGE_MAP, MinimumStackCommit: ULONG_PTR, // Fields appended in 5.2 (Windows Server 2003): FlsCallback: *FLS_CALLBACK_INFO, FlsListHead: LIST_ENTRY, FlsBitmap: *RTL_BITMAP, FlsBitmapBits: [4]ULONG, FlsHighIndex: ULONG, // Fields appended in 6.0 (Windows Vista): WerRegistrationData: PVOID, WerShipAssertPtr: PVOID, // Fields appended in 6.1 (Windows 7): pUnused: PVOID, // previously pContextData pImageHeaderHash: PVOID, /// TODO: https://www.geoffchappell.com/studies/windows/win32/ntdll/structs/peb/tracingflags.htm TracingFlags: ULONG, // Fields appended in 6.2 (Windows 8): CsrServerReadOnlySharedMemoryBase: ULONGLONG, // Fields appended in 1511: TppWorkerpListLock: ULONG, TppWorkerpList: LIST_ENTRY, WaitOnAddressHashTable: [0x80]PVOID, // Fields appended in 1709: TelemetryCoverageHeader: PVOID, CloudFileFlags: ULONG, }