Поделиться через


Структура PEB (winternl.h)

[Эта структура может быть изменена в будущих версиях Windows.]

Содержит сведения о процессе.

Синтаксис

typedef struct _PEB {
  BYTE                          Reserved1[2];
  BYTE                          BeingDebugged;
  BYTE                          Reserved2[1];
  PVOID                         Reserved3[2];
  PPEB_LDR_DATA                 Ldr;
  PRTL_USER_PROCESS_PARAMETERS  ProcessParameters;
  PVOID                         Reserved4[3];
  PVOID                         AtlThunkSListPtr;
  PVOID                         Reserved5;
  ULONG                         Reserved6;
  PVOID                         Reserved7;
  ULONG                         Reserved8;
  ULONG                         AtlThunkSListPtr32;
  PVOID                         Reserved9[45];
  BYTE                          Reserved10[96];
  PPS_POST_PROCESS_INIT_ROUTINE PostProcessInitRoutine;
  BYTE                          Reserved11[128];
  PVOID                         Reserved12[1];
  ULONG                         SessionId;
} PEB, *PPEB;

Члены

Reserved1[2]

Зарезервировано для внутреннего использования операционной системой.

BeingDebugged

Указывает, выполняется ли отладка указанного процесса в данный момент. Однако структура PEB является внутренней структурой операционной системы, структура которой может измениться в будущем. Лучше всего использовать функцию CheckRemoteDebuggerPresent .

Reserved2[1]

Зарезервировано для внутреннего использования операционной системой.

Reserved3[2]

Зарезервировано для внутреннего использования операционной системой.

Ldr

Указатель на структуру PEB_LDR_DATA , содержащую сведения о загруженных модулях для процесса.

ProcessParameters

Указатель на структуру RTL_USER_PROCESS_PARAMETERS , содержащую сведения о параметрах процесса, такие как командная строка.

Reserved4[3]

Зарезервировано для внутреннего использования операционной системой.

AtlThunkSListPtr

Reserved5

Зарезервировано для внутреннего использования операционной системой.

Reserved6

Зарезервировано для внутреннего использования операционной системой.

Reserved7

Зарезервировано для внутреннего использования операционной системой.

Reserved8

AtlThunkSListPtr32

Reserved9[45]

Reserved10[96]

PostProcessInitRoutine

Не поддерживается.

Reserved11[128]

Reserved12[1]

SessionId

Идентификатор сеанса служб терминалов, связанный с текущим процессом.

Комментарии

Синтаксис этой структуры в 64-разрядной версии Windows выглядит следующим образом:

typedef struct _PEB {
    BYTE Reserved1[2];
    BYTE BeingDebugged;
    BYTE Reserved2[21];
    PPEB_LDR_DATA LoaderData;
    PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
    BYTE Reserved3[520];
    PPS_POST_PROCESS_INIT_ROUTINE PostProcessInitRoutine;
    BYTE Reserved4[136];
    ULONG SessionId;
} PEB;

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть winternl.h

См. также раздел

NtQueryInformationProcess

ZwQueryInformationProcess

TEB

PEB_LDR_DATA

RTL_USER_PROCESS_PARAMETERS