Функция 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-драйверов см. в разделе "Отправка цепочки MDLs".

Этот 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)

См. также

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation