Недокументированные функции 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