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 |