Bug Check 0x144: BUGCODE_USB3_DRIVER
The BUGCODE_USB3_DRIVER bug check has a value of 0x00000144. This is the code used for all USB 3 bug checks. Parameter 1 specifies the type of the USB 3 bug check, and the meanings of the other parameters are dependent on Parameter 1.
Important
This article is for programmers. If you're a customer who has received a blue screen error code while using your computer, see Troubleshoot blue screen errors.
BUGCODE_USB3_DRIVER Parameters
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Cause of error |
---|---|---|---|---|
0x1 |
Optional. Pointer to the IRP used to resend the URB |
Pointer to the URB |
Pointer to the client driver's device object |
A client driver used an URB that it had previously sent to the core stack. |
0x2 |
Pointer to the physical device object (PDO) for the boot device |
Reserved |
Reserved |
A boot or paging device failed re-enumeration. |
0x3 |
Optional. Pointer to the IRP used to send the URB |
Pointer to the corrupted URB |
Pointer to the client driver's device object |
A client driver sent a corrupted URB to the core stack. This can happen because the client driver did not allocate the URB using USBD_xxxUrbAllocate or because the client driver did a buffer underrun for the URB. |
0x800 |
IRQL at which the Open Static Streams request was sent |
Pointer to the Open Static Streams IRP |
Pointer to the client driver's device object |
An Open Static Streams request was sent at IRQL > PASSIVE LEVEL. |
0x801 |
Pointer to the Open Static Streams IRP |
Pointer to the Open Static Streams URB |
Pointer to the client driver's device object |
A client driver attempted to open static streams before querying for streams capability. A client driver cannot open a static stream until after it successfully queries for the streams capability. For more information, see Remarks. |
0x802 |
Number of static streams that the client driver tried to open |
Number of static streams that were granted to the client driver |
Pointer to the client driver's device object |
A Client driver tried to open an invalid number of static streams. The number of streams cannot be 0 and cannot be greater than the value returned to the client driver in the query USB capability call. |
0x803 |
Pointer to the Open Static Streams IRP |
Pointer to the Open Static Streams URB |
Pointer to the client driver's device object |
A client driver attempted to open static streams for an endpoint that already had static streams open. Before opening static streams, the client driver must close the previously opened static streams. |
0x804 |
The leaked handle context. Run !usbanalyze -v to get information about the leaked handle and URBs. You must enable Driver Verifier for the client driver. |
Device object passed to USBD_CreateHandle. |
Reserved |
A client driver forgot to close a handle it created earlier using USBD_CreateHandle or forgot to free an URB it allocated. |
0x805 |
WDFREQUEST handle for the Close Static Streams URB |
Pointer to the Close Static Streams URB |
Pointer to the client driver's device object |
A client driver sent a Close Static Streams URB in an invalid state (for example, after processing D0 Exit). |
0x806 |
Pointer to the IRP |
Pointer to the URB |
Pointer to the client driver's device object |
A client driver attempted to send a chained MDL before querying for chained MDL capability. A client driver cannot send a chained MDL until after it successfully queries for the chained MDL capability. For more information, see Remarks. |
0x807 |
Pointer to the chained MDL |
Pointer to the URB |
Pointer to the client driver's device object if available |
A client driver sent an URB to the core stack with a transfer buffer length longer than the byte count (returned by MmGetMdlByteCount) of the MDL passed in. For more information, see Remarks. |
0x1001 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The xHCI controller asserted the HSE bit, which indicates a host system error. |
0x1002 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The xHCI controller asserted the HCE bit, which indicates a host controller error. |
0x1003 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The xHCI stop endpoint command returned an unhandled completion code. |
0x1004 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The xHCI endpoint state received a context state error after an xHCI endpoint stop command was issued. |
0x1005 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
Set dequeue pointer failed during an attempt to clear stall on control endpoint. |
0x1006 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
Reset EP failed during an attempt to clear stall on control endpoint. |
0x1007 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The reset of the xHCI controller failed during reset recovery. |
0x1008 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The restart of the xHCI controller failed during reset recovery. |
0x1009 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
An xHCI controller command failed to complete after the command timeout abort. |
0x100A |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
Set dequeue pointer failed during an attempt to set the dequeue pointer after endpoint stop completion. |
0x100B |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The stop of the xHCI controller failed during reset recovery. |
0x100C |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The firmware in the xHCI controller is not supported. The xHCI driver will not load on this controller unless the firmware is updated. |
0x100D |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The controller was detected to be physically removed. |
0x100E |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The driver detect an error on a stream enabled endpoint. |
0x100F |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The firmware in the xHCI controller is outdated. The xHCI driver will continue working with this controller but may run into some issues. A firmware update is recommended. |
0x1010 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
A transfer event TRB completed with an unhandled completion code. |
0x1011 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The controller reported that the event ring became full. The controller is also known to drop events when this happens. |
0x1012 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The controller completed a command out of order. |
0x1013 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
After command abort completion, the command ring dequeue pointer reported by the controller is incorrect. |
0x1014 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
After enable slot completion, controller gave us a bad slot id. |
0x1015 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
Controller failed a SetAddress command with BSR1. That is unexpected. |
0x1016 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
Controller failed to enable a slot during a usbdevice reset. This is unexpected. |
0x1017 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
Controller failed an endpoints configure command where we were deconfiguring the endpoints. That is unexpected. |
0x1018 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
Controller failed a disable slot command. That is unexpected. |
0x1019 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
Controller failed a USB device reset command. That is unexpected. |
0x101A |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
After endpoint reset, Set Dequeue Pointer command failed. |
0x101B |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The xHCI reset endpoint command returned an unhandled completion code. |
0x101C |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The D0Entry for xHCI failed. |
0x101D |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
Temporarily dropping and adding a stream endpoint (as two commands) failed, when using the Configure Endpoint command instead of Set Dequeue Pointer during request cancellation. |
0x101E |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The controller indicated a transfer completion that was not pending on the controller. EventData == 1 (dereferencing the Transfer Event TRB's pointer would have caused a bugcheck) |
0x101F |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The controller indicated a transfer completion that was not pending on the controller. EventData == 0 (logical address in transfer event TRB not matched) |
0x1020 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
The controller indicated a transfer completion that was not pending on the controller. EventData == 0 (logical address in transfer event TRB not matched) The Transfer Event TRB may be redundant (points somewhere near a recently completed request). |
0x1021 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
Temporarily dropping and adding a stream endpoint (as two commands) failed, when using the Configure Endpoint command as part of resetting an endpoint that was not Halted. |
0x1022 |
XHCI_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
Dropping and adding the same endpoint (as one command) failed. |
0x3000 |
USBHUB3_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
A misbehaving hub was successfully reset by the hub driver. |
0x3001 |
USBHUB3_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
A misbehaving hub failed to be reset successfully by the hub driver. |
0x3002 |
USBHUB3_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
A non-function SuperSpeed hub was disabled by the hub driver. |
0x3003 |
USBHUB3_LIVEDUMP_CONTEXT |
Reserved |
Reserved |
A USB device failed enumeration. |
Remarks
To query for a USB capability, the client driver must call WdfUsbTargetDeviceQueryUsbCapability or USBD_QueryUsbCapability
To send a chained MDL, the client driver must call USBD_QueryUsbCapability and use URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_USING_CHAINED_MDL or URB_FUNCTION_ISOCH_TRANSFER_USING_CHAINED_MDL.