Buffer Overrun Error: WDU_Transfer() sometimes returns the 0xC000000C error code. What does this error code mean? How do I solve this problem?
The 0xC000000C error code, is defined in windrvr.h as WD_USBD_STATUS_BUFFER_OVERRUN.
The WD_USBD_XXX status codes returned by WinDriver (see windrvr.h) comply with the URB status codes returned by the low-level USB stack driver (e.g., URB code 0XC000000CL — WD_USBD_STATUS_BUFFER_OVERRUN). The USBD_STATUS_BUFFER_OVERRUN error code (0xC000000C) is set
by the USB stack drivers when the device transfers
more data than requested by the host. There are two possible solutions for this buffer overrun problem: 1. Try setting the buffer sizes in the calls to WDU_Transfer in your code
to multiples of the maximum packet size. For example, if the maximum packet size is 64 bytes, use
buffer sizes that are multiples of 64 (64 bytes, 128 bytes, etc.). 2. Define a protocol between the device and device driver, making sure that the device does not transfer more data than requested. When you have access to the device firmware code, this solution is recommended. Notes: |
(WinDriver related)
Documents Navigator:
WinDriver: Support Center
WinDriver: Product Page
Can't find what you need?