HI,
MYusb function driver starts an i/o operation only after the earler one
has completed i.e. the USBD has only one IRP pending at any time. Do I need
to support IRP cancellation for this scenario.
What I would like to know what happens if the user yanks out the usb device
while the IRP is being procesed by the bus driver. The active IRP gets
completed with an error status or the IRP remains pending. Does my device
object get deleted? I guess no because it still has one reference to it?
What happns if the user yanks out the device and puts it back again in a
matter of few seconds. What I sometimes see that I now have two device
objects which is something I don't want as I support only one device at a
time. What should I do to avoid have two device objects. Does cancelling
IRPs when surprise removal happens helps to solve this problem.
Please guide me to any KB article on the behavior of USBD upon surprise
removal and and an IRP active at the same time. I tried to find an exact
answer but couldn't get it in DDK.
Regds.
Nitin