Home |
Media Transfer Protocol Class Driver RTUSB-32 Error Codes and Diagnostics Error Codes |
Error CodesThis appendix lists and explains all error codes that can be returned by RTUSB-32. The errors are sorted in numerical order. For each error, the numeric value, symbolic constant, and a description are given. RTU_SUCCESS (0)Not an error. This value indicates success of an operation. RTU_CRC (-1)A CRC error occurred in a transaction. For Isochronous endpoints, this error is ignored. For all other transfer types, several retries were not able to recover from this error and the transaction was aborted. RTU_BIT_STUFFING (-2)A bit stuffing error (protocol used by USB to ensure sufficient high/low transitions on the data lines) occurred in a transaction. For Isochronous endpoints, this error is ignored. For all other transfer types, several retries were not able to recover from this error and the transaction was aborted. RTU_DATA_TOGGLE (-3)A data toggle error occurred in a transaction, indicating that complete packets may have been lost. For Isochronous endpoints, this error is ignored. For all other transfer types, several retries were not able to recover from this error and the transaction was aborted. RTU_STALL (-4)An endpoint has entered the USB "stall" state. This usually indicates that the device has received malformed data, data it does not understand or support, or that the host and device have lost synchronization. RTUSB-32 automatically recovers from this error such that subsequent transactions can succeed. RTU_NO_RESPONSE (-5)The host controller has tried to initiate a transaction with a device that has not responded, not even with a NAK packet which is required if the device has no data to send or receive. This error may occur when a device is detached from the USB and the hub task has not invoked the detach callback of the device's client yet. Further communication on the respective endpoint is likely to produce the same error. For Isochronous endpoints, this error is ignored. For all other transfer types, several retries were not able to recover from this error and the transaction was aborted. RTU_PID_FAILURE (-6)A bit error occurred in a transaction header. For Isochronous endpoints, this error is ignored. For all other transfer types, several retries were not able to recover from this error and the transaction was aborted. RTU_INVALID_PID (-7)A bit error occurred in a transaction header. For Isochronous endpoints, this error is ignored. For all other transfer types, several retries were not able to recover from this error and the transaction was aborted. RTU_OVERRUN (-8)The amount of data returned by the endpoint exceeded either the size of the maximum data packet allowed from the endpoint or the remaining buffer size of the application. RTU_UNDERRUN (-9)The endpoint returned less than the maximum packet size and that amount was not sufficient to fill the application's buffer. RTUIOWait and RTUIOWaitTimed never return this error code. Rather, they report the actual amount of data that the device has returned. RTU_FRAME_MISSED (-10)The EHCI controller was unable to complete a split transaction of a Low- or Full-Speed Interrupt endpoint. RTU_BABBLE (-11)Babble (line noise) has corrupted received data. The USB cabling should be checked. This error can also be caused by a device sending an unexpected amount of data, which in turn is only possible if the Len parameter passed to RTUStartIO is not an integral multiple of the maximum packet size as returned by RTUEndpointPacketSize. RTU_BUFFER_OVERRUN (-12)The USB host controller received data from an endpoint faster than it could be written to system memory over the PCI bus. Increasing the PCI timer latency might help. RTU_BUFFER_UNDERRUN (-13)The USB host controller could not retrieve data from system memory over the PCI bus fast enough to keep up with the USB data rate. Increasing the PCI timer latency might help. RTU_NOT_ACCESSED (-15)The USB host controller has not attempted to process the transaction. This error code suggests an RTUSB-32 internal error. RTU_ACCESS_DENIED (-16)RTURegisterOHCI was unable to take ownership of a host controller. RTU_OUT_OF_SEQ (-17)RTUSendSetup reports this error when an unexpected transaction completes. It suggests an internal error. RTU_CANCELED (-18)RTUCancelIO or RTUClosePipe has been called by the application to abort a transaction. RTU_INVALID_PIPE (-19)An invalid (possibly closed) pipe handle has been passed to an API function of RTUSB-32. RTU_INVALID_PARAMETER (-20)An invalid parameter has been supplied to an RTUSB-32 API function RTU_TIMEOUT (-21)RTUIOWaitTimed reports this code when it times out. It does not necessarily indicate an error. No transaction(s) have been aborted when this value is returned. RTU_WRONG_DESCR (-22)RTUGetString reports this code if the device returns a different descriptor type than requested. RTU_DISCONNECTED (-23)RTUStartIO has been called for a device which has been removed from the bus. RTU_NOT_AVAIL (-24)RTUClaimInterface has been called, but another configuration has already been set or another client has already claimed the requested interface or RTUCallOnDisconnect has been called with a ClientCallback parameter which has not been registered using RTURegisterCallback. The disk driver returns this code when a USB disk device is present, but no media is currently available. The audio driver uses this code for features not available by an Audio function. RTU_BANDWIDTH (-25)RTUClaimInterface has determined that using the requested interface would require more bandwidth than is currently available. RTU_OVER_CURRENT (-26)RTUClaimInterface has determined that using the requested configuration would require more bus power than is currently available. Values in RTUSBConfig can be changed to inform RTUSB-32 that more power is available. RTU_SYSTEM_ERROR (-27)This error is returned on fatal internal errors such as out of memory or corrupted internal data structures. RTU_PROTOCOL_ERROR (-28)Some class drivers may return this error if they have failed to synchonize the communication protocol with the device. For example, if the driver sends a message to the device and the class spec requires the device to respond with a value in the range 0..10, but 100 is received. RTU_HARDWARE_FAILURE (-29)Some class drivers may return this error to indicate that an attached device does respond to USB requests, but the hardware of the implemented function is malfunctioning. For example, if a USB disk fails to seek to a requested track, this error is returned. RTU_INCOMPATIBLE_DEVICE (-30)Asserted when an XHCI Controller detects a problem with a device that does not allow it to be successfully accessed, e.g. due to a device compliance or compatibility problem.
|