Training
Module
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Best practices for a host controller driver for handling I/O requests sent by UCX.
UCX keeps track of all the endpoints that have been created by the host controller driver for devices on the USB bus. Any data transfer requests sent by the hub driver, or by another driver that is higher up in the USB device stack, is first handled by UCX. UCX is responsible for forwarding the framework request object to the correct endpoint queue. The USB Request Block (URB) contained in the request may specify an endpoint handle. If an endpoint handle is specified, UCX checks for the corresponding endpoint among the endpoints present for the device. If the specified endpoint handle is present, the request is forwarded to the endpoint's queue. If the specified endpoint handle is not found, the request is failed. If no handle is specified, then the request is for the default endpoint, and UCX forwards the request to the host controller driver's default endpoint queue for that device.
To ensure compatibility with existing USB drivers, the host controller must comply with the following requirements when completing URB request:
The framework request object for an IOCTL_INTERNAL_USB_SUBMIT_URB contains an URB located at Parameters.Others.Arg1 of the request. When the request is completed, the URB status must be set to either USBD_STATUS_SUCCESS, or to a failure status that indicates the nature of the failure. The failure status values are defined in the usb.h header file.
Training
Module
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.