Compartir a través de


!object

La extensión !object muestra información sobre un objeto del sistema.

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

Parámetros

Dirección
Si el primer argumento es un número hexadecimal distinto de cero, especifica la dirección hexadecimal del objeto del sistema que se va a mostrar.

Banderas
Especifica el nivel de detalle en la salida del comando.

Establezca Flags en un OR de bits de estos valores:

0x0
Muestra el tipo de objeto.

0x1
Muestra el tipo de objeto, el nombre de objeto y los recuentos de referencias.

0x8
Muestra el contenido de un directorio de objetos o el destino de un vínculo simbólico. Esta marca solo tiene efecto si también se establece 0x1.

0x10
Muestra los encabezados de objeto opcionales.

0x20
Muestra la ruta de acceso completa a un objeto con nombre. Esta marca solo tiene efecto si también se establece 0x1.

El parámetro Flags es opcional. El valor predeterminado es 0x9.

Ruta de acceso
Si el primer argumento comienza con una barra diagonal inversa (), !object la interpreta como un nombre de ruta de acceso de objeto. Si se utiliza esta opción, la pantalla se ordenará de acuerdo con la estructura de directorios utilizada por el Administrador de objetos.

Nombre
Si el primer argumento es cero, el segundo se interpreta como el nombre de una clase de objetos del sistema de la que mostrar todas las instancias.

-p
Muestra espacios de nombres de objetos privados.

{-h|-?}
Muestra ayuda sobre este comando.

Archivo DLL

Kdexts.dll

Ejemplos

En este ejemplo se pasa la ruta de acceso del directorio \Device a !object. La salida enumera todos los objetos del directorio \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

Elija uno de los objetos enumerados, por ejemplo, USBPDO-8. Pase la dirección de USBPDO-8 (ffffe0083b85d060) a !object. Establezca Flags en 0x0 para obtener información mínima.

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

Incluya información de recuento de nombres y referencias para el mismo objeto. Para ello, establezca Flags en 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

Obtenga información de encabezado opcional para el mismo objeto. Para ello, establezca Flags en 0x10.

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

En el ejemplo siguiente se llama a !object dos veces para un objeto de directorio. La primera vez, el contenido del directorio no se muestra porque la marca 0x8 no está establecida. La segunda vez, se muestra el contenido del directorio porque se establecen las marcas 0x8 y 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

En el ejemplo siguiente se llama a !object dos veces para un objeto SymbolicLink. La primera vez, el destino del vínculo simbólico no se muestra porque no se ha establecido la marca 0x8. La segunda vez, el destino del vínculo simbólico se reproduce porque las marcas 0x8 y 0x1 están establecidas (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'

Información adicional

Para obtener información sobre los objetos y el administrador de objetos, consulte la documentación del SDK de Microsoft Windows, del Kit para controladores de Microsoft Windows y de Microsoft Windows Internals, de Mark Russinovich y David Solomon.

Consulte también

Seguimiento de referencias de objetos

!obtrace

!handle

Determinar la ACL de un objeto

Comandos de extensión en modo kernel