!ks.dump
The !ks.dump extension displays the specified object.
!ks.dump Object [Level] [Flags]
Parameters
Object
Specifies a pointer to an AVStream structure, an AVStream class object, or a PortCls object. Can also specify a pointer to an IRP or a file object.
Level
Optional. Specifies the level of detail to display on a 0-7 scale with progressively more information displayed for higher values. To display all available details, supply a value of 7. You can see more information about levels by issuing a !ks.dump command with no arguments.
Flags
Optional. Specifies the kind of information to be displayed. Flags can be any combination of the following bits.
Bit 0 (0x1)
Display all queued IRPs.
Bit 1 (0x2)
Display all pending IRPs.
Bit 2 (0x4)
Analyze a stalled graph for suspects.
Bit 3 (0x8)
Show all pin states.
DLL
Windows 2000 |
winxp\Ks.dll |
Windows XP and later |
Ks.dll |
Additional Information
For more information, see Kernel Streaming Debugging.
Remarks
The !ks.dump command recognizes most AVStream objects, including pins, filters, factories, devices, pipes, and stream pointers. This command also recognizes some stream class structures, including stream objects, filter instances, device extensions, and SRBs.
Following is an example of the !ks.dump display for a filter:
kd> !dump 829493c4
Filter object 829493c4 [CKsFilter = 82949350]
Descriptor f7a233c8:
Context 829dce28
Following is an example of the !ks.dump display for a pin:
kd> !dump 8160DDE0 7
Pin object 8160DDE0 [CKsPin = 8160DD50]
DeviceState KSSTATE_RUN
ClientState KSSTATE_RUN
ResetState KSRESET_END
CKsPin object 8160DD50 [KSPIN = 8160DDE0]
State KSSTATE_RUN
Processing Mutex 8160DFD0 is not held
And Gate & 8160DF88
And Gate Count 1
Some important parts of this display are included in the following table.
Parameter |
Meaning |
DeviceState |
The state that the pin was requested to enter. If different from ClientState, this is the state that the minidriver will transition to next. |
ClientState |
The state that the minidriver is actually in. This reflects the state of the pipe. |
ResetState |
Indicates whether or not the object is in the middle of a flush. KSRESET_BEGIN indicates a flush. KSRESET_END indicates no flush. |
State |
The internal state of the pin's transport to non-AVStream filters. |
Following is an example of the !ks.dump display for a stream class driver:
kd> !dump 81a0a170 7
Device Extension 81a0a228:
Device Object 81a0a170 [\Driver\TESTCAP]
Next Device Object 81bd56d8 [\Driver\PnpManager]
Physical Device Object 81bd56d8 [\Driver\PnpManager]
REGISTRY FLAGS:
Page out driver when closed
No suspend if running
MINIDRIVER Data:
Device Extension 81a0a44c
Interrupt Routine 00000000
Synchronize Routine STREAM!StreamClassSynchronizeExecution
Receive Device SRB testcap!AdapterReceivePacket
Cancel Packet testcap!AdapterCancelPacket
Timeout Packet testcap!AdapterTimeoutPacket
Size (d / r / s / f) 1a0(416), 14(20), 978(2424), 0(0)
Sync Mode Driver Synchronizes
Filter Type 0:
Symbolic Links:
Information Paged Out
Instances:
816b7bd8
Note that the sizes are listed both in hexadecimal numbers, and then, parenthetically in the decimal equivalent. The Size abbreviations in this display are listed in the following table.
Size |
Explanation |
d |
Device |
r |
Request |
s |
Stream |
f |
Filter. If the filter size is 0, the filter is single instance. If it is greater than 0, it is multi-instance. |