Const
GDI_HANDLE_BUFFER_SIZE32 = 34;
GDI_HANDLE_BUFFER_SIZE64 = 60;
FLS_MAXIMUM_AVAILABLE = 128;
FLS_MAXIMUM = FLS_MAXIMUM_AVAILABLE Div (SizeOf(ULONG) * 8);
Type
UNICODE_STRING = Record
Length :USHORT;
MaximumLength :USHORT;
Buffer :PWideChar;
End;
PUNICODE_STRING = ^UNICODE_STRING;
ANSI_STRING = Record
Length :USHORT;
MaximumLength :USHORT;
Buffer :PAnsiChar;
End;
_CURDIR = Record
DosPath :UNICODE_STRING;
Handle :THandle;
End;
CURDIR = _CURDIR;
PCURDIR = ^_CURDIR;
_RTL_DRIVE_LETTER_CURDIR = Record
Flags :USHORT;
Length :USHORT;
TimeStamp :ULONG;
DosPath :ANSI_STRING;
End;
RTL_DRIVE_LETTER_CURDIR = _RTL_DRIVE_LETTER_CURDIR;
PRTL_DRIVE_LETTER_CURDIR = ^_RTL_DRIVE_LETTER_CURDIR;
_PEB_LDR_DATA = Record
Length :ULONG;
Initialized :Boolean;
SsHandle :THandle;
InLoadOrderModuleList :TListEntry;
InMemoryOrderModuleList :TListEntry;
InInitializationOrderModuleList :TListEntry;
EntryInProgress :Pointer;
ShutdownInProgress :Boolean;
ShutdownThreadId :THandle;
End;
TPEB_LDR_DATA = _PEB_LDR_DATA;
PEB_LDR_DATA = _PEB_LDR_DATA;
PPEB_LDR_DATA = ^_PEB_LDR_DATA;
_RTL_USER_PROCESS_PARAMETERS = Record
MaximumLength :ULONG;
Length :ULONG;
Flags :ULONG;
DebugFlags :ULONG;
ConsoleHandle :THandle;
ConsoleFlags :ULONG;
StandardInput :THandle;
StandardOutput :THandle;
StandardError :THandle;
CurrentDirectory :CURDIR;
DllPath :UNICODE_STRING;
ImagePathName :UNICODE_STRING;
CommandLine :UNICODE_STRING;
Environment :Pointer;
StartingX :ULONG;
StartingY :ULONG;
CountX :ULONG;
CountY :ULONG;
CountCharsX :ULONG;
CountCharsY :ULONG;
FillAttribute :ULONG;
WindowFlags :ULONG;
ShowWindowFlags :ULONG;
WindowTitle :UNICODE_STRING;
DesktopInfo :UNICODE_STRING;
ShellInfo :UNICODE_STRING;
RuntimeData :UNICODE_STRING;
CurrentDirectories :Array [0..31] Of RTL_DRIVE_LETTER_CURDIR;
EnvironmentSize :ULONG;
EnvironmentVersion :ULONG;
End;
RTL_USER_PROCESS_PARAMETERS = _RTL_USER_PROCESS_PARAMETERS;
TRTL_USER_PROCESS_PARAMETERS = _RTL_USER_PROCESS_PARAMETERS;
PRTL_USER_PROCESS_PARAMETERS = ^_RTL_USER_PROCESS_PARAMETERS;
PPS_POST_PROCESS_INIT_ROUTINE = Pointer;
PRTL_CRITICAL_SECTION = PRTLCriticalSection;
GDI_HANDLE_BUFFER32 = Array [0..GDI_HANDLE_BUFFER_SIZE32-1] Of ULONG;
GDI_HANDLE_BUFFER64 = Array [0..GDI_HANDLE_BUFFER_SIZE64-1] Of ULONG;
{$IFDEF WIN64}
GDI_HANDLE_BUFFER = GDI_HANDLE_BUFFER64;
{$ELSE}
GDI_HANDLE_BUFFER = GDI_HANDLE_BUFFER32;
{$ENDIF}
_PEB = Record
InheritedAddressSpace :Boolean;
ReadImageFileExecOptions :Boolean;
BeingDebugged :Boolean;
BitField :Boolean;
Mutant :THandle;
ImageBaseAddress :Pointer;
Ldr :PPEB_LDR_DATA;
ProcessParameters :PRTL_USER_PROCESS_PARAMETERS;
SubSystemData :Pointer;
ProcessHeap :Pointer;
FastPebLock :PRTL_CRITICAL_SECTION;
AtlThunkSListPtr :Pointer;
IFEOKey :Pointer;
CrossProcessFlags :ULONG;
EnvironmentUpdateCount :ULONG;
KernelCallbackTable :Pointer;
SystemReserved :Array [0..0] Of ULONG;
AtlThunkSListPtr32 :ULONG;
ApiSetMap :Pointer;
TlsExpansionCounter :ULONG;
TlsBitmap :Pointer;
TlsBitmapBits :Array [0..1] Of ULONG;
ReadOnlySharedMemoryBase :Pointer;
HotpatchInformation :Pointer;
ReadOnlyStaticServerData :PPointer;
AnsiCodePageData :Pointer;
OemCodePageData :Pointer;
UnicodeCaseTableData :Pointer;
NumberOfProcessors :ULONG;
NtGlobalFlag :ULONG;
CriticalSectionTimeout :LARGE_INTEGER;
HeapSegmentReserve :SIZE_T;
HeapSegmentCommit :SIZE_T;
HeapDeCommitTotalFreeThreshold :SIZE_T;
HeapDeCommitFreeBlockThreshold :SIZE_T;
NumberOfHeaps :ULONG;
MaximumNumberOfHeaps :ULONG;
ProcessHeaps :PPointer;
GdiSharedHandleTable :Pointer;
ProcessStarterHelper :Pointer;
GdiDCAttributeList :ULONG;
LoaderLock :PRTL_CRITICAL_SECTION;
OSMajorVersion :ULONG;
OSMinorVersion :ULONG;
OSBuildNumber :USHORT;
OSCSDVersion :USHORT;
OSPlatformId :ULONG;
ImageSubsystem :ULONG;
ImageSubsystemMajorVersion :ULONG;
ImageSubsystemMinorVersion :ULONG;
ImageProcessAffinityMask :ULONG_PTR;
GdiHandleBuffer :GDI_HANDLE_BUFFER;
PostProcessInitRoutine :Pointer;
TlsExpansionBitmap :Pointer;
TlsExpansionBitmapBits :Array [0..31] Of ULONG;
SessionId :ULONG;
AppCompatFlags :ULARGE_INTEGER;
AppCompatFlagsUser :ULARGE_INTEGER;
pShimData :Pointer;
AppCompatInfo :Pointer;
CSDVersion :UNICODE_STRING;
ActivationContextData :Pointer;
ProcessAssemblyStorageMap :Pointer;
SystemDefaultActivationContextData :Pointer;
SystemAssemblyStorageMap :Pointer;
MinimumStackCommit :SIZE_T;
FlsCallback :PPointer;
FlsListHead :TListEntry;
FlsBitmap :Pointer;
FlsBitmapBits :Array [0..FLS_MAXIMUM-1] Of ULONG;
FlsHighIndex :ULONG;
WerRegistrationData :Pointer;
WerShipAssertPtr :Pointer;
pContextData :Pointer;
pImageHeaderHash :Pointer;
TracingFlags :ULONG;
SpareTracingBits :ULONG;
End;
TPEB = _PEB;
PPEB = ^_PEB;
_LDR_DATA_TABLE_ENTRY_COMPATIBLE = Record
InLoadOrderLinks :TListEntry;
InMemoryOrderLinks :TListEntry;
InInitializationOrderLinks :TListEntry;
DllBase :Pointer;
EntryPoint :Pointer;
SizeOfImage :ULONG;
FullDllName :UNICODE_STRING;
BaseDllName :UNICODE_STRING;
Flags :ULONG;
ObsoleteLoadCount :Word;
TlsIndex :Word;
HashLinks :TListEntry;
TimeDateStamp :ULONG;
End;
LDR_DATA_TABLE_ENTRY_COMPATIBLE = _LDR_DATA_TABLE_ENTRY_COMPATIBLE;
LDR_DATA_TABLE_ENTRY = _LDR_DATA_TABLE_ENTRY_COMPATIBLE;
PLDR_DATA_TABLE_ENTRY = ^_LDR_DATA_TABLE_ENTRY_COMPATIBLE;
LdrModule = _LDR_DATA_TABLE_ENTRY_COMPATIBLE;
PLdrModule = ^LdrModule;