Bug 检查 0x144:BUGCODE_USB3_DRIVER
BUGCODE_USB3_DRIVER bug 检查的值为 0x00000144。 这是用于所有 USB 3 bug 检查的代码。 参数 1 指定 USB 3 bug 检查的类型,其他参数的含义取决于参数 1。
重要
这篇文章适合程序员阅读。 如果您是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答。
BUGCODE_USB3_DRIVER 参数
参数 1 | 参数 2 | 参数 3 | 参数 4 | 错误原因 |
---|---|---|---|---|
0x1 |
可选。 指向用于重新发送 URB 的 IRP 的指针 |
指向 URB 的指针 |
指向客户端驱动程序的设备对象的指针 |
客户端驱动程序使用了以前发送到核心堆栈的 URB。 |
0x2 |
指向启动设备的物理设备对象 (PDO) 的指针 |
预留 |
预留 |
启动或分页设备重新枚举失败。 |
0x3 |
可选。 指向用于发送 URB 的 IRP 的指针 |
指向损坏的 URB 的指针 |
指向客户端驱动程序的设备对象的指针 |
客户端驱动程序将损坏的 URB 发送到核心堆栈。 之所以发生这种情况,是因为客户端驱动程序未使用 USBD_xxxUrbAllocate 分配 URB,或者客户端驱动程序为 URB 执行了缓冲区不足。 |
0x800 |
发送 Open Static Streams 请求的 IRQL |
指向 Open Static Streams IRP 的指针 |
指向客户端驱动程序的设备对象的指针 |
在 IRQL > PASSIVE LEVEL 发送了 Open Static Streams 请求。 |
0x801 |
指向 Open Static Streams IRP 的指针 |
指向 Open Static Streams URB 的指针 |
指向客户端驱动程序的设备对象的指针 |
客户端驱动程序在查询流功能之前尝试打开静态流。 在客户端驱动程序成功查询流功能之前,客户端驱动程序无法打开静态流。 有关详细信息,请参阅“备注”。 |
0x802 |
客户端驱动程序尝试打开的静态流数 |
向客户端驱动程序授予的静态流数 |
指向客户端驱动程序的设备对象的指针 |
客户端驱动程序尝试打开无效数量的静态流。 流数不能为 0,并且不能大于在查询 USB 功能调用中返回到客户端驱动程序的值。 |
0x803 |
指向 Open Static Streams IRP 的指针 |
指向 Open Static Streams URB 的指针 |
指向客户端驱动程序的设备对象的指针 |
客户端驱动程序尝试为已打开静态流的终结点打开静态流。 在打开静态流之前,客户端驱动程序必须关闭以前打开的静态流。 |
0x804 |
泄漏的句柄上下文。 运行 !usbanalyze -v 以获取有关泄漏的句柄和 URB 的信息。 必须为客户端驱动程序启用驱动程序验证程序。 |
传递给 USBD_CreateHandle 的设备对象。 |
Reserved |
客户端驱动程序忘记关闭之前使用 USBD_CreateHandle 创建的句柄,或忘记释放分配的 URB。 |
0x805 |
Close Static Streams URB 的 WDFREQUEST 句柄 |
指向 Close Static Streams URB 的指针 |
指向客户端驱动程序的设备对象的指针 |
客户端驱动程序发送了处于无效状态的 Close Static Streams URB(例如,处理 D0 Exit 后)。 |
0x806 |
指向 IRP 的指针 |
指向 URB 的指针 |
指向客户端驱动程序的设备对象的指针 |
客户端驱动程序在查询链接的 MDL 功能之前尝试发送链接的 MDL。 客户端驱动程序在成功查询链接的 MDL 功能之前,无法发送链接的 MDL。 有关详细信息,请参阅“备注”。 |
0x807 |
指向链接的 MDL 的 指针 |
指向 URB 的指针 |
指向客户端驱动程序的设备对象的指针(如果可用) |
客户端驱动程序将 URB 发送到核心堆栈,其传输缓冲区长度超过传入的 MDL 的字节计数(由 MmGetMdlByteCount 返回)。 有关详细信息,请参阅“备注”。 |
0x1001 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
xHCI 控制器断言 HSE 位,指示主机系统错误。 |
0x1002 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
xHCI 控制器断言 HCE 位,指示主机控制器错误。 |
0x1003 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
xHCI 停止终结点命令返回未经处理的完成代码。 |
0x1004 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
xHCI 终结点状态在发出 xHCI 终结点停止命令后收到上下文状态错误。 |
0x1005 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
尝试清除控制终结点上的停止期间,设置取消排队指针失败。 |
0x1006 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
在尝试清除控制终结点上的停止期间重置 EP 失败。 |
0x1007 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
重置恢复期间 xHCI 控制器重置失败。 |
0x1008 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
重置恢复期间 xHCI 控制器重启失败。 |
0x1009 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
命令超时中止后,xHCI 控制器命令无法完成。 |
0x100A |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
在尝试在终结点停止完成后设置取消排队指针时,设置取消排队指针失败。 |
0x100B |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
重置恢复期间 xHCI 控制器停止失败。 |
0x100C |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
不支持 xHCI 控制器中的固件。 除非更新固件,否则不会在此控制器上加载 xHCI 驱动程序。 |
0x100D |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
检测到控制器在物理上被删除。 |
0x100E |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
驱动程序在启用了流的终结点上检测到错误。 |
0x100F |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
xHCI 控制器中的固件已过时。 xHCI 驱动程序将继续使用此控制器,但可能会遇到一些问题。 建议使用固件更新。 |
0x1010 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
传输事件 TRB 使用未经处理的完成代码完成。 |
0x1011 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
控制器报告事件环已满。 当发生这种情况时,控制器也已知会删除事件。 |
0x1012 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
控制器已按顺序完成命令。 |
0x1013 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
命令中止完成后,控制器报告的命令环取消排队指针不正确。 |
0x1014 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
启用插槽完成后,控制器会提供一个错误的插槽 ID。 |
0x1015 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
控制器使用 BSR1 执行 SetAddress 命令失败。 这是意外行为。 |
0x1016 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
控制器在 usbdevice 重置期间未能启用插槽。 这是意外行为。 |
0x1017 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
控制器执行终结点配置命令失败,我们在其中取消配置终结点。 这是意外行为。 |
0x1018 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
控制器禁用插槽命令失败。 这是意外行为。 |
0x1019 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
控制器执行 USB 设备重置命令失败。 这是意外行为。 |
0x101A |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
终结点重置后,“设置取消排队指针”命令失败。 |
0x101B |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
xHCI 重置终结点命令返回未经处理的完成代码。 |
0x101C |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
xHCI 的 D0Entry 失败。 |
0x101D |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
在请求取消期间使用“配置终结点”命令而不是“设置取消排队指针”时,暂时删除和添加流终结点(作为两个命令)失败。 |
0x101E |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
控制器指示未在控制器上挂起的传输完成。 EventData == 1(取消引用传输事件 TRB 的指针会导致 bug 检查) |
0x101F |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
控制器指示未在控制器上挂起的传输完成。 EventData == 0(传输事件 TRB 中的逻辑地址不匹配) |
0x1020 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
控制器指示未在控制器上挂起的传输完成。 EventData == 0(传输事件 TRB 中的逻辑地址不匹配)传输事件 TRB 可能是冗余的(指向最近完成的请求附近的某个位置)。 |
0x1021 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
使用“配置终结点”命令重置未停止的终结点时,暂时删除和添加流终结点(作为两个命令)失败。 |
0x1022 |
XHCI_LIVEDUMP_CONTEXT |
预留 |
预留 |
删除并添加同一终结点(作为一个命令)失败。 |
0x3000 |
USBHUB3_LIVEDUMP_CONTEXT |
预留 |
预留 |
中心驱动程序成功重置了异常的中心。 |
0x3001 |
USBHUB3_LIVEDUMP_CONTEXT |
预留 |
预留 |
中心驱动程序未能成功重置异常的中心。 |
0x3002 |
USBHUB3_LIVEDUMP_CONTEXT |
预留 |
预留 |
中心驱动程序禁用了非函数 SuperSpeed 中心。 |
0x3003 |
USBHUB3_LIVEDUMP_CONTEXT |
预留 |
预留 |
USB 设备枚举失败。 |
注解
若要查询 USB 功能,客户端驱动程序必须调用 WdfUsbTargetDeviceQueryUsbCapability 或 USBD_QueryUsbCapability
若要发送链接的 MDL,客户端驱动程序必须调用 USBD_QueryUsbCapability,并使用 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_USING_CHAINED_MDL 或 URB_FUNCTION_ISOCH_TRANSFER_USING_CHAINED_MDL。