Here is the problem ....
In our Win NT SCSI miniport driver asynchronous event reporting from the
hardware is implemented in the following way....
An upper level application (one and only one such app) interested in
reported by the SCSI miniport driver posts a custom IOCTL termed as an
"event IOCTL" to the miniport driver. The miniport receives this (SRB
function IO Control) and holds onto this "event IOCTL" until such a time
an event occurs - at which time appropriate event related data is sent
to the application by "completing" this (event IOCTL) SRB request. While
miniport driver is holding onto this "event IOCTL", other regular IOCTLs
be issued to the miniport driver by the same application. These are
The same miniport driver has been re-compiled with Win 2000 DDK and run
Win 2000 (Professional and Advanced Server). We observed that when the
has sent in the "event IOCTL" then follows it with a regular IOCTL, the
second IOCTL never seems to reach the miniport - so never gets complete
UNTIL an event occurs and the "event IOCTL" is completed. If we disable
issuing of this "event IOCTL" by the app then everything works fine.
Is this mechanism allowed. Can the miniport driver hold onto an IOCTL
with SRB function as IO control ) and still receive more IOCTLs - or is
there some upper layer (FSD, Disk Class Driver, SCSI Port Driver)
restriction that prevents multiple SRBs with function IO control being
to the miniport driver . This does not SEEM to be the case in Win NT
however, if we run NT Cluster Server on NT 4 - the same thing seems to