!object
!object 拡張は、システムオブジェクトに関する情報を表示します。
!object Address [Flags]
!object Path
!object 0 Name
!object -p
!object {-h|-?}
パラメーター
Address
最初の引数が 0 ではない 16 進数の場合、表示するシステムオブジェクトの 16 進アドレスを指定する。
Flags
コマンド出力の詳細レベルを指定する。
フラグをこれらの値のビットごとの OR に設定する:
0x0
オブジェクト・タイプを表示する。
0x1
オブジェクト・タイプ、オブジェクト名、および参照カウントを表示する。
0x8
オブジェクト・ディレクトリまたはシンボリック・リンクのターゲットの内容を表示する。 このフラグは、0x1 も設定されている場合にのみ有効である。
0x10
オプションのオブジェクト・ヘッダを表示する。
0x20
名前付きオブジェクトへのフル・パスを表示する。 このフラグは、0x1 も設定されている場合にのみ有効である。
Flags パラメータはオプションである。 デフォルト値は 0x9 である。
パス
最初の引数がバックスラッシュ()で始まる場合、!object はこれをオブジェクト・パス名として解釈します。 このオプションを使用すると、オブジェクト・マネージャが使用するディレクトリ構造に従って表示されます。
Name
最初の引数が 0 の場合、2 番目の引数は、すべてのインスタンスを表示するシステム・オブジェクトのクラス名として解釈されます。
-p
プライベート・オブジェクトの名前空間を表示する。
{-h|-?}
このコマンドのヘルプを表示します。
DLL
Kdexts.dll
例
この例では、"!object "に "Device "ディレクトリのパスを渡しています。 Deviceディレクトリにある全てのオブジェクトが出力されます。
0: kd> !object \Device
Object: ffffc00b074166a0 Type: (ffffe0083b768690) Directory
ObjectHeader: ffffc00b07416670 (new version)
HandleCount: 0 PointerCount: 224
Directory Object: ffffc00b074092e0 Name: Device
Hash Address Type Name
---- ------- ---- ----
00 ffffe0083e6a61f0 Device 00000044
ffffe0083dcc4050 Device 00000030
ffffe0083d34f050 Device NDMP2
ffffe0083bdf7060 Device NTPNP_PCI0002
...
ffffe0083b85d060 Device USBPDO-8
ffffe0083d33d050 Device USBFDO-6
...
ffffe0083bdf0060 Device NTPNP_PCI0001
リストされたオブジェクトの中から1つ、例えばUSBPDO-8を選択してください。 !objectにUSBPDO-8のアドレス(fffe0083b85d060)を渡します。 最小限の情報を得るには、Flagsを0x0に設定する。
0: kd> !object ffffe0083b85d060 0x0
Object: ffffe0083b85d060 Type: (ffffe0083b87df20) Device
ObjectHeader: ffffe0083b85d030 (new version)
Flagsを0x1に設定して、同じオブジェクトの名前と参照カウント情報を含めます。
0: kd> !object ffffe0083b85d060 0x1
Object: ffffe0083b85d060 Type: (ffffe0083b87df20) Device
ObjectHeader: ffffe0083b85d030 (new version)
HandleCount: 0 PointerCount: 6
Directory Object: ffffc00b074166a0 Name: USBPDO-8
Flagsを0x10に設定して、同じオブジェクトのオプションのヘッダー情報を取得する。
0: kd> !object ffffe0083b85d060 0x10
Object: ffffe0083b85d060 Type: (ffffe0083b87df20) Device
ObjectHeader: ffffe0083b85d030 (new version)
Optional Headers:
NameInfo(ffffe0083b85d010)
以下の例では、Directoryオブジェクトに対して!objectを2回呼び出しています。 1回目は、0x8フラグが設定されていないため、ディレクトリの内容は表示されません。 2回目は、0x8フラグと0x1フラグの両方が設定されているので、ディレクトリの内容が表示される(Flags = 0x9)。
0: kd> !object ffffc00b07481d00 0x1
Object: ffffc00b07481d00 Type: (ffffe0083b768690) Directory
ObjectHeader: ffffc00b07481cd0 (new version)
HandleCount: 0 PointerCount: 3
Directory Object: ffffc00b07481eb0 Name: Filters
0: kd> !object ffffc00b07481d00 0x9
Object: ffffc00b07481d00 Type: (ffffe0083b768690) Directory
ObjectHeader: ffffc00b07481cd0 (new version)
HandleCount: 0 PointerCount: 3
Directory Object: ffffc00b07481eb0 Name: Filters
Hash Address Type Name
---- ------- ---- ----
19 ffffe0083c5f56e0 Device FltMgrMsg
21 ffffe0083c5f5060 Device FltMgr
次の例では、シンボリックリンク・オブジェクトに対して!objectを2回呼び出しています。 1回目は、0x8フラグが設定されていないため、シンボリックリンクのターゲットは表示されません。 2回目は、0x8フラグと0x1フラグの両方が設定されているため、シンボリックリンクのターゲットが表示されます(Flags = 0x9)。
0: kd> !object ffffc00b07628fb0 0x1
Object: ffffc00b07628fb0 Type: (ffffe0083b769450) SymbolicLink
ObjectHeader: ffffc00b07628f80 (new version)
HandleCount: 0 PointerCount: 1
Directory Object: ffffc00b074166a0 Name: Ip6
0: kd> !object ffffc00b07628fb0 0x9
Object: ffffc00b07628fb0 Type: (ffffe0083b769450) SymbolicLink
ObjectHeader: ffffc00b07628f80 (new version)
HandleCount: 0 PointerCount: 1
Directory Object: ffffc00b074166a0 Name: Ip6
Target String is '\Device\Tdx'
追加情報
オブジェクトとオブジェクト・マネージャについては、Microsoft Windows SDKのドキュメント、Windows Driver Kit (WDK)のドキュメント、Microsoft Windows Internals (Mark Russinovich and David Solomon著)を参照してください。