次の方法で共有


!object

!object 拡張は、システムオブジェクトに関する情報を表示します。

!object Address [Flags] 
!object Path
!object 0 Name 
!object -p
!object {-h|-?}

パラメーター

住所
最初の引数が 0 ではない 16 進数の場合、表示するシステムオブジェクトの 16 進アドレスを指定する。

フラグ
コマンド出力の詳細レベルを指定する。

フラグをこれらの値のビットごとの OR に設定する:

0x0
オブジェクト・タイプを表示する。

0x1
オブジェクト・タイプ、オブジェクト名、および参照カウントを表示する。

0x8
オブジェクト・ディレクトリまたはシンボリック・リンクのターゲットの内容を表示する。 このフラグは、0x1 も設定されている場合にのみ有効である。

0x10
オプションのオブジェクト・ヘッダを表示する。

0x20
名前付きオブジェクトへのフル・パスを表示する。 このフラグは、0x1 も設定されている場合にのみ有効である。

Flags パラメータはオプションである。 デフォルト値は 0x9 である。

Path
最初の引数がバックスラッシュ()で始まる場合、!object はこれをオブジェクト・パス名として解釈します。 このオプションを使用すると、オブジェクト・マネージャが使用するディレクトリ構造に従って表示されます。

名前
最初の引数が 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著)を参照してください。

関連項目

Object Reference Tracing

!obtrace

!handle

オブジェクトの ACL の判別

カーネルモード拡張機能のコマンド