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 |