USB状态错误原因

USBD_STATUS调试过USB的同学肯定见过BUS Hound里面给的各种错误提示,但是大家是否知道是什么意思呢?

USBD_STATUS出错原因,详解如下:

The USBD_STATUS data type defines USB status values for USB requests.

typedef LONG USBD_STATUS;

The most significant 4 bits of USB status values are defined in the following table.

Value Meaning

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.

The least significant 28 bits of USB status values are defined in the following table.

Value Code Meaning

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.

Related topics

USB Constants and Enumerations         http://msdn.microsoft.com/zh-cn/subscriptions/ff539136

时间: 2024-10-16 09:25:30

USB状态错误原因的相关文章

coreseek常见错误原因及解决方法

coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索.论坛/站内搜索.数据库搜索.文档/文献检索.信息检索.数据挖掘等应用场景,用户可以免费下载使用 本文为大家整理了coreseek/sphinx中文检索引擎的常见问题和解决方法,感兴趣的同学参考下. Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协

在查MySQL 1366的错误原因

在查MySQL 1366的错误原因时,发现一些有趣的回答. 不过,还是有人给出了比较好的解决方法 MySQL 1366错误大致描述如下 1. SQL Error: 1366: Incorrect string value: "\xE8\xAF\xA6\xE7\xBB\x86-" for column "address" at row 1 解决办法:检查数据库此字段的字符集与整理字符集是否与SQL语句传递数据的字符集相同:不相同则会引发MySQL1366错误. 修改M

/etc/rc.d/init.d/iptables: No such file or directory 错误原因

注:本文转载自cnblogs:一天学点的文章</etc/rc.d/init.d/iptables: No such file or directory 错误原因> RedHat Enterprise Linux 7关闭防火墙方法 在之前的版本中关闭防火墙等服务的命令是 1 service iptables stop 2 3 /etc/init.d/iptables stop 在RHEL7中,其实没有这个服务 1 [[email protected] ~]# cat /etc/redhat-re

安装VisualSVN Server 报&quot;Service &#39;VisualSVN Server&#39; failed to start. Please check VisualSVN Server log in Event Viewer for more details&quot;错误.原因是启动&quot;VisualSVN Server&quot;失败

安装VisualSVN Server 报"Service 'VisualSVN Server' failed to start. Please check VisualSVN Server log in Event Viewer for more details"错误.原因是启动"VisualSVN Server"失败 安装 VisualSVN Server 服务启动失败 咱们先来看一下这个服务在哪,计算机-右键-管理或者系统服务-在服务里面可以看到一个"

Microsoft VBScript 编译器错误 错误原因 代码大全

Microsoft VBScript 编译器错误 错误 '' 缺少语句 ActiveServerPages,ASP0126(0x80004005)-->找不到包含文件 MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)-->sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态,或表不存在于conn打开的数据库中) MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)-->sql语句出错

sc start service 1063 1053 错误原因

在进入点函数里面要完成ServiceMain的初始化,准确点说是初始化一个SERVICE_TABLE_ENTRY结构数组,这个结构记录了这个服务程序里面所包含的所有服务的名称和服务的进入点函数,下面是一个SERVICE_TABLE_ENTRY的例子:SERVICE_TABLE_ENTRY service_table_entry[] ={  { "MyFTPd" , FtpdMain },  { "MyHttpd", Httpserv},  { NULL, NULL

服务器出现 HTTP 400、404、500、502 错误原因以及解决办法

一.基本包含了所有问题 HTTP 400 – 请求无效. HTTP 401.1 – 未授权:登录失败. HTTP 401.2 – 未授权:服务器配置问题导致登录失败. HTTP 401.3 – ACL 禁止访问资源. HTTP 401.4 – 未授权:授权被筛选器拒绝. HTTP 401.5 – 未授权:ISAPI 或 CGI 授权失败. 1.HTTP 403 – 禁止访问 HTTP 403 – 对 Internet 服务管理器 的访问仅限于 Localhost. HTTP 403.1 禁止访问

服务器出现 HTTP 400、404、500、502 错误原因及解决方法

基本涵盖了所有问题HTTP 400 – 请求无效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁止访问资源HTTP 401.4 – 未授权:授权被筛选器拒绝HTTP 401.5 – 未授权:ISAPI 或 CGI 授权失败 HTTP 403 – 禁止访问HTTP 403 – 对 Internet 服务管理器 的访问仅限于 LocalhostHTTP 403.1 禁止访问:禁止可执行访问HTTP 403.2

支付宝接口开发提示错误代码 invalid-signature 错误原因: 无效签名

今天做支付宝接口开发,参照官方的实例代码,但是一直提示报错:错误代码 invalid-signature 错误原因: 无效签名 而官方的例子却不报错,经过反复的测试发现,是因为官方代码里参数是通过POST赋值的 $out_trade_no = trim($_POST['WIDout_trade_no']);//商户订单号,商户网站订单系统中唯一订单号,必填 $subject = trim($_POST['WIDsubject']);//订单名称,必填 $total_amount = trim($