!object
Die Erweiterung !object zeigt Informationen über ein Systemobjekt an.
!object Address [Flags]
!object Path
!object 0 Name
!object -p
!object {-h|-?}
Parameter
Adresse
Wenn das erste Argument eine Hexadezimalzahl ungleich Null ist, gibt es die hexadezimale Adresse des anzuzeigenden Systemobjekts an.
Flaggen
Gibt an, wie detailliert die Befehlsausgabe sein soll.
Setzen Sie Flags auf ein bitweises ODER dieser Werte:
0x0
Objekttyp anzeigen.
0x1
Anzeige von Objekttyp, Objektname und Anzahl der Verweise.
0x8
Zeigt den Inhalt eines Objektverzeichnisses oder das Ziel eines symbolischen Links an. Dieses Flag hat nur dann eine Wirkung, wenn 0x1 ebenfalls gesetzt ist.
0x10
Optionale Objektüberschriften anzeigen.
0x20
Anzeige des vollständigen Pfades zu einem benannten Objekt. Dieses Flag hat nur dann eine Wirkung, wenn 0x1 ebenfalls gesetzt ist.
Der Parameter Flags ist optional. Der Standardwert ist 0x9.
Pfad
Wenn das erste Argument mit einem Backslash () beginnt, wird es von !object als Objektpfadname interpretiert. Wenn diese Option verwendet wird, wird die Anzeige entsprechend der vom Objektmanager verwendeten Verzeichnisstruktur angeordnet.
Name
Ist das erste Argument gleich Null, wird das zweite Argument als Name einer Klasse von Systemobjekten interpretiert, für die alle Instanzen angezeigt werden sollen.
-p
Anzeige privater Objekt-Namespaces.
{-h|-?}
Hilfe zu diesem Befehl anzeigen.
DLL
Kdexts.dll
Beispiele
Dieses Beispiel übergibt den Pfad des \Device-Verzeichnisses an !object. Die Ausgabe listet alle Objekte im Verzeichnis \Device auf.
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
Wählen Sie eines der aufgelisteten Objekte, zum Beispiel USBPDO-8. Übergeben Sie die Adresse von USBPDO-8 (ffffe0083b85d060) an !object. Setzen Sie Flags auf 0x0, um minimale Informationen zu erhalten.
0: kd> !object ffffe0083b85d060 0x0
Object: ffffe0083b85d060 Type: (ffffe0083b87df20) Device
ObjectHeader: ffffe0083b85d030 (new version)
Fügen Sie Informationen über den Namen und die Anzahl der Verweise für dasselbe Objekt ein, indem Sie Flags auf 0x1 setzen.
0: kd> !object ffffe0083b85d060 0x1
Object: ffffe0083b85d060 Type: (ffffe0083b87df20) Device
ObjectHeader: ffffe0083b85d030 (new version)
HandleCount: 0 PointerCount: 6
Directory Object: ffffc00b074166a0 Name: USBPDO-8
Erhalten Sie optionale Header-Informationen für dasselbe Objekt, indem Sie Flags auf 0x10 setzen.
0: kd> !object ffffe0083b85d060 0x10
Object: ffffe0083b85d060 Type: (ffffe0083b87df20) Device
ObjectHeader: ffffe0083b85d030 (new version)
Optional Headers:
NameInfo(ffffe0083b85d010)
Das folgende Beispiel ruft !object zweimal für ein Verzeichnisobjekt auf. Beim ersten Mal wird der Inhalt des Verzeichnisses nicht angezeigt, da das Flag 0x8 nicht gesetzt ist. Beim zweiten Mal wird der Inhalt des Verzeichnisses angezeigt, da sowohl die Flags 0x8 als auch 0x1 gesetzt sind (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
Das folgende Beispiel ruft !object zweimal für ein SymbolicLink-Objekt auf. Beim ersten Mal wird das Ziel des symbolischen Links nicht angezeigt, weil das Flag 0x8 nicht gesetzt ist. Beim zweiten Mal wird das Ziel des symbolischen Links gespreizt, weil sowohl die 0x8- als auch die 0x1-Flags gesetzt sind (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'
Zusätzliche Informationen
Informationen über Objekte und den Objektmanager finden Sie in der Microsoft Windows SDK-Dokumentation, der Windows Driver Kit (WDK)-Dokumentation und Microsoft Windows Internals von Mark Russinovich und David Solomon.