!處理

!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)
顯示免費句柄專案。 如果您未設定此位,且省略 Handle 或將其設定為零,則顯示的句柄清單不包含免費句柄。 如果 Handle 指定單一免費句柄,即使您未設定此位,也會顯示此句柄。

位 4 (0x10)
顯示核心句柄數據表中的句柄,而不是目前的進程。

位 5 (0x20)
將句柄解譯為線程標識碼或進程標識碼,並顯示對應核心對象的相關信息。

處理
(僅限核心模式)指定進程。 您可以使用行程識別碼或行程物件的十六進位位址。 此參數必須參考目標系統上目前正在執行的進程。 如果此參數是 -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 檔案和 Microsoft Windows Internals by Mark Russinovich 和 David 所羅門。

備註

您可以在使用者模式和內核模式即時偵錯期間使用 !handle 擴充功能。 您也可以在內核模式傾印檔案上使用此擴充功能。 不過,除非您特別使用處理資訊來建立使用者模式傾印檔案,否則您無法在使用者模式傾印檔案上使用此延伸模組。 (您可以使用 來建立這類傾印檔案 。dump /mh (建立傾印檔案) 命令。

在即時使用者模式偵錯期間,您可以使用 .closehandle (Close Handle) 命令來關閉一或多個句柄。

下列範例是 !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
...