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 desidera recuperare informazioni. I possibili valori PGUID 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 la sezione Osservazioni.

[in] CapabilityBufferLength

Lunghezza, in byte, del buffer a cui punta CapabilityBuffer.

[out, optional] CapabilityBuffer

Puntatore a un buffer allocato dal chiamante per ricevere la funzionalità USB richiesta. Questo parametro è facoltativo. Se CapabilityBufferLength è zero, questo parametro deve essere NULL. Analogamente, se CapabilityBufferLength è diverso da zero, è necessario specificare questo parametro. 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.

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 un CapabilityBuffer , 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 anche restituire altri valori NTSTATUS.

Commenti

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

WdfUsbTargetDeviceQueryUsbCapability deve essere chiamato dopo la chiamata della funzione di callback EvtDevicePrepareHardware del driver.

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

GUID 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) dal driver client USB basato su KMDF.

Per altre informazioni sulla funzionalità MDLs concatenati nello stack di driver USB, vedere How to Send Chained MDLs .For more information about the chained MDLs in the chained MDLs in the USB driver stack, see How to Send Chained MDLs.

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 solo 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 Flussi statici in un endpoint bulk USB.

Questo GUID si applica solo ai driver KMDF.

GUID_USB_CAPABILITY_FUNCTION_SUSPEND La specifica USB (Universal Serial Bus) 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 a basso consumo, indipendentemente da altre funzioni.

Per altre informazioni sulla sospensione della funzione, vedere How to Implement Function Suspend in a Composite Driver.For more information about function suspend, see How to Implement Function Suspend in a Composite Driver.

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 l'autobus funziona ad alta velocità o superiore.

Questo GUID si applica ai driver KMDF e UMDF.

GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE Determina se l'autobus funziona a SuperSpeed o superiore.

Questo GUID si applica ai driver KMDF e UMDF.

Requisiti

   
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