PSS_HANDLE_ENTRY 구조체(processsnapshot.h)
PssWalkSnapshot에서 반환된 핸들에 대한 정보를 보유합니다.
구문
typedef struct {
HANDLE Handle;
PSS_HANDLE_FLAGS Flags;
PSS_OBJECT_TYPE ObjectType;
FILETIME CaptureTime;
DWORD Attributes;
DWORD GrantedAccess;
DWORD HandleCount;
DWORD PointerCount;
DWORD PagedPoolCharge;
DWORD NonPagedPoolCharge;
FILETIME CreationTime;
WORD TypeNameLength;
wchar_t const *TypeName;
WORD ObjectNameLength;
wchar_t const *ObjectName;
union {
struct {
DWORD ExitStatus;
void *PebBaseAddress;
ULONG_PTR AffinityMask;
LONG BasePriority;
DWORD ProcessId;
DWORD ParentProcessId;
DWORD Flags;
} Process;
struct {
DWORD ExitStatus;
void *TebBaseAddress;
DWORD ProcessId;
DWORD ThreadId;
ULONG_PTR AffinityMask;
int Priority;
int BasePriority;
void *Win32StartAddress;
} Thread;
struct {
LONG CurrentCount;
BOOL Abandoned;
DWORD OwnerProcessId;
DWORD OwnerThreadId;
} Mutant;
struct {
BOOL ManualReset;
BOOL Signaled;
} Event;
struct {
void *BaseAddress;
DWORD AllocationAttributes;
LARGE_INTEGER MaximumSize;
} Section;
struct {
LONG CurrentCount;
LONG MaximumCount;
} Semaphore;
} TypeSpecificInformation;
} PSS_HANDLE_ENTRY;
멤버
Handle
핸들 값입니다.
Flags
이 구조체의 어떤 부분이 유효한지 나타내는 플래그입니다. 자세한 내용은 PSS_HANDLE_FLAGS 참조하세요.
ObjectType
핸들이 참조하는 개체의 형식입니다. 자세한 내용은 PSS_OBJECT_TYPE 참조하세요.
CaptureTime
이 정보의 캡처 시간입니다. 자세한 내용은 FILETIME을 참조하세요.
Attributes
특성.
GrantedAccess
운영 체제에서 사용하도록 예약되어 있습니다.
HandleCount
운영 체제에서 사용하도록 예약되어 있습니다.
PointerCount
운영 체제에서 사용하도록 예약되어 있습니다.
PagedPoolCharge
운영 체제에서 사용하도록 예약되어 있습니다.
NonPagedPoolCharge
운영 체제에서 사용하도록 예약되어 있습니다.
CreationTime
운영 체제에서 사용하도록 예약되어 있습니다.
TypeNameLength
TypeName의 길이(바이트)입니다.
TypeName
이 핸들에서 참조하는 개체의 형식 이름입니다. 버퍼는 NULL 문자로 종료되지 않을 수 있습니다. 포인터는 PssWalkSnapshot에 전달된 워크 마커의 수명 동안 유효합니다.
ObjectNameLength
ObjectName의 길이(바이트)입니다.
ObjectName
이 핸들에서 참조하는 개체의 이름을 지정합니다. 버퍼는 NULL 문자로 종료되지 않을 수 있습니다. 포인터는 PssWalkSnapshot에 전달된 워크 마커의 수명 동안 유효합니다.
TypeSpecificInformation
형식별 정보입니다.
프로세스
ObjectType = PSS_OBJECT_TYPE_PROCESS 유효합니다.
ExitStatus
프로세스의 종료 코드입니다. 프로세스가 종료되지 않은 경우 STILL_ACTIVE (259)로 설정됩니다.
PebBaseAddress
PEB(프로세스 환경 블록)의 주소입니다. 운영 체제에서 사용하도록 예약되어 있습니다.
AffinityMask
프로세스의 선호도 마스크입니다.
BasePriority
프로세스의 기본 우선 순위 수준입니다.
ProcessId
프로세스 ID입니다.
ParentProcessId
부모 프로세스 ID입니다.
플래그
프로세스에 대한 플래그입니다. 자세한 내용은 PSS_PROCESS_FLAGS 참조하세요.
스레드
ObjectType = PSS_OBJECT_TYPE_THREAD 유효합니다.
ExitStatus
프로세스의 종료 코드입니다. 프로세스가 종료되지 않은 경우 STILL_ACTIVE (259)로 설정됩니다.
TebBaseAddress
TEB(스레드 환경 블록)의 주소입니다. 운영 체제에서 사용하도록 예약되어 있습니다.
ProcessId
프로세스 ID입니다.
스레드 Id
스레드 ID입니다.
AffinityMask
프로세스의 선호도 마스크입니다.
우선 순위
스레드의 동적 우선 순위 수준입니다.
BasePriority
스레드의 기본 우선 순위 수준입니다.
Win32StartAddress
스레드에 대한 스레드 프로시저에 대한 포인터입니다.
돌연변이
ObjectType = PSS_OBJECT_TYPE_MUTANT 유효합니다.
CurrentCount
운영 체제에서 사용하도록 예약되어 있습니다.
Abandoned
TRUE이면 돌연변이가 중단된 경우(소유 스레드가 뮤텍스를 해제하지 않고 종료됨), 그렇지 않은 경우 FALSE입니다.
OwnerProcessId
스냅샷 생성 및 핸들 캡처 시 소유 스레드의 프로세스 ID입니다.
OwnerThreadId
스냅샷 생성 및 핸들 캡처 시 소유 스레드의 프로세스 ID입니다.
이벤트
ObjectType = PSS_OBJECT_TYPE_EVENT 유효합니다.
ManualReset
이벤트가 수동 재설정이면 TRUE이고, 그렇지 않으면 FALSE 입니다.
신호
TRUE이면 스냅샷 생성 및 핸들 캡처 시 이벤트가 신호를 받은 경우 FALSE입니다. 그렇지 않은 경우 FALSE입니다.
섹션
ObjectType = PSS_OBJECT_TYPE_SECTION 유효합니다.
BaseAddress
운영 체제에서 사용하도록 예약되어 있습니다.
AllocationAttributes
운영 체제에서 사용하도록 예약되어 있습니다.
MaximumSize
운영 체제에서 사용하도록 예약되어 있습니다.
TypeSpecificInformation.Process
TypeSpecificInformation.Process.ExitStatus
TypeSpecificInformation.Process.PebBaseAddress
TypeSpecificInformation.Process.AffinityMask
TypeSpecificInformation.Process.BasePriority
TypeSpecificInformation.Process.ProcessId
TypeSpecificInformation.Process.ParentProcessId
TypeSpecificInformation.Process.Flags
TypeSpecificInformation.Thread
TypeSpecificInformation.Thread.ExitStatus
TypeSpecificInformation.Thread.TebBaseAddress
TypeSpecificInformation.Thread.ProcessId
TypeSpecificInformation.Thread.ThreadId
TypeSpecificInformation.Thread.AffinityMask
TypeSpecificInformation.Thread.Priority
TypeSpecificInformation.Thread.BasePriority
TypeSpecificInformation.Thread.Win32StartAddress
TypeSpecificInformation.Mutant
TypeSpecificInformation.Mutant.CurrentCount
TypeSpecificInformation.Mutant.Abandoned
TypeSpecificInformation.Mutant.OwnerProcessId
TypeSpecificInformation.Mutant.OwnerThreadId
TypeSpecificInformation.Event
TypeSpecificInformation.Event.ManualReset
TypeSpecificInformation.Event.Signaled
TypeSpecificInformation.Section
TypeSpecificInformation.Section.BaseAddress
TypeSpecificInformation.Section.AllocationAttributes
TypeSpecificInformation.Section.MaximumSize
TypeSpecificInformation.Semaphore
TypeSpecificInformation.Semaphore.CurrentCount
TypeSpecificInformation.Semaphore.MaximumCount
설명
PssWalkSnapshot 은 호출자가 제공하는 PSS_WALK_INFORMATION_CLASS 멤버가 PSS_WALK_HANDLES 때 PSS_HANDLE_ENTRY 구조를 반환합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8.1 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2012 R2 [데스크톱 앱만 해당] |
머리글 | processsnapshot.h |