USB状态错误码USBD_STATUS对照表
2021-10-27
6149
0
USBDI.H定义了一组USB_STATUS_XXX的值. 这些值是从URB的状态字段是对IRP_MJ_INTERNAL_DEVICE_CONTROL调用的USB传输状态返回标识。USBD将URB状态码映射到有效的NTSTATUS码中(但具体详情还得看USBD_STAUTS_XXX的值),在完成IRP时将IRP中的状态字段设置为NSTATUS的代码。
比如USB的同步传输时,有时由于USBD_STATUS_ISOCH_REQUEST_FAILED,但IRP的状态码仅返回为STATUS_SUCCESSFUL.
USBD_STATUS可以通地BUSHOUND抓包的USTS(USB STATUS)来抓包。
头文件:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\usb.h
USBD_STATUS定义了USB请求的状态值。
typedef LONG USBD_STATUS;
值 | 含义 |
---|---|
00 (USBD_STATUS_SUCCESS) | Request was completed with success. |
01 (USBD_STATUS_PENDING) | Request is pending. |
10 or 11 (USBD_STATUS_ERROR) | Request was completed with an error. |
下表中定义了USB状态值的最低有效28位。
值 | 代码 | 含义 |
---|---|---|
USBD_STATUS_CRC | 0xC0000001 | CRC error (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_BTSTUFF | 0xC0000002 | BTS error (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_DATA_TOGGLE_MISMATCH | 0xC0000003 | Data toggle mismatch. |
USBD_STATUS_STALL_PID | 0xC0000004 | The device returned a stall packet identifier (defined for backward compatibility with the USB 1.0) |
USBD_STATUS_DEV_NOT_RESPONDING | 0xC0000005 | The device is not responding (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_PID_CHECK_FAILURE | 0xC0000006 | The device returned a packet identifier check failure (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_UNEXPECTED_PID | 0xC0000007 | The device returned an unexpected packet identifier error (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_DATA_OVERRUN | 0xC0000008 | The device returned a data overrun error (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_DATA_UNDERRUN | 0xC0000009 | The device returned a data underrun error (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_RESERVED1 | 0xC000000A | Reserved. |
USBD_STATUS_RESERVED2 | 0xC000000B | Reserved. |
USBD_STATUS_BUFFER_OVERRUN | 0xC000000C | The device returned a buffer overrun error (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_BUFFER_UNDERRUN | 0xC000000D | The device returned a buffer underrun error (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_NOT_ACCESSED | 0xC000000F | The USB stack could not access the device (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_FIFO | 0xC0000010 | The device returned a FIFO error (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_XACT_ERROR | 0xC0000011 | The device returned a transaction error (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_BABBLE_DETECTED | 0xC0000012 | The device returned a babble detected error (defined for backward compatibility with the USB 1.0). |
USBD_STATUS_DATA_BUFFER_ERROR | 0xC0000013 | Hardware status codes that range from 0x00000001 to 0x000000FF (defined for backward compatibility with the USB 1.0 stack). |
USBD_STATUS_NO_PING_RESPONSE | 0xC0000014 | No response was received from the device for a ping packet sent by the host. |
USBD_STATUS_INVALID_STREAM_TYPE | 0xC0000015 | The stream type is invalid for the endpoint. |
USBD_STATUS_INVALID_STREAM_ID | 0xC0000016 | The stream identifier is invalid. |
USBD_STATUS_ENDPOINT_HALTED | 0xC0000030 | A transfer was submitted to an endpoint that is stalled. |
USBD_STATUS_INVALID_URB_FUNCTION | 0x80000200 | Invalid URB function. |
USBD_STATUS_INVALID_PARAMETER | 0x80000300 | Invalid parameter. |
USBD_STATUS_ERROR_BUSY | 0x80000400 | The client driver caused an error by attempting to close an endpoint, interface, or configuration handle with outstanding transfers. |
USBD_STATUS_REQUEST_FAILED | 0x80000500 | The hub driver cannot complete a URB request. |
USBD_STATUS_INVALID_PIPE_HANDLE | 0x80000600 | Invalid pipe handle. |
USBD_STATUS_NO_BANDWIDTH | 0x80000700 | There was not enough bandwidth to open a requested endpoint. |
USBD_STATUS_INTERNAL_HC_ERROR | 0x80000900 | Unspecified host controller error. |
USBD_STATUS_ERROR_SHORT_TRANSFER | 0x80000900 | The transfer ended with a short packet, but the USBD_SHORT_TRANSFER_OK bit is not set for the pipe. |
USBD_STATUS_BAD_START_FRAME | 0xC0000A00 | The requested start frame is not within a range of USBD_ISO_START_FRAME_RANGE frames of the current USB frame. Whenever this error occurs, the system sets the stall bit on the pipe. |
USBD_STATUS_ISOCH_REQUEST_FAILED | 0xC0000B00 | The host controller returns this error whenever all packets in an isochronous transfer complete with an error. |
USBD_STATUS_FRAME_CONTROL_OWNED | 0xC0000C00 | The hub driver returns this error whenever the frame length control for the host controller is being used by a driver other than the host controller driver. |
USBD_STATUS_FRAME_CONTROL_NOT_OWNED | 0xC0000D00 | The hub driver returns this error if the caller does not own frame length control and attempts to release or modify the host controller frame length. |
USBD_STATUS_NOT_SUPPORTED | 0xC0000E00 | The request was not supported. |
USBD_STATUS_INAVLID_CONFIGURATION_DESCRIPTOR | 0xC0000F00 | Invalid configuration descriptor. |
USBD_STATUS_INSUFFICIENT_RESOURCES | 0xC0001000 | Insufficient resources. |
USBD_STATUS_SET_CONFIG_FAILED | 0xC0002000 | An attempt to change the device configuration failed. |
USBD_STATUS_BUFFER_TOO_SMALL | 0xC0003000 | The buffer is too small. |
USBD_STATUS_INTERFACE_NOT_FOUND | 0xC0004000 | The interface was not found. |
USBD_STATUS_INAVLID_PIPE_FLAGS | 0xC0005000 | Invalid pipe flags. |
USBD_STATUS_TIMEOUT | 0xC0006000 | The request timed out. |
USBD_STATUS_DEVICE_GONE | 0xC0007000 | The device is no longer present in the system. |
USBD_STATUS_STATUS_NOT_MAPPED | 0xC0008000 | The device bus address is not mapped to system memory. |
USBD_STATUS_HUB_INTERNAL_ERROR | 0xC0009000 | The hub driver returns this error whenever it intercepted a URB that was targeted at some other device. |
USBD_STATUS_CANCELED | 0xC0010000 | The USB stack reports this error whenever it completed a transfer because of an AbortPipe request from the client driver. |
USBD_STATUS_ISO_NOT_ACCESSED_BY_HW | 0xC0020000 | The host controller did not access the transfer descriptor (TD) that is associated with this packet. The USB stack reports this error in the packet status field of an isochronous transfer packet. |
USBD_STATUS_ISO_TD_ERROR | 0xC0030000 | The host controller reported an error in the transfer descriptor (TD). The USB stack reports this error in the packet status field of an isochronous transfer packet. |
USBD_STATUS_ISO_NA_LATE_USBPORT | 0xC0040000 | The client driver submitted the packet on time, but the packet failed to reach the miniport driver on time. The USB stack reports this error in the packet status field of an isochronous transfer packet. |
USBD_STATUS_ISO_NOT_ACCESSED_LATE | 0xC0050000 | The client driver did not submit the packet on time. The USB stack reports this error in the packet status field of an isochronous transfer packet. |
USBD_STATUS_BAD_DESCRIPTOR | 0xC0100000 | Invalid descriptor. |
USBD_STATUS_BAD_DESCRIPTOR_BLEN | 0xC0100001 | Invalid descriptor length. |
USBD_STATUS_BAD_DESCRIPTOR_TYPE | 0xC0100002 | Invalid descriptor type. |
USBD_STATUS_BAD_INTERFACE_DESCRIPTOR | 0xC0100003 | Invalid interface descriptor. |
USBD_STATUS_BAD_ENDPOINT_DESCRIPTOR | 0xC0100004 | Invalid endpoint descriptor. |
USBD_STATUS_BAD_INTERFACE_ASSOC_DESCRIPTOR | 0xC0100005 | Invalid interface association descriptor. |
USBD_STATUS_BAD_CONFIG_DESC_LENGTH | 0xC0100006 | Invalid configuration descriptor length. |
USBD_STATUS_BAD_NUMBER_OF_INTERFACES | 0xC0100007 | Invalid number of interfaces. |
USBD_STATUS_BAD_NUMBER_OF_ENDPOINTS | 0xC0100008 | Invalid number of endpoints. |
USBD_STATUS_BAD_ENDPOINT_ADDRESS | 0xC0100009 | Invalid endpoint address. |
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936