Debugging Tools for Windows

!object

!object扩展显示某个系统对象。

语法

!object Address 
!object 0 Name 
!object Path 
!object -r 

参数

Address
如果第一个参数是非0的16进制数字,则指定要显示信息的系统对象的16进制地址。
Name
如果第一个参数为0,则第二个参数是要显示所有实例的系统对象类型的名字。
Path
如果第一个参数以反斜线开头(\) !object将它当作一个对象路径的名字(object path name)。使用该选项时,会根据对象管理器(Object Manager)的目录结构来进行显示。
 

-r
使得被缓存的全局变量的值被刷新。

DLL

Windows 2000 Kdextx86.dll
Windows XP和之后 Kdexts.dll

注释

!object扩展会缓存一些值能够被改变的特定的全局变量。如果使用的内核符号已经过期,可以使用!object –r来刷新缓存的值。

下面的例子用!handle扩展来获得对象指针:

kd> !handle
processor number 0
PROCESS 80a02920  Cid: 0002    Peb: 00000000  ParentCid: 0000
    DirBase: 0006c805  ObjectTable: 80a03788  TableSize:  54.
    Image: System
006c: Object: 80967768  GrantedAccess: 00100003
Object: 80967768  Type: (809d5c20) File
    ObjectHeader: 80967750
        HandleCount: 1  PointerCount: 1
        Directory Object: 00000000  Name: \WINNT\system32\config\software {Partition1}

kd> !object 80967768
Object: 80967768  Type: (809d5c20) File
    ObjectHeader: 80967750
    HandleCount: 1  PointerCount: 1
    Directory Object: 00000000  Name: \WINNT\system32\config\software {Partition1}

附加信息

关于对象和对象管理器的信息,查看Microsoft Windows SDK文档、Windows Driver Kit (WDK)文档、以及Mark Russinovich 和David Solomon 编写的Microsoft Windows Internals

Build machine: CAPEBUILD