Функция 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, если операция завершается успешно. В противном случае этот метод может возвращать одно из следующих значений:

Код возврата Описание
STATUS_INVALID_DEVICE_STATE
Недопустимый дескриптор объекта USB-устройства.
STATUS_INSUFFICIENT_RESOURCES
Недостаточно памяти.
STATUS_INVALID_PARAMETER
Вызывающий объект передал недопустимое значение параметра.
  • Значение UsbDevice или CapabilityType равно NULL.
  • CapabilityBuffer имеет значение NULL, но CapabilityBufferLength содержит ненулевое значение. И наоборот, вызывающий объект предоставил CapabilityBuffer , но CapabilityBufferLength равен нулю.
STATUS_NOT_IMPLEMENTED
Указанная возможность не поддерживается базовым стеком драйверов USB.
STATUS_NOT_SUPPORTED
Указанная возможность не поддерживается оборудованием контроллера узла.
 

Этот метод также может возвращать другие значения 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)

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

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieInformation