Поделиться через


!объект

Расширение !object отображает сведения о системном объекте.

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

Параметры

Адрес
Если первый аргумент является шестнадцатеричным числом ненулевого, он указывает шестнадцатеричный адрес отображаемого системного объекта.

Флаги
Указывает уровень детализации в выходных данных команды.

Задайте флаги битовой или из следующих значений:

0x0
Отображение типа объекта.

0x1
Отображение типа объекта, имени объекта и счетчиков ссылок.

0x8
Отображение содержимого каталога объекта или целевого объекта символьной ссылки. Этот флаг действует только в том случае, если 0x1 также задано.

0x10
Отображение необязательных заголовков объектов.

0x20
Отображение полного пути к именованном объекту. Этот флаг действует только в том случае, если 0x1 также задано.

Параметр Flags является необязательным. Значение по умолчанию — 0x9.

Путь
Если первый аргумент начинается с обратной косой черты (), !object интерпретирует его как имя пути объекта. Если этот параметр используется, отображение будет упорядочено в соответствии со структурой каталогов, используемой диспетчером объектов.

Имя
Если первый аргумент равен нулю, второй аргумент интерпретируется как имя класса системных объектов, для которых отображаются все экземпляры.

-p
Отображение пространств имен частных объектов.

{-h|-?}
Отображение справки по этой команде.

DLL-библиотеки

Kdexts.dll

Примеры

В этом примере передается путь к каталогу \Device в !object. Выходные данные перечисляют все объекты в каталоге \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

Выберите один из перечисленных объектов, например USBPDO-8. Передайте адрес USBPDO-8 (ffffe0083b85d060) в !object. Задайте флаги для 0x0 получения минимальной информации.

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

Включите сведения о имени и счетчике ссылок для одного объекта, задав флаги для 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

Получите необязательные сведения о заголовке для одного объекта, задав флаги для 0x10.

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

В следующем примере дважды вызывается !object для объекта Directory. При первом отображении содержимого каталога не отображается, так как флаг 0x8 не задан. Во второй раз содержимое каталога отображается, так как 0x8 и флаги 0x1 заданы (флаги = 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

В следующем примере дважды вызывается !object для объекта SymbolicLink. Первый раз целевой объект символьной ссылки не отображается, так как флаг 0x8 не задан. Во второй раз целевой объект символьной ссылки воспроизводится, так как заданы флаги 0x8 и 0x1 (Флаги = 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'

Дополнительная информация

Дополнительные сведения об объектах и диспетчере объектов см. в документации по пакету SDK для Microsoft Windows, документации по комплекту драйверов Windows (WDK) и внутренним службам Microsoft Windows, марку Руссиновичу и Дэвиду Соломону.

См. также

Трассировка ссылок на объекты

!obtrace

!ручка

Определение ACL объекта

Команды расширения в режиме ядра