Discussion:
IRP_URB_DOUBLE_SUBMIT problem
(too old to reply)
Abhijit Mmirajkar
2008-02-04 11:57:47 UTC
Permalink
Hi,

I am getting a crash in my driver in long hour tests. Every time the
bugcheck (0xFE) identifies the problem as IRP_URB_DOUBLE_SUBMIT.
The documentation of this says : The caller has submitted an irp that
is already pending in the USB bus driver.

However nowhere in my driver I am re-using an IRP ! Every time I
allocate an IRP and destroy it in the completion. I assume that
IoAllocateIrp will every time give me a fresh IRP and so same IRP will
never be submitted to USB subsystem. I am therefore perplexed why it
would happen so.
Is it that the bugcheck can also occur for some other case than irp
resubmitting?

I also observe that when I try to get the details of the IRP in
question, I get "Could not read device object or _DEVICE_OBJECT not
found" message for the device object associated with the IRP.

Any pointers will be great appreciated.

Thanks and Regards,
Abhijit
Doron Holan [MSFT]
2008-02-04 20:54:23 UTC
Permalink
this can also apply to the URB associated with the IRP. are you allocating
a URB for each IRP that you send? or are you using a URB embedded in your
device extension?

d
--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.
Post by Abhijit Mmirajkar
Hi,
I am getting a crash in my driver in long hour tests. Every time the
bugcheck (0xFE) identifies the problem as IRP_URB_DOUBLE_SUBMIT.
The documentation of this says : The caller has submitted an irp that
is already pending in the USB bus driver.
However nowhere in my driver I am re-using an IRP ! Every time I
allocate an IRP and destroy it in the completion. I assume that
IoAllocateIrp will every time give me a fresh IRP and so same IRP will
never be submitted to USB subsystem. I am therefore perplexed why it
would happen so.
Is it that the bugcheck can also occur for some other case than irp
resubmitting?
I also observe that when I try to get the details of the IRP in
question, I get "Could not read device object or _DEVICE_OBJECT not
found" message for the device object associated with the IRP.
Any pointers will be great appreciated.
Thanks and Regards,
Abhijit
Vetzak
2008-02-08 09:21:26 UTC
Permalink
Post by Abhijit Mmirajkar
Hi,
I am getting a crash in my driver in long hour tests. Every time the
bugcheck (0xFE) identifies the problem as IRP_URB_DOUBLE_SUBMIT.
The documentation of this says : The caller has submitted an irp that
is already pending in the USB bus driver.
However nowhere in my driver I am re-using an IRP ! Every time I
allocate an IRP and destroy it in the completion. I assume that
IoAllocateIrp will every time give me a fresh IRP and so same IRP will
never be submitted to USB subsystem. I am therefore perplexed why it
would happen so.
Is it that the bugcheck can also occur for some other case than irp
resubmitting?
I also observe that when I try to get the details of the IRP in
question, I get "Could not read device object or _DEVICE_OBJECT not
found" message for the device object associated with the IRP.
Any pointers will be great appreciated.
Thanks and Regards,
Abhijit
I had the same a while ago. I allocated the IRP while I reused the
associated URB. The underlying USBD couldn't cope with this during
endurance testing. In the end, I reused the IRP as well and that
solved the problem.
j***@gmail.com
2019-02-20 09:07:39 UTC
Permalink
How to allocate the IRP and reuse YRB, Can you please explian ?
Thanks

Loading...