Hi Guys,
I have written a WDM driver. I have planned to load that driver as a
- UPPER filter driver in one instance for USBSTOR.sys and
- As a lower filter driver in another instance for disk.sys.
The main aim of the driver is to track the memebers of the structure
SCSI_REQUEST_BLOCK, that are destined to usbstor.sys…
Well, when loadin the driver as the Lower filter driver for the
disk.sys it works perfectly and it spells out all the IRP’s that are
destined to usbstor.sys.
But the problem arises, when loading the driver as upper filter driver
for USBSTOR.sys… I have even tried to load this driver as a upper
filter driver for disk.sys. But in both the cases my filter driver
does not track the IRP’s that are destined for USBSTOR.sys.
When loading the driver as a upper filter driver for USBSTOR.sys, the
USB Flash drive is detected and and i’m able to read the contents of
the drive(transfer files etc) but i’m not able to capture the IRP’s.
When loading the driver as the upper filter driver for disk.sy, the
USB drive itself is not detected… and it does not show in My Computer
itself.
In both the cases(when loading as upper filter driver), when printing
the IRP’s, the last IRP i get is IRP_MN_QUERY_DEVICE_RELATIONS(bus
relations).
After that i cannot get anyother IRP’s, thru my filter driver…
Can any one please explain what might be the problem.
And one more issue. how much important is IOREGISTERDEVICEINTERFACE in
a filter driver.
OS:Windows XP.
Build used :2600
I have NOT handled any IRP’s in both the cases(ie when loading as
upper and lower filter driver). I have just passed the drivers down
the stack using IoCallDriver.
Any suggestions…
Thx,
Regards,
Naresh Kumar