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