IOCTL_USB_GET_TRANSPORT_CHARACTERISTICS IOCTL (usbioctl.h)

Драйвер клиента отправляет этот запрос для получения характеристик транспорта.

Основной код

IRP_MJ_DEVICE_CONTROL

Буфер входных и выходных данных

Элемент AssociatedIrp.SystemBuffer является указателем на структуру, выделенную вызывающим объектом USB_TRANSPORT_CHARACTERISTICS . При входе задайте для параметра Версия значение USB_TRANSPORT_CHARACTERISTICS_VERSION_1. На выходе версия сбрасывается до версии, меньшей или равной USB_TRANSPORT_CHARACTERISTICS_VERSION_1; он оставшихся членов структуры заполняется транспортной информацией.

Длина входного/выходного буфера

Размер структуры USB_TRANSPORT_CHARACTERISTICS .

Блок состояния

Irp->IoStatus.Status имеет значение STATUS_SUCCESS, если запрос выполнен успешно. В противном случае — состояние соответствующего условия ошибки в виде кода NTSTATUS .

Комментарии

Этот запрос получает характеристики транспорта для выбора алгоритма потоковой передачи. Например, драйвер дисплея может использовать сведения о задержке и пропускной способности для выбора кодека.

Эти сведения могут быть доступны не всегда. Стек драйверов USB зависит от базового транспорта для предоставления этих значений. Поэтому драйвер клиента должен иметь механизм резервного копирования для таких случаев, когда выполняется запрос.

Если драйвер клиента всегда хочет знать последние сведения, он должен зарегистрироваться для получения уведомлений при изменении характеристик транспорта, оставить запрос в ожидании с помощью стека драйвера USB и отменить регистрацию, когда уведомление больше не требуется. Драйвер может выполнять все эти задачи, отправляя эти запросы IOCTL.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1709
Минимальная версия сервера Windows Server 2016
Верхняя часть usbioctl.h
IRQL <=DISPATCH_LEVEL

См. также раздел

Создание запросов IOCTL в драйверах

Драйверы USB-клиента для Media-Agnostic (MA-USB)

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously