다음을 통해 공유


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_HANDLESPSS_HANDLE_ENTRY 구조를 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8.1 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 R2 [데스크톱 앱만 해당]
머리글 processsnapshot.h

추가 정보

프로세스 스냅샷