Функция WdfUsbTargetDeviceQueryUsbCapability (wdfusb.h)
[Применимо к KMDF и UMDF]
Метод WdfUsbTargetDeviceQueryUsbCapability определяет, поддерживает ли контроллер узла и стек USB-драйверов определенную возможность.
Синтаксис
NTSTATUS WdfUsbTargetDeviceQueryUsbCapability(
[in] WDFUSBDEVICE UsbDevice,
[in] const GUID *CapabilityType,
[in] ULONG CapabilityBufferLength,
[out, optional] PVOID CapabilityBuffer,
[out, optional] PULONG ResultLength
);
Параметры
[in] UsbDevice
Дескриптор объекта USB-устройства.
[in] CapabilityType
Указатель на GUID, представляющий возможность получения сведений драйвером клиента. Возможные значения PGUID приведены следующим образом:
- GUID_USB_CAPABILITY_CHAINED_MDLS
- GUID_USB_CAPABILITY_STATIC_STREAMS
- GUID_USB_CAPABILITY_SELECTIVE_SUSPEND
- GUID_USB_CAPABILITY_FUNCTION_SUSPEND
- GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE
- GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE
[in] CapabilityBufferLength
Длина буфера в байтах, на которую указывает CapabilityBuffer.
[out, optional] CapabilityBuffer
Указатель на выделенный вызывающим буфером для получения запрошенной возможности USB. Этот параметр является необязательным. Если CapabilityBufferLength равно нулю, этот параметр должен иметь значение NULL. Аналогичным образом, если CapabilityBufferLength ненулево, этот параметр должен быть предоставлен. Этот параметр соответствует параметру OutputBuffer подпрограммы USBD_QueryUsbCapability.
[out, optional] ResultLength
Указатель на расположение, содержащее размер в байтах возвращаемой возможности. Этот параметр является необязательным.
Возвращаемое значение
WdfUsbTargetDeviceQueryUsbCapability возвращает STATUS_SUCCESS, если операция завершится успешно. В противном случае этот метод может вернуть одно из следующих значений:
Возвращаемый код | Описание |
---|---|
|
Недопустимый дескриптор объекта USB-устройства. |
|
Недостаточно памяти было доступно. |
|
Вызывающий объект передал недопустимое значение параметра.
|
|
Указанная возможность не поддерживается базовым стеком USB-драйверов. |
|
Указанная возможность не поддерживается оборудованием контроллера узла. |
Этот метод также может возвращать другие значения NTSTATUS.
Замечания
Перед вызовом WdfUsbTargetDeviceQueryUsbCapabilityдрайвер должен вызывать WdfUsbTargetDeviceCreateWithParameters для регистрации в базовом стеке USB-драйверов.
необходимо вызвать WdfUsbTargetDeviceQueryUsbCapability после вызова функции обратного вызова драйвера EvtDevicePrepareHardware.
В следующей таблице описываются возможности USB-клиента, которые драйвер USB на основе KMDF может запрашивать через вызов WdfUsbTargetDeviceQueryUsbCapability.
GUID возможностей | Описание |
---|---|
GUID_USB_CAPABILITY_CHAINED_MDLS |
Новый стек USB-драйверов в Windows 8 может принимать цепочки MDL (см. MDL) из USB-драйвера USB-клиента на основе KMDF.
Дополнительные сведения о возможностях сетевых многомерных выражений в стеке драйверов USB см. в статье Отправке многомерных выражений в цепочке. Этот GUID применяется только к драйверам KMDF. |
GUID_USB_CAPABILITY_STATIC_STREAMS |
В то время как USB 2.0 и более ранние версии поддерживает отправку только одного потока данных через массовую конечную точку, USB 3.0 позволяет отправлять и получать несколько потоков данных через массовую конечную точку.
Дополнительные сведения об открытии потоков см. в статье Как открыть и закрыть статические потоки вдля массовой загрузки USB. Этот GUID применяется только к драйверам KMDF. |
GUID_USB_CAPABILITY_FUNCTION_SUSPEND |
Спецификация универсальной последовательной шины (USB) 3.0 определяет новую функцию, называемую приостановкой функции. Эта функция позволяет отдельной функции составного устройства входить в состояние низкой мощности независимо от других функций.
Дополнительные сведения о приостановке функции см. в реализации приостановки функции в составном драйвере. Этот GUID применяется только к драйверам KMDF. |
GUID_USB_CAPABILITY_SELECTIVE_SUSPEND |
Сведения о выборочной приостановке см. в разделе выборочная приостановка USB.
Этот GUID применяется только к драйверам KMDF. |
GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE |
Определяет, работает ли шина с высокой скоростью или выше.
Этот GUID применяется к драйверам KMDF и UMDF. |
GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE |
Определяет, работает ли автобус в SuperSpeed или выше.
Этот GUID применяется к драйверам KMDF и UMDF. |
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista |
целевая платформа | Всеобщий |
минимальная версия KMDF | 1.11 |
минимальная версия UMDF | 2.0 |
заголовка | wdfusb.h (include Wdfusb.h) |
библиотеки | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
правил соответствия DDI | DriverCreate(kmdf) |