Недокументированные функции NTDLL

2 марта 2001



PEB

typedef struct _PEB {

BOOLEAN InheritedAddressSpace; BOOLEAN ReadImageFileExecOptions; BOOLEAN BeingDebugged; BOOLEAN Spare; HANDLE Mutant; PVOID ImageBaseAddress; PPEB_LDR_DATA LoaderData; PRTL_USER_PROCESS_PARAMETERS ProcessParameters; PVOID SubSystemData; PVOID ProcessHeap; PVOID FastPebLock; PPEBLOCKROUTINE FastPebLockRoutine; PPEBLOCKROUTINE FastPebUnlockRoutine; ULONG EnvironmentUpdateCount; PPVOID KernelCallbackTable; PVOID EventLogSection; PVOID EventLog; PPEB_FREE_BLOCK FreeList; ULONG TlsExpansionCounter; PVOID TlsBitmap; ULONG TlsBitmapBits[0x2]; PVOID ReadOnlySharedMemoryBase; PVOID ReadOnlySharedMemoryHeap; PPVOID ReadOnlyStaticServerData; PVOID AnsiCodePageData; PVOID OemCodePageData; PVOID UnicodeCaseTableData; ULONG NumberOfProcessors; ULONG NtGlobalFlag; BYTE Spare2[0x4]; LARGE_INTEGER CriticalSectionTimeout; ULONG HeapSegmentReserve; ULONG HeapSegmentCommit; ULONG HeapDeCommitTotalFreeThreshold; ULONG HeapDeCommitFreeBlockThreshold; ULONG NumberOfHeaps; ULONG MaximumNumberOfHeaps; PPVOID *ProcessHeaps; PVOID GdiSharedHandleTable; PVOID ProcessStarterHelper; PVOID GdiDCAttributeList; PVOID LoaderLock; ULONG OSMajorVersion; ULONG OSMinorVersion; ULONG OSBuildNumber; ULONG OSPlatformId; ULONG ImageSubSystem; ULONG ImageSubSystemMajorVersion; ULONG ImageSubSystemMinorVersion; ULONG GdiHandleBuffer[0x22]; ULONG PostProcessInitRoutine; ULONG TlsExpansionBitmap; BYTE TlsExpansionBitmapBits[0x80]; ULONG SessionId;

} PEB, *PPEB;



Структура PEB (Process Enviroment Block, блок окружения процесса) содержит все параметры пользовательского режима, ассоциированные системой с текущим процессом.


  • InheritedAddressSpace
  •     
  • ReadImageFileExecOptions
  •     
  • BeingDebugged
  •     
  • Spare
  •     
  • Mutant
  •     
  • ImageBaseAddress
  •     Адрес исполняемого образа в памяти процесса.
  • LoaderData
  •     Указатель на структуру PEB_LDR_DATA, содержащую информацию, заполненную загрузчиком.
  • ProcessParameters
  •     Указатель на структуру RTL_USER_PROCESS_PARAMETERS.
  • SubSystemData
  •     
  • ProcessHeap
  •     Адрес первой кучи процесса, выделенной загрузчиком.
  • FastPebLock
  •     Параметр для PEBLOCKROUTINE (см. ниже).
  • FastPebLockRoutine
  •     Адрес функции для PEB. Прототип функции:
    typedef void (*PPEBLOCKROUTINE)(
    PVOID PebLock
    );
  • FastPebUnlockRoutine
  •     PEB функция.
  • EnvironmentUpdateCount
  •     Счётчик обновлений окружения процесса.
  • KernelCallbackTable
  •     
  • EventLogSection
  •     
  • EventLog
  •     
  • FreeList
  •     
  • TlsExpansionCounter
  •     
  • TlsBitmap
  •     
  • TlsBitmapBits[0x2]
  •     
  • ReadOnlySharedMemoryBase
  •     
  • ReadOnlySharedMemoryHeap
  •     
  • ReadOnlyStaticServerData
  •     
  • AnsiCodePageData
  •     
  • OemCodePageData
  •     
  • UnicodeCaseTableData
  •     
  • NumberOfProcessors
  •     
  • NtGlobalFlag
  •     
  • Spare2[0x4]
  •     
  • CriticalSectionTimeout
  •     
  • HeapSegmentReserve
  •     
  • HeapSegmentCommit
  •     
  • HeapDeCommitTotalFreeThreshold
  •     
  • HeapDeCommitFreeBlockThreshold
  •     
  • NumberOfHeaps
  •     
  • MaximumNumberOfHeaps
  •     
  • *ProcessHeaps
  •     
  • GdiSharedHandleTable
  •     
  • ProcessStarterHelper
  •     
  • GdiDCAttributeList
  •     
  • LoaderLock
  •     
  • OSMajorVersion
  •     
  • OSMinorVersion
  •     
  • OSBuildNumber
  •     
  • OSPlatformId
  •     
  • ImageSubSystem
  •     
  • ImageSubSystemMajorVersion
  •     
  • ImageSubSystemMinorVersion
  •     
  • GdiHandleBuffer[0x22]
  •     
  • PostProcessInitRoutine
  •     
  • TlsExpansionBitmap
  •     
  • TlsExpansionBitmapBits[0x80]
  •     
  • SessionId
  •     


    Документировал:
    Reactos
    Томаш Новак



    Зависимости:
    Библиотека: ntdll.lib


    См. также:
    NtQueryInformationProcess
    PEB_FREE_BLOCK
    PEB_LDR_DATA
    PROCESS_BASIC_INFORMATION
    RTL_USER_PROCESS_PARAMETERS
    TEB