!object

Die Erweiterung !object zeigt Informationen über ein Systemobjekt an.

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

Parameters

Address
Wenn das erste Argument eine Hexadezimalzahl ungleich Null ist, gibt es die hexadezimale Adresse des anzuzeigenden Systemobjekts an.

Flags
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.

Path
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.

Weitere Informationen

Object Reference Tracing

!obtrace

!handle

Bestimmung der ACL eines Objekts

Kernelmodus-Erweiterungsbefehle