Receiving IRPs in SCSI port filter driver

Hi all!

I have a problem receiving IRPs in my SCSI port filter driver from SCSI
CD-ROM class driver (cdrom.sys) on NT4.

I wrote simple filter driver which attaches its own device objects to
ScsiPort%d device objects. The filter monitors IRP_MJ_DEVICE_CONTROL and
IRP_MJ_INTERNAL_DEVICE_CONTROL. It shows SRBs perfectly well when any
application accesses a SCSI CD-ROM device through ASPI layer. At the same
time my filter does not receive IRPs (IRP_MJ_DEVICE_CONTROL and
IRP_MJ_INTERNAL_DEVICE_CONTROL) when an application reads files from a CD
via CDFS file system.

I thought the problem was in drivers’ load order (device objects of my
filter driver simply attached to device objects of cdrom.sys driver). I
claimed my filter driver as a belonging to the “filter” Group. The “filter”
Group loads after “SCSI CDROM class”. I changed the group for my filter
driver to “Primary disk” to be loaded just after “port” group. It does not
help much. I have looked at cdrom.sys driver. It uses SCSI2.sys library
which is loading before my filter driver. Could it cause the problem?

Thanks,
Alexander Sinitsyn