!drvobj

The !drvobj extension displays detailed information about a DRIVER_OBJECT.

!drvobj DriverObject [Flags] 

Parameters

DriverObject
Specifies the driver object. This can be the hexadecimal address of the DRIVER_OBJECT structure or the name of the driver.

Flags
Can be any combination of the following bits. (The default is 0x01.)

Bit 0 (0x1)
Causes the display to include device objects owned by the driver.

Bit 1 (0x2)
Causes the display to include entry points for the driver's dispatch routines.

Bit 2 (0x4)
Lists with detailed information the device objects owned by the driver (requires bit 0 (0x1)).

DLL

Kdexts.dll

Additional Information

See Plug and Play Debugging for examples and applications of this extension command. For information about driver objects, see the Windows Driver Kit (WDK) documentation and Microsoft Windows Internals by Mark Russinovich and David Solomon.

Remarks

If DriverObject specifies the name of the device but supplies no prefix, the prefix "\Driver\" is assumed. Note that this command will check to see if DriverObject is a valid address or device name before using the expression evaluator.

If DriverObject is an address, it must be the address of the DRIVER_OBJECT structure. This can be obtained by examining the arguments passed to the driver's DriverEntry routine.

This extension command will display a list of all device objects created by a specified driver. It will also display all fast I/O routines registered with this driver object.

The following is an example for the Symbios Logic 810 SCSI miniport driver:

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

You can also use !devobj 809d50d0 to get information about the device object.