// usbioctl.h
// CTL_CODE(0x0022, 0x119, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_USB_GET_TRANSPORT_CHARACTERISTICS 0x00220464
View the official Windows Driver Kit DDI referenceNo description available.
The client driver sends this request to retrieve the transport characteristics.
The AssociatedIrp.SystemBuffer member is a pointer to a caller-allocated USB_TRANSPORT_CHARACTERISTICS structure. On input, set Version to USB_TRANSPORT_CHARACTERISTICS_VERSION_1. On output Version is reset to a version less than or equal to USB_TRANSPORT_CHARACTERISTICS_VERSION_1; he remaining members of the structure is filled with transport information.
The size of the USB_TRANSPORT_CHARACTERISTICS structure.
Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful. Otherwise, Status to the appropriate error condition as a NTSTATUS code.
This request retrieves the transport characteristics to decide on an algorithm for streaming. For example, a display driver can use the latency and bandwidth information to decide its codec selection.
This information might not be always available. The USB driver stack depends on the underlying transport to expose these values. Therefore, the client driver must have a back up mechanism for such cases where the request.
If the client driver is interested in knowing the latest information at all times, the driver must register for notification when transport characteristics change, keep a request pending with the USB driver stack, and unregister when the notification is no longer required. The driver can accomplish all those tasks by sending these IOCTL requests.
Creating IOCTL Requests in Drivers
USB client drivers for Media-Agnostic (MA-USB)
WdfIoTargetSendInternalIoctlOthersSynchronously
WdfIoTargetSendInternalIoctlSynchronously
WdfIoTargetSendIoctlSynchronously