IOCTL_USB_GET_HUB_INFORMATION_EX IOCTL (usbioctl.h)
Запрос управления IOCTL_USB_GET_HUB_INFORMATION_EX ввода-вывода отправляется приложением для получения сведений о USB-концентраторе в структуре USB_HUB_INFORMATION_EX.
Запрос получает самый высокий номер порта в концентраторе. Для концентраторов USB 2.0 и SuperSpeed (не корневых концентраторов) запрос также извлекает связанные дескрипторы концентратора, как определено в спецификациях USB 2.0 и 3.0 соответственно.
IOCTL_USB_GET_HUB_INFORMATION_EX — это запрос на управление ввода-вывода в пользовательском режиме. Этот запрос предназначен для устройства USB-концентратора (GUID_DEVINTERFACE_USB_HUB).
Основной код
Входной буфер
AssociatedIrp.SystemBuffer указывает на структуру, выделенную вызывающим объектом USB_HUB_INFORMATION_EX.
Длина входного буфера
Элемент Parameters.DeviceIoControl.InputBufferLength указывает размер буфера, выделенного вызывающим объектом, размер которого равен sizeof(USB_HUB_INFORMATION_EX)
.
Выходной буфер
В выходных данных структура USB_HUB_INFORMATION_EX, на которую указывает AssociatedIrp.SystemBuffer, заполняется информацией о концентраторе.
Длина выходного буфера
Элемент Parameters.DeviceIoControl.OutputBufferLength указывает размер буфера вывода SystemBuffer.
Блок состояния
Стек USB устанавливает Irp->IoStatus.Status, чтобы STATUS_SUCCESS, если запрос выполнен успешно. В противном случае стек USB-драйверов устанавливает состояние соответствующего условия ошибки, например STATUS_INVALID_PARAMETER или STATUS_INSUFFICIENT_RESOURCES.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 8 |
минимальный поддерживаемый сервер | Не поддерживается |
заголовка | usbioctl.h (include Usbioctl.h) |