Partager via


!object

L'extension !object affiche des informations sur un objet système.

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

Paramètres

Adresse
Si le premier argument est un nombre hexadécimal non nul, le champ spécifie l’adresse hexadécimale de l’objet système à afficher.

Drapeaux
Spécifie le niveau de détail dans la sortie de la commande.

Définissez Flags sur une opération OR de ces valeurs :

0x0
Affiche le type d’objet.

0x1
Affiche le type d’objet, le nom de l’objet et les décomptes de références.

0x8
Affiche le contenu d’un répertoire d’objets ou de la cible d’un lien symbolique. Cet indicateur n'a un effet que si 0x1 est également défini.

0x10
Affiche les en-têtes d’objet facultatifs.

0x20
Affiche le chemin complet d’un objet nommé. Cet indicateur n'a un effet que si 0x1 est également défini.

Le paramètre Flags est facultatif. La valeur par défaut est 0x9.

Chemin
Si le premier argument commence par une barre oblique inverse (\), !object l’interprète comme un nom de chemin d’accès d’objet. Lorsque cette option est utilisée, l’affichage est organisé en fonction de la structure de répertoire utilisée par le Gestionnaire d’objets.

Nom
Si le premier argument est nul, le deuxième argument est interprété comme le nom d’une classe d’objets système pour laquelle afficher toutes les instances.

-p
Affiche les espaces de nom d’objet privé.

{-h|-?}
Afficher l’aide pour cette commande.

DLL

Kdexts.dll

Exemples

Cet exemple transmet le chemin d’accès du répertoire \Device à !object. La sortie répertorie tous les objets du répertoire \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

Choisissez l’un des objets répertoriés, par exemple USBPDO-8. Transmettez l’adresse de USBPDO-8 (ffffe0083b85d060) à !object. Définissez Flags sur 0x0 pour obtenir des informations minimales.

0: kd> !object ffffe0083b85d060 0x0
Object: ffffe0083b85d060  Type: (ffffe0083b87df20) Device
    ObjectHeader: ffffe0083b85d030 (new version)

Ajoutez les informations de nom et de nombre de références pour le même objet en définissant Flags sur 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

Obtenez des informations d’en-tête facultatives pour le même objet en définissant Flags sur 0x10.

0: kd> !object ffffe0083b85d060 0x10
Object: ffffe0083b85d060  Type: (ffffe0083b87df20) Device
    ObjectHeader: ffffe0083b85d030 (new version)
Optional Headers: 
    NameInfo(ffffe0083b85d010)

L’exemple suivant appelle !object deux fois pour un objet Directory. La première fois, le contenu du répertoire n’est pas affiché, car l’indicateur 0x8 n’est pas défini. La deuxième fois, le contenu du répertoire s’affiche, car les indicateurs 0x8 et 0x1 sont définis (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

L’exemple suivant appelle !object deux fois pour un objet SymbolicLink. La première fois, la cible du lien symbolique n’est pas affichée, car l’indicateur 0x8 n’est pas défini. La deuxième fois, la cible du lien symbolique est affichée, car les indicateurs 0x8 et 0x1 sont définis (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'

Informations supplémentaires

Pour plus d’informations concernant les objets et le gestionnaire d’objets, veuillez consulter la documentation du Kit de développement logiciel (SDK) de Microsoft Windows, la documentation du Kit de développement de pilotes Windows (WDK), et Windows Internals de Microsoft (Au cœur de Windows) de Mark Russinovich et David Solomon.

Voir aussi

Suivi de référence d’objet

!obtrace

!handle

Détermination de la liste de contrôle d’accès d’un objet

Commandes d’extension Kernel-Mode