!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 内部资料。