IOCTL_USB_GET_TRANSPORT_CHARACTERISTICS - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// 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 reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ni-usbioctl-ioctl_usb_get_transport_characteristics)

IOCTL_USB_GET_TRANSPORT_CHARACTERISTICS IOCTL

Description

The client driver sends this request to retrieve the transport characteristics.

Parameters

Major code

Input buffer

Input buffer length

Output buffer

Output buffer length

Input/output buffer

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.

Input/output buffer length

The size of the USB_TRANSPORT_CHARACTERISTICS structure.

Status block

Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful. Otherwise, Status to the appropriate error condition as a NTSTATUS code.

Remarks

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.

See also

Creating IOCTL Requests in Drivers

USB client drivers for Media-Agnostic (MA-USB)

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously