We have a lower disk filter driver that captures SRB info. Many of the task
mgt functions defines are never seen by this driver.
Of the SRB_FUNCTIONs that I'm interested in below I found the defines marked
with a star used by the LSI Mini port driver sample provided in the 7600.16385.1
version of the Win DDK.
* Abort Command SRB_FUNCTION_ABORT_COMMAND (0x10) *
* Reset Device SRB_FUNCTION_RESET_DEVICE (0x13) *
* Reset LUN SRB_FUNCTION_RESET_LOGICAL_UNIT (0x20) *
* Reset Bus SRB_FUNCTION_RESET_BUS (0x12) *
* Terminate Process SRB_FUNCTION_TERMINATE_IO (0x14) *
* IO Control SRB_FUNCTION_IO_CONTROL (0x02) *
Release Recovery SRB_FUNCTION_RELEASE_RECOVERY (0x11)
Receive Event SRB_FUNCTION_RECEIVE_EVENT (0x03)
Flush Cache SRB_FUNCTION_FLUSH (0x08)
Lock Queue SRB_FUNCTION_LOCK_QUEUE (0x18)
Unlock Queue SRB_FUNCTION_UNLOCK_QUEUE (0x19)
Dump Pointers SRB_FUNCTION_DUMP_POINTERS (0x26)
I found these in Disk.sys
* Reset Bus SRB_FUNCTION_RESET_BUS (0x12) *
* Flush Cache SRB_FUNCTION_FLUSH (0x08) *
* Shutdown SRB_FUNCTION_SHUTDOWN (0x07) *
Assuming the driver stack looks something like this:
Filesystem
PartMgr
Disk
My lower disk filter
Storport
Mini port driver
HW
So from what I can see, the stared SRB_FUNCTION defines above that
are defined in the minport driver code but not in the disk.sys are
valid but I will never see them. They are probably generated by the
storport.sys if at all. The defines in the Disk.sys I will see if
they are sent and the system isn't shutting down.
I figured I would ask the experts:
- If you could ever expect a lower filter disk driver to receive any of the SRB functions not listedin the disk.sys?
- Would there be any alternate routes to get this data without writing a minport driver?
- Is there any documentation that tells the user what layer of the disk device stack generates a specific SRB_FUNCTION_?
Thank you for your time
-john