Hello.
When I am processing IRP_MN_START_DEVICE after having waited for the IRP
to come back up the stack, I proceed to configure my firewire device.
This requires me to allocate an address range for asynchronous write
notifications, and I use the FIFO option. Now I have to be notified and
respond to writes to my address space from my device as part of
configuring the device. However, I notice that no matter what I do I
never receive write notifications so long as I am still in my
IRP_MN_START_DEVICE dispatch routine. This was never an issue under
Vista or XP. The result is that my device goes crazy and retries as it
never receives a response from the host after having written to its
address space which I had previously allocated.
I do not believe that I am blocking my handler from receiving
asynchronous write notifications, so for now the obvious conclusion is
that the new firewire stack does not *seem* to allow for asynchronous
write notifications to be received and processed by the third party
device driver so long as its IRP_MN_START_DEVICE is outstanding. Could
someone confirm this, or comment on my procedure as I have outlined it?
Any feedback would be welcome. Of course I can work around this, but
first I want to confirm the nature of the problem. Honestly, I thought
that I/O with my device is permitted in this dispatch routine after the
IRP comes back up the stack again to my level.
thank you,
Philip Lukidis