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

Re: IRP_URB_DOUBLE_SUBMIT problem by Doron

Doron
Mon Feb 04 14:54:23 CST 2008

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.


"Abhijit Mmirajkar" <abhijit.mirajkar@gmail.com> wrote in message
news:1e16aaca-b181-465b-a771-ea1c0cbf71e8@v67g2000hse.googlegroups.com...
> 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


Re: IRP_URB_DOUBLE_SUBMIT problem by Vetzak

Vetzak
Fri Feb 08 03:21:26 CST 2008

On Feb 4, 12:57 pm, Abhijit Mmirajkar <abhijit.miraj...@gmail.com>
wrote:
> 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.