Compartilhar via


!object

A extensão !object exibe informações sobre um objeto do sistema.

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

Parâmetros

Endereço
Se o primeiro argumento for um número hexadecimal que não seja zero, ele especificará o endereço hexadecimal do objeto do sistema que será exibido.

Sinalizadores
Especifica o nível de detalhes na saída do comando.

Defina os Sinalizadores como um OR bit a bit destes valores:

0x0
Exibir tipo de objeto.

0x1
Exibir tipo de objeto, nome do objeto e contagens de referência.

0x8
Exibir o conteúdo de um diretório de objetos ou o destino de um link simbólico. Esse sinalizador tem efeito apenas se 0x1 estiver definido também.

0x10
Exibir cabeçalhos de objetos opcionais.

0x20
Exibir o caminho completo para um objeto nomeado. Esse sinalizador tem efeito apenas se 0x1 estiver definido também.

O parâmetro Sinalizadores é opcional. O valor padrão é 0x9.

Caminho
Se o primeiro argumento começar com uma barra invertida (), !object o interpretará como um nome de caminho de objeto. Quando essa opção for usada, a exibição será organizada de acordo com a estrutura de diretórios usada pelo Gerenciador de Objetos.

Nome
Se o primeiro argumento for zero, o segundo argumento será interpretado como o nome de uma classe de objetos do sistema para os quais todas as instâncias são exibidas.

-p
Exibir espaços de nomes de objetos privados.

{-h|-?}
Exibir ajuda para este comando.

DLL

Kdexts.dll

Exemplos

Este exemplo transmite o caminho do diretório \Device para !object. A saída lista todos os objetos no diretório \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

Escolha um dos objetos listados, por exemplo, USBPDO-8. Transmita o endereço de USBPDO-8 (ffffe0083b85d060) para !object. Defina Sinalizadores como 0x0 para obter algumas informações.

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

Inclua informações de nome e contagem de referência para o mesmo objeto definindo os Sinalizadores como 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

Obtenha informações de cabeçalho opcionais para o mesmo objeto definindo os Sinalizadores como 0x10.

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

O seguinte exemplo chama !object duas vezes para um objeto do directory. Na primeira vez, o conteúdo do diretório não é exibido porque o sinalizador 0x8 não está definido. Na segunda vez, o conteúdo do diretório é exibido porque os sinalizadores 0x8 e 0x1 são definidos (Sinalizadores = 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

O seguinte exemplo chama !object duas vezes para um objeto SymbolicLink. Na primeira vez, o destino do link simbólico não é exibido porque o sinalizador 0x8 não está definido. Na segunda vez, o destino do link simbólico é exibido porque os sinalizadores 0x8 e 0x1 são definidos (Sinalizadores = 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'

Informações Adicionais

Para informações sobre objetos e o gerenciador de objetos, confira a documentação do SDK do Microsoft Windows, a documentação do Kit de Driver do Windows (WDK) e o livro Microsoft Windows Internals, de Mark Russinovich e David Solomon.

Confira também

Rastreamento de referência do objeto

!obtrace

!handle

Determinar a ACL de um objeto

Comandos de extensão do modo kernel