!처리

!handle 확장은 대상 시스템의 하나 또는 모든 프로세스가 소유한 핸들 또는 핸들에 대한 정보를 표시합니다.

사용자 모드

!handle [Handle [UMFlags [TypeName]]] 
!handle -?

커널 모드

!handle [Handle [KMFlags [Process [TypeName]]]] 

매개 변수

Handle
표시할 핸들의 인덱스를 지정합니다. Handle이 -1이거나 이 매개 변수를 생략하면 디버거는 현재 프로세스와 연결된 모든 핸들에 대한 데이터를 표시합니다. Handle이 0이면 디버거는 모든 핸들에 대한 데이터를 표시합니다.

UMFlags
(사용자 모드에만 해당) 디스플레이에 포함할 항목을 지정합니다. 이 매개 변수는 다음 비트 값의 합계일 수 있습니다. 기본값은 0x1.

비트 0(0x1)
핸들 형식 정보를 표시합니다.

비트 1(0x2)
기본 핸들 정보를 표시합니다.

비트 2(0x4)
핸들 이름 정보를 표시합니다.

비트 3(0x8)
사용 가능한 경우 개체별 핸들 정보를 표시합니다.

KMFlags
(커널 모드에만 해당) 디스플레이에 포함할 항목을 지정합니다. 이 매개 변수는 다음 비트 값의 합계일 수 있습니다. 기본값은 0x3.

비트 0(0x1)
기본 핸들 정보를 표시합니다.

비트 1(0x2)
개체에 대한 정보를 표시합니다.

비트 2(0x4)
자유 핸들 항목을 표시합니다. 이 비트를 설정하지 않고 핸들을 생략하거나 0으로 설정하면 표시되는 핸들 목록에 자유 핸들이 포함되지 않습니다. 핸들이 사용 가능한 단일 핸들을 지정하는 경우 이 비트를 설정하지 않더라도 이 핸들이 표시됩니다.

비트 4(0x10)
현재 프로세스 대신 커널 핸들 테이블의 핸들을 표시합니다.

비트 5(0x20)
핸들을 스레드 ID 또는 프로세스 ID로 해석하고 해당 커널 개체에 대한 정보를 표시합니다.

처리
(커널 모드에만 해당) 프로세스를 지정합니다. 프로세스 ID 또는 프로세스 개체의 16진수 주소를 사용할 수 있습니다. 이 매개 변수는 대상 시스템에서 현재 실행 중인 프로세스를 참조해야 합니다. 이 매개 변수가 -1이거나 생략하면 현재 프로세스가 사용됩니다. 이 매개 변수가 0이면 모든 프로세스의 처리 정보가 표시됩니다.

TypeName
검사할 핸들의 형식을 지정합니다. 이 형식과 일치하는 핸들만 표시됩니다. TypeName은 대/소문자를 구분합니다. 유효한 형식으로는 Event, Section, File, Port, Directory, SymbolicLink, Mutant, WindowStation, Semaphore, Key, Token, Process, Thread, Desktop, IoCompletion, Timer, Job 및 WaitablePort가 있습니다.

-?
(사용자 모드에만 해당) 디버거 명령 창이 확장에 대한 도움말 텍스트를 표시합니다.

DLL

Windows 2000

Kdextx86.dll Uext.dll Ntsdexts.dll

Windows XP 이상

Kdexts.dll Uext.dll Ntsdexts.dll

추가 정보

핸들에 대한 자세한 내용은 !htrace 확장, Microsoft Windows SDK 설명서 및 Mark Russinovich 및 David Solomon의 Microsoft Windows 내부 문서를 참조하세요.

설명

사용자 모드 및 커널 모드 라이브 디버깅 중에 !handle 확장을 사용할 수 있습니다. 커널 모드 덤프 파일에서도 이 확장을 사용할 수 있습니다. 그러나 핸들 정보를 사용하여 특별히 만들지 않는 한 사용자 모드 덤프 파일에서 이 확장을 사용할 수 없습니다. (를 사용하여 이러한 덤프 파일을 만들 수 있습니다. dump /mh(덤프 파일 만들기) 명령입니다 .

라이브 사용자 모드 디버깅 중에 .closehandle(핸들 닫기) 명령을 사용하여 하나 이상의 핸들을 닫을 수 있습니다.

다음 예제는 !handle 확장의 사용자 모드 예제입니다. 다음 명령은 모든 핸들의 목록을 표시합니다.

0:000> !handle
Handle 4
  Type          Section
Handle 8
  Type          Event
Handle c
  Type          Event
Handle 10
  Type          Event
Handle 14
  Type          Directory
Handle 5c
  Type          File
6 Handles
Type            Count
Event           3
Section         1
File            1
Directory       1

다음 명령은 핸들 0x8 대한 자세한 정보를 표시합니다.

0:000> !handle 8 f
Handle 8
  Type          Event
  Attributes    0
  GrantedAccess 0x100003:
         Synch
         QueryState,ModifyState
  HandleCount   2
  PointerCount  3
  Name          <none>
  Object Specific Information
    Event Type Auto Reset
    Event is Waiting

다음 예제는 !handle커널 모드 예제입니다. 다음 명령은 사용 가능한 핸들을 포함하여 모든 핸들을 나열합니다.

kd> !handle 0 4
processor number 0
PROCESS 80559800  SessionId: 0  Cid: 0000    Peb: 00000000  ParentCid: 0000
    DirBase: 00039000  ObjectTable: e1000d60  TableSize: 380.
    Image: Idle

New version of handle table at e1002000 with 380 Entries in use

0000: free handle, Entry address e1002000, Next Entry fffffffe
0004: Object: 80ed5238  GrantedAccess: 001f0fff
0008: Object: 80ed46b8  GrantedAccess: 00000000
000c: Object: e1281d00  GrantedAccess: 000f003f
0010: Object: e1013658  GrantedAccess: 00000000
......
0168: Object: ffb6c748  GrantedAccess: 00000003 (Protected)
016c: Object: ff811f90  GrantedAccess: 0012008b
0170: free handle, Entry address e10022e0, Next Entry 00000458
0174: Object: 80dfd5c8  GrantedAccess: 001f01ff
......

다음 명령은 커널 핸들 테이블의 핸들 0x14 대한 자세한 정보를 보여줍니다.

kd> !handle 14 13
processor number 0
PROCESS 80559800  SessionId: 0  Cid: 0000    Peb: 00000000  ParentCid: 0000
    DirBase: 00039000  ObjectTable: e1000d60  TableSize: 380.
    Image: Idle

Kernel New version of handle table at e1002000 with 380 Entries in use
0014: Object: e12751d0  GrantedAccess: 0002001f
Object: e12751d0  Type: (80ec8db8) Key
    ObjectHeader: e12751b8
        HandleCount: 1  PointerCount: 1
        Directory Object: 00000000  Name: \REGISTRY\MACHINE\SYSTEM\CONTROLSET001\CONTROL\SESSION MANAGER\EXECUTIVE

다음 명령은 모든 프로세스의 Section 개체에 대한 모든 핸들에 대한 정보를 보여 줍니다.

!handle 0 3 0 Section
...
PROCESS fffffa8004f48940
    SessionId: none  Cid: 0138    Peb: 7f6639bf000  ParentCid: 0004
    DirBase: 10cb74000  ObjectTable: fffff8a00066f700  HandleCount:  39.
    Image: smss.exe

Handle table at fffff8a00066f700 with 39 entries in use

0040: Object: fffff8a000633f00  GrantedAccess: 00000006 (Inherit) Entry: fffff8a000670100
Object: fffff8a000633f00  Type: (fffffa80035fef20) Section
    ObjectHeader: fffff8a000633ed0 (new version)
        HandleCount: 1  PointerCount: 262144
...