Функция 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-клиента на основе KMDF.
Дополнительные сведения о возможности цепочек MDL в стеке драйверов USB см. в разделе Отправка цепочек MDL. Этот 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 (включая Wdfusb.h) |
Библиотека | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf) |