!object
The !object extension displays information about a system object.
!object Address [Flags]
!object Path
!object 0 Name
!object -p
!object {-h|-?}
Parameters
Address
If the first argument is a nonzero hexadecimal number, it specifies the hexadecimal address of the system object to be displayed.
Flags
Specifies the level of detail in the command output.
Set Flags to a bitwise OR of these values:
0x0
Display object type.
0x1
Display object type, object name, and reference counts.
0x8
Display the contents of an object directory or the target of a symbolic link. This flag has an effect only if 0x1 is also set.
0x10
Display optional object headers.
0x20
Display the full path to a named object. This flag has an effect only if 0x1 is also set.
The Flags parameter is optional. The default value is 0x9.
Path
If the first argument begins with a backslash (), !object interprets it as an object path name. When this option is used, the display will be arranged according to the directory structure used by the Object Manager.
Name
If the first argument is zero, the second argument is interpreted as the name of a class of system objects for which to display all instances.
-p
Display private object name spaces.
{-h|-?}
Display help for this command.
DLL
Kdexts.dll
Examples
This example passes the path of the \Device directory to !object. The output lists all objects in the \Device directory.
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
Choose one of listed objects, say USBPDO-8. Pass the address of USBPDO-8 (ffffe0083b85d060) to !object. Set Flags to 0x0 to get minimal information.
0: kd> !object ffffe0083b85d060 0x0
Object: ffffe0083b85d060 Type: (ffffe0083b87df20) Device
ObjectHeader: ffffe0083b85d030 (new version)
Include name and reference count information for the same object by setting Flags to 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
Get optional header information for the same object by setting Flags to 0x10.
0: kd> !object ffffe0083b85d060 0x10
Object: ffffe0083b85d060 Type: (ffffe0083b87df20) Device
ObjectHeader: ffffe0083b85d030 (new version)
Optional Headers:
NameInfo(ffffe0083b85d010)
The following example calls !object twice for a Directory object. The first time, the contents of the directory are not displayed because the 0x8 flag is not set. The second time, the contents of the directory are displayed because both the 0x8 and 0x1 flags are set (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
The following example calls !object twice for a SymbolicLink object. The first time, the target of the symbolic link is not displayed because the 0x8 flag is not set. The second time, the target of the symbolic link is splayed because both the 0x8 and 0x1 flags are set (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'
Additional Information
For information about objects and the object manager, see the Microsoft Windows SDK documentation, the Windows Driver Kit (WDK) documentation, and Microsoft Windows Internals, by Mark Russinovich and David Solomon.