!object

!object 扩展显示有关系统对象的信息。

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

参数

地址
如果第一个参数是非零十六进制数字,则指定要显示的系统对象的十六进制地址。

标志
指定命令输出中的详细信息级别。

Flags 设置为以下值的按位 OR:

0x0
显示对象类型。

0x1
显示对象类型、对象名称和引用计数。

0x8
显示对象目录的内容或符号链接的目标。 仅当同时设置 0x1 时,此标志才有效。

0x10
显示可选对象标头。

0x20
显示命名对象的完整路径。 仅当同时设置 0x1 时,此标志才有效。

Flags 参数是可选的。 默认值为 0x9。

路径
如果第一个参数以反斜杠 () 开头,!object 会将其解释为对象路径名称。 使用此选项时,将根据对象管理器使用的目录结构排列显示。

名字
如果第一个参数为零,则第二个参数将被解释为要显示其所有实例的系统对象类的名称。

-p
显示专用对象名称空间。

{-h|-?}
显示此命令的帮助。

DLL

Kdexts.dll

示例

此示例将 \Device 目录的路径传递给 !object。 输出列出 \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

选择列出的对象之一,例如 USBPDO-8。 将 USBPDO-8(ffffe0083b85d060)的地址传递给 !object。 将 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 两次。 第一次,由于未设置 0x8 标志,因此不显示目录的内容。 第二次,显示目录的内容,因为同时设置了 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

以下示例为 SymbolicLink 对象调用 !object 两次。 第一次,由于未设置 0x8 标志,因此不显示符号链接的目标。 第二次,由于设置了 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 驱动程序工具包 (WDK) 文档以及 Mark Russinovich 和 David Solomon 编写的Microsoft Windows 内部资料

另请参阅

对象引用跟踪

!obtrace

!handle

确定对象的 ACL

内核模式扩展命令