Debugging Tools for Windows

!drvobj

!drvobj 扩展命令显示DRIVER_OBJECT 的详细信息。

语法

!drvobj DriverObject [Flags

参数

DriverObject
指定驱动对象。可以是DRIVER_OBJECT的16进制地址或者驱动的名字。
Flags
(Windows 2000和之后) 可以是下面这些位的任意组合。(默认为0x01。)
Bit 0 (0x1)
显示驱动拥有的设备对象。
Bit 1 (0x2)
显示驱动的dispatch例程的入口点。
Bit 2 (0x4)
显示驱动的设备对象的详细信息(需要设置bit 0)。

DLL

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

注释

如果DriverObject指定设备名,但是没有带前缀,则假定使用\Driver\前缀。注意该命令在使用表达式求值器会检查DriverObject是否是合法地址或者设备名。

如果DriverObject是一个地址,它必须是DRIVER_OBJECT结构的地址。这可以通过检查传递给DriverEntry函数的参数得到。

该扩展命令会显示指定的驱动程序创建的所有设备对象的立标。还会显示该驱动对象注册的所有fast I/O例程。

下面是一个Symbios Logic 810 SCSI 小端口驱动程序的例子:

kd> bp DriverEntry          //  breakpoint at DriverEntry

kd> g
symc810!DriverEntry+0x40:    
80006a20: b07e0050 stl     t2,50(sp)

kd> r a0        //address of DevObj (the first parameter)
a0=809d5550

kd> !drvobj 809d5550      //  display the driver object
Driver object is for:
\Driver\symc810
Device Object list:
809d50d0

还可以使用!devobj 809d50d0来获得设备对象的信息。

附加信息

查看Plug and Play调试获得该扩展命令的应用。关于驱动对象的信息,查看Windows Driver Kit (WDK)文档,以及Mark Russinovich 和David Solomon 编写的Microsoft Windows Internal

Build machine: CAPEBUILD