WinUsb_Initialize returns with ERROR_INSUFFICIENT_BUFFER

I’ve got a problem with WinUsb_Initialize using a specific piece of hardware.

I can connet to another piece of hardware (hw2), but to the hardware in question (hw1), I get the error: ERROR_INSUFFICIENT_BUFFER.

I’ve tried putting a USB-analyser on the connection, but there is no communication when WinUsb_Initialize is called.
There is only one differences in the device managed between hw1 and hw2 apart from the id’s: The working device supports ‘wake from D3’ or wake from ‘off’, where the non-working does not.

I stepped into the call to WinUsb_Initialize, and it seems to be a result of an error in a call to DeviceIoControl with the ctl code:
CTL_CODE( 848, 26, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS )
I cannot find this device nor the function code any where, so I’m guessing it’s an internal call.

I’m running under Windows XP with WinUsb installed with the co-installer.
My code is in a managed+unmanaged C++ DLL.
The error can be reproduced on at least two PC’s.

I have no idea where to go from here, please help.

If you have a kernel debugger attached, run !wdfkd.wdflogdump winusb and send the output (if formatted properly). If you get a bunch of GUIDs, then you must also call !wdfkd.settmffile. see http://blogs.msdn.com/doronh/archive/2006/07/31/684531.aspx

d

After a few attempts I got a log, that made some sense:

958: FxPkgGeneral::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818 0x00000000(IRP_MJ_CREATE) IRP 0x8597AB68
959: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8, WDFREQUEST 79EAC220
960: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE 0x7A8357E8
961: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE 0x7A8357E8
962: FxIoQueue::DispatchEvents - Driver has configured WDFQUEUE 0x7A8357E8 for WdfIoQueueDispatchManual
963: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220, STATUS_SUCCESS
964: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP 0x8597AB68 with Information 0x0, STATUS_SUCCESS
965: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A8357E8, WDFREQUEST 0x79EAC220
966: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE 0x7A8357E8
967: FxIoQueue::DispatchEvents - Driver has configured WDFQUEUE 0x7A8357E8 for WdfIoQueueDispatchManual
968: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
969: FxPkgIo::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0x85C8E470
970: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8, WDFREQUEST 79EAC220
971: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE 0x7A7E96A8
972: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE 0x7A7E96A8
973: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x79EAC220
974: imp_WdfRequestRetrieveInputBuffer - Enter: WDFREQUEST 0x79EAC220
975: imp_WdfRequestRetrieveOutputBuffer - Enter: WDFREQUEST 0x79EAC220
976: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220, STATUS_SUCCESS
977: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP 0x85C8E470 with Information 0x0, STATUS_SUCCESS
978: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A7E96A8, WDFREQUEST 0x79EAC220
979: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
980: FxIoQueue::DispatchRequestToDriver - WDFREQUEST 0x79EAC220 dispatched to driver
981: FxIoQueue::DispatchEvents - No requests on WDFQUEUE 0x7A7E96A8
982: FxPkgIo::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0x85C8E470
983: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8, WDFREQUEST 79EAC220
984: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE 0x7A7E96A8
985: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE 0x7A7E96A8
986: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x79EAC220
987: imp_WdfRequestRetrieveInputBuffer - Enter: WDFREQUEST 0x79EAC220
988: imp_WdfRequestRetrieveOutputBuffer - Enter: WDFREQUEST 0x79EAC220
989: imp_WdfRequestRetrieveOutputBuffer - WDFREQUEST 0x79EAC220 buffer size 18 is less than RequiredLength 19, 0xc0000023(STATUS_BUFFER_TOO_SMALL)
990: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220, 0xc0000023(STATUS_BUFFER_TOO_SMALL)
991: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP 0x85C8E470 with Information 0x0, 0xc0000023(STATUS_BUFFER_TOO_SMALL)
992: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A7E96A8, WDFREQUEST 0x79EAC220
993: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
994: FxIoQueue::DispatchRequestToDriver - WDFREQUEST 0x79EAC220 dispatched to driver
995: FxIoQueue::DispatchEvents - No requests on WDFQUEUE 0x7A7E96A8

Line 989 seems to be were the whole thing breaks down.
Hope this makes more sense to you than it does to me.

It looks to me that the this could happen if the device is setting the
bLength field of the device descriptor to 19 instead of 18. Is this
possible?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@interacoustics.dk
Sent: Wednesday, January 17, 2007 5:29 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] WinUsb_Initialize returns with
ERROR_INSUFFICIENT_BUFFER

After a few attempts I got a log, that made some sense:

958: FxPkgGeneral::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818
0x00000000(IRP_MJ_CREATE) IRP 0x8597AB68
959: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8,
WDFREQUEST 79EAC220
960: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE
0x7A8357E8
961: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A8357E8
962: FxIoQueue::DispatchEvents - Driver has configured WDFQUEUE
0x7A8357E8 for WdfIoQueueDispatchManual
963: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220,
STATUS_SUCCESS
964: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP
0x8597AB68 with Information 0x0, STATUS_SUCCESS
965: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A8357E8,
WDFREQUEST 0x79EAC220
966: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A8357E8
967: FxIoQueue::DispatchEvents - Driver has configured WDFQUEUE
0x7A8357E8 for WdfIoQueueDispatchManual
968: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
969: FxPkgIo::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818
0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0x85C8E470
970: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8,
WDFREQUEST 79EAC220
971: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE
0x7A7E96A8
972: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A7E96A8
973: FxIoQueue::DispatchRequestToDriver - Calling driver
EvtIoDeviceControl for WDFREQUEST 0x79EAC220
974: imp_WdfRequestRetrieveInputBuffer - Enter: WDFREQUEST 0x79EAC220
975: imp_WdfRequestRetrieveOutputBuffer - Enter: WDFREQUEST 0x79EAC220
976: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220,
STATUS_SUCCESS
977: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP
0x85C8E470 with Information 0x0, STATUS_SUCCESS
978: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A7E96A8,
WDFREQUEST 0x79EAC220
979: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
980: FxIoQueue::DispatchRequestToDriver - WDFREQUEST 0x79EAC220
dispatched to driver
981: FxIoQueue::DispatchEvents - No requests on WDFQUEUE 0x7A7E96A8
982: FxPkgIo::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818
0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0x85C8E470
983: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8,
WDFREQUEST 79EAC220
984: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE
0x7A7E96A8
985: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A7E96A8
986: FxIoQueue::DispatchRequestToDriver - Calling driver
EvtIoDeviceControl for WDFREQUEST 0x79EAC220
987: imp_WdfRequestRetrieveInputBuffer - Enter: WDFREQUEST 0x79EAC220
988: imp_WdfRequestRetrieveOutputBuffer - Enter: WDFREQUEST 0x79EAC220
989: imp_WdfRequestRetrieveOutputBuffer - WDFREQUEST 0x79EAC220 buffer
size 18 is less than RequiredLength 19,
0xc0000023(STATUS_BUFFER_TOO_SMALL)
990: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220,
0xc0000023(STATUS_BUFFER_TOO_SMALL)
991: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP
0x85C8E470 with Information 0x0, 0xc0000023(STATUS_BUFFER_TOO_SMALL)
992: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A7E96A8,
WDFREQUEST 0x79EAC220
993: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
994: FxIoQueue::DispatchRequestToDriver - WDFREQUEST 0x79EAC220
dispatched to driver
995: FxIoQueue::DispatchEvents - No requests on WDFQUEUE 0x7A7E96A8

Line 989 seems to be were the whole thing breaks down.
Hope this makes more sense to you than it does to me.


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

You also said this was managed code, make sure that the size and layout
of the buffer in the managed assembly matches the layout/size in the
unmanaged world.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Randy Aull
Sent: Wednesday, January 17, 2007 2:21 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WinUsb_Initialize returns with
ERROR_INSUFFICIENT_BUFFER

It looks to me that the this could happen if the device is setting the
bLength field of the device descriptor to 19 instead of 18. Is this
possible?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@interacoustics.dk
Sent: Wednesday, January 17, 2007 5:29 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] WinUsb_Initialize returns with
ERROR_INSUFFICIENT_BUFFER

After a few attempts I got a log, that made some sense:

958: FxPkgGeneral::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818
0x00000000(IRP_MJ_CREATE) IRP 0x8597AB68
959: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8,
WDFREQUEST 79EAC220
960: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE
0x7A8357E8
961: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A8357E8
962: FxIoQueue::DispatchEvents - Driver has configured WDFQUEUE
0x7A8357E8 for WdfIoQueueDispatchManual
963: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220,
STATUS_SUCCESS
964: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP
0x8597AB68 with Information 0x0, STATUS_SUCCESS
965: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A8357E8,
WDFREQUEST 0x79EAC220
966: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A8357E8
967: FxIoQueue::DispatchEvents - Driver has configured WDFQUEUE
0x7A8357E8 for WdfIoQueueDispatchManual
968: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
969: FxPkgIo::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818
0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0x85C8E470
970: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8,
WDFREQUEST 79EAC220
971: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE
0x7A7E96A8
972: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A7E96A8
973: FxIoQueue::DispatchRequestToDriver - Calling driver
EvtIoDeviceControl for WDFREQUEST 0x79EAC220
974: imp_WdfRequestRetrieveInputBuffer - Enter: WDFREQUEST 0x79EAC220
975: imp_WdfRequestRetrieveOutputBuffer - Enter: WDFREQUEST 0x79EAC220
976: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220,
STATUS_SUCCESS
977: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP
0x85C8E470 with Information 0x0, STATUS_SUCCESS
978: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A7E96A8,
WDFREQUEST 0x79EAC220
979: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
980: FxIoQueue::DispatchRequestToDriver - WDFREQUEST 0x79EAC220
dispatched to driver
981: FxIoQueue::DispatchEvents - No requests on WDFQUEUE 0x7A7E96A8
982: FxPkgIo::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818
0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0x85C8E470
983: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8,
WDFREQUEST 79EAC220
984: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE
0x7A7E96A8
985: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A7E96A8
986: FxIoQueue::DispatchRequestToDriver - Calling driver
EvtIoDeviceControl for WDFREQUEST 0x79EAC220
987: imp_WdfRequestRetrieveInputBuffer - Enter: WDFREQUEST 0x79EAC220
988: imp_WdfRequestRetrieveOutputBuffer - Enter: WDFREQUEST 0x79EAC220
989: imp_WdfRequestRetrieveOutputBuffer - WDFREQUEST 0x79EAC220 buffer
size 18 is less than RequiredLength 19,
0xc0000023(STATUS_BUFFER_TOO_SMALL)
990: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220,
0xc0000023(STATUS_BUFFER_TOO_SMALL)
991: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP
0x85C8E470 with Information 0x0, 0xc0000023(STATUS_BUFFER_TOO_SMALL)
992: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A7E96A8,
WDFREQUEST 0x79EAC220
993: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
994: FxIoQueue::DispatchRequestToDriver - WDFREQUEST 0x79EAC220
dispatched to driver
995: FxIoQueue::DispatchEvents - No requests on WDFQUEUE 0x7A7E96A8

Line 989 seems to be were the whole thing breaks down.
Hope this makes more sense to you than it does to me.


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

In this particular case, I don’t think that should be an issue as the
request is from within the WinUsb_Initialize call (thus unmanaged code).

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Wednesday, January 17, 2007 3:13 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WinUsb_Initialize returns with
ERROR_INSUFFICIENT_BUFFER

You also said this was managed code, make sure that the size and layout
of the buffer in the managed assembly matches the layout/size in the
unmanaged world.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Randy Aull
Sent: Wednesday, January 17, 2007 2:21 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WinUsb_Initialize returns with
ERROR_INSUFFICIENT_BUFFER

It looks to me that the this could happen if the device is setting the
bLength field of the device descriptor to 19 instead of 18. Is this
possible?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@interacoustics.dk
Sent: Wednesday, January 17, 2007 5:29 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] WinUsb_Initialize returns with
ERROR_INSUFFICIENT_BUFFER

After a few attempts I got a log, that made some sense:

958: FxPkgGeneral::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818
0x00000000(IRP_MJ_CREATE) IRP 0x8597AB68
959: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8,
WDFREQUEST 79EAC220
960: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE
0x7A8357E8
961: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A8357E8
962: FxIoQueue::DispatchEvents - Driver has configured WDFQUEUE
0x7A8357E8 for WdfIoQueueDispatchManual
963: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220,
STATUS_SUCCESS
964: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP
0x8597AB68 with Information 0x0, STATUS_SUCCESS
965: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A8357E8,
WDFREQUEST 0x79EAC220
966: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A8357E8
967: FxIoQueue::DispatchEvents - Driver has configured WDFQUEUE
0x7A8357E8 for WdfIoQueueDispatchManual
968: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
969: FxPkgIo::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818
0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0x85C8E470
970: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8,
WDFREQUEST 79EAC220
971: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE
0x7A7E96A8
972: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A7E96A8
973: FxIoQueue::DispatchRequestToDriver - Calling driver
EvtIoDeviceControl for WDFREQUEST 0x79EAC220
974: imp_WdfRequestRetrieveInputBuffer - Enter: WDFREQUEST 0x79EAC220
975: imp_WdfRequestRetrieveOutputBuffer - Enter: WDFREQUEST 0x79EAC220
976: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220,
STATUS_SUCCESS
977: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP
0x85C8E470 with Information 0x0, STATUS_SUCCESS
978: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A7E96A8,
WDFREQUEST 0x79EAC220
979: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
980: FxIoQueue::DispatchRequestToDriver - WDFREQUEST 0x79EAC220
dispatched to driver
981: FxIoQueue::DispatchEvents - No requests on WDFQUEUE 0x7A7E96A8
982: FxPkgIo::Dispatch - WDFDEVICE 0x7A8BEFE8 !devobj 0x85828818
0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0x85C8E470
983: FxDevice::AllocateRequestMemory - Allocating FxRequest* 86153DD8,
WDFREQUEST 79EAC220
984: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x79EAC220 on WDFQUEUE
0x7A7E96A8
985: FxIoQueue::DispatchEvents - Thread 85819328 is processing WDFQUEUE
0x7A7E96A8
986: FxIoQueue::DispatchRequestToDriver - Calling driver
EvtIoDeviceControl for WDFREQUEST 0x79EAC220
987: imp_WdfRequestRetrieveInputBuffer - Enter: WDFREQUEST 0x79EAC220
988: imp_WdfRequestRetrieveOutputBuffer - Enter: WDFREQUEST 0x79EAC220
989: imp_WdfRequestRetrieveOutputBuffer - WDFREQUEST 0x79EAC220 buffer
size 18 is less than RequiredLength 19,
0xc0000023(STATUS_BUFFER_TOO_SMALL)
990: imp_WdfRequestComplete - Completing WDFREQUEST 0x79EAC220,
0xc0000023(STATUS_BUFFER_TOO_SMALL)
991: FxRequest::Complete - Completing WDFREQUEST 0x79EAC220 for IRP
0x85C8E470 with Information 0x0, 0xc0000023(STATUS_BUFFER_TOO_SMALL)
992: FxIoQueue::RequestCompletedCallback - Enter: WDFQUEUE 0x7A7E96A8,
WDFREQUEST 0x79EAC220
993: FxDevice::FreeRequestMemory - Free FxRequest* 86153DD8 memory
994: FxIoQueue::DispatchRequestToDriver - WDFREQUEST 0x79EAC220
dispatched to driver
995: FxIoQueue::DispatchEvents - No requests on WDFQUEUE 0x7A7E96A8

Line 989 seems to be were the whole thing breaks down.
Hope this makes more sense to you than it does to me.


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Randy Aull was right, the device descriptor had a length of 19, not the expected 18.

Turns out that the firmware coder used some sample code, and in that there was an extra string index.

Now it works, thanks guys!

That is good to know. Glad I could help.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@interacoustics.dk
Sent: Thursday, January 18, 2007 2:08 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] WinUsb_Initialize returns with
ERROR_INSUFFICIENT_BUFFER

Randy Aull was right, the device descriptor had a length of 19, not the
expected 18.

Turns out that the firmware coder used some sample code, and in that
there was an extra string index.

Now it works, thanks guys!


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer