Re: BugCheck FE, {1, 0, 0, 0} , XP, WinDDK 6001.18002

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



try cutting down the size of the buffer and see if that works, let's say 1 MB chunks and if that still fails, try going down further...
d

--

This posting is provided "AS IS" with no warranties, and confers no rights.


<mikael.setterberg@xxxxxxxxx> wrote in message news:7b2ec8eb-f5fc-495d-97c2-7a297bde0257@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
On 8 Juni, 20:48, "Doron Holan [MSFT]"
<doron.ho...@xxxxxxxxxxxxxxxxxxxx> wrote:
how bug is the buffer? also, there are WDF API calls to help you compute
the timeout in a clearer way (WDF_REL_TIMEOUT_IN_MS/US/SEC)

d

--

This posting is provided "AS IS" with no warranties, and confers no rights.

"Mikael Setterberg" <setterb...@xxxxxxxxxxx> wrote in message

news:elNlkrD6JHA.1712@xxxxxxxxxxxxxxxxxxxxxxx



> Hi,
> it seems I have managed to stumble across a bug in usbport. I am
> developing a driver for a USB-device that works fine under normal
> conditions.
> As I was stress testing it today it started causing BSODs which seems > to
> lead me to usbport.

> This is the code that fails:
> WDF_MEMORY_DESCRIPTOR_INIT_HANDLE(&writeBufferDescriptor, > wdfwriteBuffer,
> NULL);
> WDF_REQUEST_SEND_OPTIONS_INIT(&writeOptions,
> WDF_REQUEST_SEND_OPTION_SYNCHRONOUS | WDF_REQUEST_SEND_OPTION_TIMEOUT);
> writeOptions.Timeout = -20000000;
> status = WdfUsbTargetPipeWriteSynchronously(pipe, NULL, &writeOptions,
> &writeBufferDescriptor, n);

> All the calls prior to this statement seem to be successful (return > values
> are always checked). The write size is 16MB and I have reproduced it on
> two different computers.
> OS: XP, WinDDK 6001.18002

> BUGCODE_USB_DRIVER (fe)
> USB Driver bugcheck, first parameter is USB bugcheck code.
> Arguments:
> Arg1: 00000001, INTERNAL_ERROR An internal error has occured in the USB
> stack
> Arg2: 00000000
> Arg3: 00000000
> Arg4: 00000000

> STACK_TEXT:
> b6f790f0 804f8e09 00000003 b6f7944c 00000000
> nt!RtlpBreakWithStatusInstruction
> b6f7913c 804f99f4 00000003 00400000 00000200 > nt!KiBugCheckDebugBreak+0x19
> b6f7951c 804f9f43 000000fe 00000001 00000000 nt!KeBugCheck2+0x574
> b6f7953c b94d4ec4 000000fe 00000001 00000000 nt!KeBugCheckEx+0x1b
> b6f79584 b94d514f 89345028 893e5008 87e02000
> USBPORT!USBPORT_SplitBulkInterruptTransfer+0x52
> b6f795a4 b94dc3be 89345028 893e5008 87e02000
> USBPORT!USBPORT_SplitTransfer+0x67
> b6f79620 806e96e8 89345028 00000000 00000000
> USBPORT!USBPORT_MapTransfer+0x66a
> b6f7964c 804eeef2 893aa908 8934505c 00001001
> hal!HalAllocateAdapterChannel+0x126
> b6f79664 b94dc6df 893aa908 89345028 00001001
> nt!IoAllocateAdapterChannel+0x2a
> b6f796a8 b94dd4d9 89345028 89140400 80546acc
> USBPORT!USBPORT_FlushMapTransferList+0x1b1
> b6f79704 b94de3c6 003e5008 ffffffff 80546acc
> USBPORT!USBPORT_FlushPendingList+0x5b1
> b6f79734 b94e5350 89258ea8 b6f7976c b94e4f14
> USBPORT!USBPORT_QueueTransferUrb+0x248
> b6f79740 b94e4f14 89345028 89140400 b6f79994
> USBPORT!USBPORT_AsyncTransfer+0x30
> b6f7976c b94ea088 891252a8 89345028 00000090
> USBPORT!USBPORT_ProcessURB+0x3f4
> b6f7978c b94d33d2 891252a8 89140400 89140400
> USBPORT!USBPORT_PdoInternalDeviceControlIrp+0x7e
> b6f797b0 804ef19f 89140494 89125400 b6f79994
> USBPORT!USBPORT_Dispatch+0x148
> b6f797c0 b74b059c b6f797e8 b74b482d 89140400 nt!IopfCallDriver+0x31
> b6f797c8 b74b482d 89140400 891252a8 89140400 usbhub!USBH_PassIrp+0x18
> b6f797e8 b74b50ae 89081d50 89140400 af8249f4 > usbhub!USBH_PdoUrbFilter+0xbd
> b6f79804 b74b25e4 b6f79994 89140400 b6f7986c > usbhub!USBH_PdoDispatch+0x202
> b6f79814 804ef19f 891f28a0 89140400 b6f79888 > usbhub!USBH_HubDispatch+0x48
> b6f79824 af7cb227 b6f79a94 af824c18 b6f799f8 nt!IopfCallDriver+0x31
> b6f7986c af7d24dd 01f79888 b6f79a94 00000000
> wdf01000!FxIoTarget::SubmitSync+0x1f2
> b6f799f8 af7cc1db 891a9740 76dc2fb0 00000000
> wdf01000!FxUsbPipe::_SendTransfer+0x341
> b6f79a24 babd95f6 891a97f8 76dc2fb0 00000000
> wdf01000!imp_WdfUsbTargetPipeWriteSynchronously+0x73
> b6f79a44 babddc5e 76dc2fb0 00000000 b6f79a94
> theDriver!WdfUsbTargetPipeWriteSynchronously+0x26
> [c:\winddk\6001.18002\inc\wdf\kmdf\1.7\wdfusb.h @ 1653]

> <removed a few lines here>

> STACK_COMMAND: kb
> FOLLOWUP_IP:
> theDriver!WdfUsbTargetPipeWriteSynchronously+26
> [c:\winddk\6001.18002\inc\wdf\kmdf\1.7\wdfusb.h @ 1653]
> babd95f6 5d pop ebp
> FAULTING_SOURCE_CODE:
> 1649: PULONG BytesWritten
> 1650: )
> 1651: {
> 1652: return ((PFN_WDFUSBTARGETPIPEWRITESYNCHRONOUSLY)
> WdfFunctions[WdfUsbTargetPipeWriteSynchronouslyTableIndex])(WdfDriverGlobals,
> Pipe, Request, RequestOptions, MemoryDescriptor, BytesWritten);
> > 1653: }
> 1654:
> 1655: //
> 1656: // WDF Function: WdfUsbTargetPipeFormatRequestForWrite
> 1657: //
> 1658: typedef

> SYMBOL_STACK_INDEX: 19
> SYMBOL_NAME: theDriver!WdfUsbTargetPipeWriteSynchronously+26
> FOLLOWUP_NAME: MachineOwner
> MODULE_NAME: theDriver
> IMAGE_NAME: theDriver.sys
> DEBUG_FLR_IMAGE_TIMESTAMP: 4a2cea2b
> FAILURE_BUCKET_ID: > 0xFE_theDriver!WdfUsbTargetPipeWriteSynchronously+26
> BUCKET_ID: 0xFE_theDriver!WdfUsbTargetPipeWriteSynchronously+26

> I guess the work around will be to go back to using smaller buffers, > but
> it would be interesting to know why this happens (am I doing something
> wrong?). It is very reproducible. Is there a way
> to submit errors like these to Microsoft? (maybe the better question > is:
> would they be interested in it?)

> Thanks,

> Mikael

The buffer is 16MB.

Mikael

.



Relevant Pages

  • Re: USBPORT/USBEHCI fails read_bulk URB
    ... a buffer of 512 bytes. ... Let me try to rephrase what you say in plain USB terms. ... If the 32-byte request is scheduled for the end of the frame, ...
    (microsoft.public.development.device.drivers)
  • Re: Windows7 send wrong USB data payload after wake from sleep mod
    ... and buffer print in completion routine: ... example driver send hundred data packets in length approx. ... devices communicate concurrently. ... USB driver is based on WDM ...
    (microsoft.public.development.device.drivers)
  • Re: High USB throughput requirement
    ... high-speed ADC and send it to USB very quickly. ... Why so much memory? ... If a 1MB buffer sounds good, ...
    (comp.arch.embedded)
  • Re: USB data Transfer question
    ... I'm afraid you can't pass 1-byte length buffer ... the pBuffer!=0 if there is data sending from client. ... and both USB analizer and the pBuffer value is the ... and the write function which write data from USB host to client works ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Achieving practically possible maximum speed for USB2.0
    ... comparable to the actual data rate that can be practically achieved. ... ISP1582 USB Peripheral Controller Configuration is as follows: ... duplicating it in some Tx buffer in the internal memory of processor. ... properties) of each USB Host Controller, I found in Advanced tab option ...
    (comp.arch.embedded)