!handle
!handle 拡張子は、ターゲット システム内の 1 つまたはすべてのプロセスが所有するハンドルに関する情報を表示します。
ユーザー モード
!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)
ハンドルをスレッド ID またはプロセス ID として解釈し、対応するカーネル オブジェクトに関する情報を表示します。
Process
(カーネルモードのみ) プロセスを指定します。 プロセス ID またはプロセス オブジェクトの 16 進アドレスを使用できます。 このパラメータは、ターゲット システム上で現在実行中のプロセスを参照する必要があります。 このパラメータが -1 の場合、または省略した場合は、現在のプロセスが使用されます。 このパラメータが 0 の場合、すべてのプロセスのハンドル情報が表示されます。
TypeName
調べたいハンドルのタイプを指定します。 このタイプに一致するハンドルのみが表示されます。 TypeName では大文字と小文字が区別されます。 有効なタイプには、イベント、セクション、ファイル、ポート、ディレクトリ、SymbolicLink、Mutant、WindowStation、セマフォ、キー、トークン、プロセス、スレッド、デスクトップ、IoCompletion、タイマー、ジョブ、および WaitablePort が含まれます。
-?
(ユーザー モードのみ) デバッガ コマンド ウィンドウにこの拡張機能のヘルプ テキストを表示します。
DLL
Windows 2000 |
Kdextx86.dll Uext.dll Ntsdexts.dll |
Windows XP以降 |
Kdexts.dll Uext.dll Ntsdexts.dll |
追加情報
ハンドルの詳細については、「 !htrace 拡張機能、Microsoft Windows SDK ドキュメント、および Microsoft Windows の内部機能 によるマーク・ルシノビッチとデビッド・。
解説
!handle 拡張子は、ユーザー モードおよびカーネル モードのライブ デバッグ中に使用できます。 この拡張子は、カーネル モード ダンプ ファイルでも使用できます。 ただし、ハンドル情報を使用して特別に作成した場合を除き、ユーザー モード ダンプ ファイルでこの拡張子を使用することはできません。 (このようなダンプ ファイルは、 .dump /mh (ダンプ ファイルの作成) コマンドを使用して作成できます コマンド。)
ライブ ユーザー モード デバッグ中に、 .closehandle (ハンドルを閉じる) コマンドを使用して 1 つ以上のハンドルを閉じることができます。
次の例は、 !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
...