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.

See also

Universal Serial Bus (USB)

Kernel Live Dump Code Reference

Bug Check Code Reference