Поделиться через


Функция 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-драйвера 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)

См. также

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation