Función WdfUsbTargetDeviceQueryUsbCapability (wdfusb.h)

[Se aplica a KMDF y UMDF]

El método WdfUsbTargetDeviceQueryUsbCapability determina si el controlador de host y la pila de controladores USB admiten una funcionalidad específica.

Sintaxis

NTSTATUS WdfUsbTargetDeviceQueryUsbCapability(
  [in]            WDFUSBDEVICE UsbDevice,
  [in]            const GUID   *CapabilityType,
  [in]            ULONG        CapabilityBufferLength,
  [out, optional] PVOID        CapabilityBuffer,
  [out, optional] PULONG       ResultLength
);

Parámetros

[in] UsbDevice

Identificador de un objeto de dispositivo USB.

[in] CapabilityType

Puntero a un GUID que representa la funcionalidad sobre la que el controlador cliente desea recuperar información. Los posibles valores PGUID son los siguientes:

  • 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
Vea más información en Comentarios.

[in] CapabilityBufferLength

Longitud, en bytes, del búfer al que apunta CapabilityBuffer.

[out, optional] CapabilityBuffer

Puntero a un búfer asignado por el autor de la llamada para recibir la funcionalidad USB solicitada. Este parámetro es opcional. Si CapabilityBufferLength es cero, este parámetro debe ser NULL. Del mismo modo, si CapabilityBufferLength es distinto de cero, se debe proporcionar este parámetro. Este parámetro corresponde al parámetro OutputBuffer de la rutina USBD_QueryUsbCapability .

[out, optional] ResultLength

Puntero a una ubicación que contiene el tamaño, en bytes, de la funcionalidad devuelta. Este parámetro es opcional.

Valor devuelto

WdfUsbTargetDeviceQueryUsbCapability devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, este método puede devolver uno de los valores siguientes:

Código devuelto Descripción
STATUS_INVALID_DEVICE_STATE
El identificador de objeto del dispositivo USB no es válido.
STATUS_INSUFFICIENT_RESOURCES
No había suficiente memoria disponible.
STATUS_INVALID_PARAMETER
El autor de la llamada pasó un valor de parámetro no válido.
  • UsbDevice o CapabilityType es NULL.
  • CapabilityBuffer es NULL, pero CapabilityBufferLength contiene un valor distinto de cero. Por el contrario, el autor de la llamada proporcionó un elemento CapabilityBuffer pero CapabilityBufferLength es cero.
STATUS_NOT_IMPLEMENTED
La funcionalidad especificada no es compatible con la pila de controladores USB subyacente.
STATUS_NOT_SUPPORTED
El hardware del controlador de host no admite la funcionalidad especificada.
 

Este método también podría devolver otros valores NTSTATUS.

Comentarios

Antes de llamar a WdfUsbTargetDeviceQueryUsbCapability, el controlador debe llamar a WdfUsbTargetDeviceCreateWithParameters para registrarse con la pila de controladores USB subyacente.

Se debe llamar a WdfUsbTargetDeviceQueryUsbCapability después de llamar a la función de devolución de llamada EvtDevicePrepareHardware del controlador.

En la tabla siguiente se describen las funcionalidades específicas de USB que un controlador de cliente USB basado en KMDF puede consultar a través de una llamada WdfUsbTargetDeviceQueryUsbCapability .

GUID de funcionalidad Descripción
GUID_USB_CAPABILITY_CHAINED_MDLS La nueva pila de controladores USB en Windows 8 es capaz de aceptar una MDL encadenada (consulta MDL) desde un controlador de cliente USB basado en KMDF.

Para obtener más información sobre la funcionalidad MDL encadenada en la pila de controladores USB, vea How to Send Chained MDLs( Envío de MDL encadenados).

Este GUID solo se aplica a los controladores KMDF.

GUID_USB_CAPABILITY_STATIC_STREAMS Mientras que USB 2.0 y versiones anteriores admiten el envío de un único flujo de datos a través de un punto de conexión masivo, USB 3.0 permite enviar y recibir varios flujos de datos a través de un punto de conexión masivo.

Para obtener más información sobre cómo abrir secuencias, vea Cómo abrir y cerrar secuencias estáticas en un punto de conexión masivo USB.

Este GUID solo se aplica a los controladores KMDF.

GUID_USB_CAPABILITY_FUNCTION_SUSPEND La especificación Universal Serial Bus (USB) 3.0 define una nueva característica denominada suspensión de función. La característica permite que una función individual de un dispositivo compuesto entre en un estado de baja potencia, independientemente de otras funciones.

Para obtener más información sobre la suspensión de funciones, vea How to Implement Function Suspend in a Composite Driver.

Este GUID solo se aplica a los controladores KMDF.

GUID_USB_CAPABILITY_SELECTIVE_SUSPEND Para obtener información sobre la suspensión selectiva, consulte Suspensión selectiva usb.

Este GUID solo se aplica a los controladores KMDF.

GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE Determina si el bus funciona a alta velocidad o superior.

Este GUID se aplica a los controladores KMDF y UMDF.

GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE Determina si el autobús funciona en SuperSpeed o superior.

Este GUID se aplica a los controladores KMDF y UMDF.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Plataforma de destino Universal
Versión mínima de KMDF 1.11
Versión mínima de UMDF 2.0
Encabezado wdfusb.h (incluya Wdfusb.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf)

Consulte también

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation