Funzione WdfUsbTargetDeviceQueryUsbCapability (wdfusb.h)

[Si applica a KMDF e UMDF]

Il metodo WdfUsbTargetDeviceQueryUsbCapability determina se il controller host e lo stack di driver USB supportano una funzionalità specifica.

Sintassi

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

Parametri

[in] UsbDevice

Handle per un oggetto dispositivo USB.

[in] CapabilityType

Puntatore a un GUID che rappresenta la funzionalità su cui il driver client vuole recuperare informazioni. I valori PGUID possibili sono i seguenti:

  • 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
Per altre informazioni, vedere Osservazioni.

[in] CapabilityBufferLength

Lunghezza, in byte, del buffer a cui fa riferimento CapabilityBuffer.

[out, optional] CapabilityBuffer

Puntatore a un buffer allocato dal chiamante per ricevere la funzionalità USB richiesta. Questo parametro è facoltativo e, Se CapabilityBufferLength è zero, questo parametro deve essere NULL. Analogamente, se CapabilityBufferLength è diverso da zero, questo parametro deve essere fornito. Questo parametro corrisponde al parametro OutputBuffer della routine USBD_QueryUsbCapability .

[out, optional] ResultLength

Puntatore a una posizione contenente le dimensioni, in byte, della funzionalità restituita. Questo parametro è facoltativo e,

Valore restituito

WdfUsbTargetDeviceQueryUsbCapability restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo può restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_INVALID_DEVICE_STATE
L'handle dell'oggetto dispositivo USB non è valido.
STATUS_INSUFFICIENT_RESOURCES
Memoria insufficiente disponibile.
STATUS_INVALID_PARAMETER
Il chiamante ha passato un valore di parametro non valido.
  • UsbDevice o CapabilityType è NULL.
  • CapabilityBuffer è NULL, ma CapabilityBufferLength contiene un valore diverso da zero. Al contrario, il chiamante ha fornito una funzionalitàBuffer ma CapabilityBufferLength è zero.
STATUS_NOT_IMPLEMENTED
La funzionalità specificata non è supportata dallo stack di driver USB sottostante.
STATUS_NOT_SUPPORTED
La funzionalità specificata non è supportata dall'hardware del controller host.
 

Questo metodo potrebbe restituire anche altri valori NTSTATUS.

Commenti

Prima di chiamare WdfUsbTargetDeviceQueryUsbCapability, il driver deve chiamare WdfUsbTargetDeviceCreateWithParameters per registrare con lo stack di driver USB sottostante.

WdfUsbTargetDeviceQueryUsbCapability deve essere chiamato dopo che è stata chiamata la funzione di callback evtDevicePrepareHardware del driver.

La tabella seguente descrive le funzionalità specifiche di USB che un driver client USB basato su KMDF può eseguire query tramite una chiamata WdfUsbTargetDeviceQueryUsbCapability .

GUID della funzionalità Descrizione
GUID_USB_CAPABILITY_CHAINED_MDLS Il nuovo stack di driver USB in Windows 8 è in grado di accettare un MDL concatenato (vedere MDL) da un driver client USB basato su KMDF.

Per altre informazioni sulla funzionalità MDLs concatenati nello stack di driver USB, vedere How to Send Chained MDLs (Come inviare MDL con catena).

Questo GUID si applica solo ai driver KMDF.

GUID_USB_CAPABILITY_STATIC_STREAMS Mentre USB 2.0 e versioni precedenti supporta l'invio di un singolo flusso di dati tramite un endpoint bulk, USB 3.0 consente l'invio e la ricezione di più flussi di dati tramite un endpoint bulk.

Per altre informazioni sull'apertura dei flussi, vedere Come aprire e chiudere i flussi statici in un endpoint bulk USB.

Questo GUID si applica solo ai driver KMDF.

GUID_USB_CAPABILITY_FUNCTION_SUSPEND La specifica Universal Serial Bus (USB) 3.0 definisce una nuova funzionalità denominata sospensione della funzione. La funzionalità consente a una singola funzione di un dispositivo composito di immettere uno stato di bassa potenza, indipendentemente da altre funzioni.

Per altre informazioni sulla sospensione delle funzioni, vedere Come implementare la sospensione della funzione in un driver composito.

Questo GUID si applica solo ai driver KMDF.

GUID_USB_CAPABILITY_SELECTIVE_SUSPEND Per informazioni sulla sospensione selettiva, vedere Sospensione selettiva USB.

Questo GUID si applica solo ai driver KMDF.

GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE Determina se il bus è operativo ad alta velocità o superiore.

Questo GUID si applica ai driver KMDF e UMDF.

GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE Determina se il bus è operativo in SuperSpeed o superiore.

Questo GUID si applica ai driver KMDF e UMDF.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Piattaforma di destinazione Universale
Versione KMDF minima 1.11
Versione UMDF minima 2,0
Intestazione wdfusb.h (include Wdfusb.h)
Libreria Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Regole di conformità DDI DriverCreate(kmdf)

Vedi anche

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation