!處理
!handle 延伸模組會顯示目標系統中一或所有進程擁有之句柄或句柄的相關信息。
使用者模式
!handle [Handle [UMFlags [TypeName]]]
!handle -?
內核模式
!handle [Handle [KMFlags [Process [TypeName]]]]
參數
處理
指定要顯示的句柄索引。 如果 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 檔案,以及 Mark Russinovich 和 David 所羅門的 Windows 內部Microsoft。
備註
您可以在使用者模式和內核模式即時偵錯期間使用 !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
...