Partager via


WdfUsbTargetDeviceQueryUsbCapability, fonction (wdfusb.h)

[S’applique à KMDF et UMDF]

La méthode WdfUsbTargetDeviceQueryUsbCapability détermine si le contrôleur hôte et la pile de pilotes USB prennent en charge une fonctionnalité spécifique.

Syntaxe

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

Paramètres

[in] UsbDevice

Handle vers un objet de périphérique USB.

[in] CapabilityType

Pointeur vers un GUID qui représente la fonctionnalité sur laquelle le pilote client souhaite récupérer des informations. Les valeurs de PGUID possibles sont les suivantes :

  • 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
Pour plus d’informations, voir les remarques.

[in] CapabilityBufferLength

Longueur, en octets, de la mémoire tampon pointée par CapabilityBuffer.

[out, optional] CapabilityBuffer

Pointeur vers une mémoire tampon allouée par l’appelant pour recevoir la fonctionnalité USB demandée. Ce paramètre est facultatif. Si CapabilityBufferLength est égal à zéro, ce paramètre doit être NULL. De même, si CapabilityBufferLength n’est pas zéro, ce paramètre doit être fourni. Ce paramètre correspond au paramètre OutputBuffer de la routine USBD_QueryUsbCapability.

[out, optional] ResultLength

Pointeur vers un emplacement contenant la taille, en octets, de la fonctionnalité retournée. Ce paramètre est facultatif.

Valeur de retour

WdfUsbTargetDeviceQueryUsbCapability retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :

Retourner le code Description
STATUS_INVALID_DEVICE_STATE
Le handle d’objet de périphérique USB n’est pas valide.
STATUS_INSUFFICIENT_RESOURCES
Mémoire insuffisante disponible.
STATUS_INVALID_PARAMETER
L’appelant a passé une valeur de paramètre non valide.
  • usbDevice ou CapabilityType a la valeur NULL.
  • CapabilityBuffer a la valeur NULL, mais CapabilityBufferLength contient une valeur différente de zéro. À l’inverse, l’appelant a fourni un CapabilityBuffer, mais CapabilityBufferLength est égal à zéro.
STATUS_NOT_IMPLEMENTED
La fonctionnalité spécifiée n’est pas prise en charge par la pile de pilotes USB sous-jacente.
STATUS_NOT_SUPPORTED
La fonctionnalité spécifiée n’est pas prise en charge par le matériel du contrôleur hôte.
 

Cette méthode peut également retourner d’autres valeurs NTSTATUS .

Remarques

Avant d’appeler WdfUsbTargetDeviceQueryUsbCapability, le pilote doit appeler WdfUsbTargetDeviceCreateWithParameters s’inscrire auprès de la pile de pilotes USB sous-jacente.

WdfUsbTargetDeviceQueryUsbCapability doit être appelée après l’appel de la fonction de rappel evtDevicePrepareHardware du pilote fonction de rappel.

Le tableau suivant décrit les fonctionnalités spécifiques à USB qu’un pilote client USB basé sur KMDF peut interroger via un appel WdfUsbTargetDeviceQueryUsbCapability.

GUID de fonctionnalité Description
GUID_USB_CAPABILITY_CHAINED_MDLS La nouvelle pile de pilotes USB dans Windows 8 est capable d’accepter un MDL chaîné (voir MDL) à partir d’un pilote client USB basé sur KMDF.

Pour plus d’informations sur la fonctionnalité MDL chaînée dans la pile de pilotes USB, consultez Comment envoyer des DLL chaînées.

Ce GUID s’applique uniquement aux pilotes KMDF.

GUID_USB_CAPABILITY_STATIC_STREAMS Alors que USB 2.0 et versions antérieures prennent en charge l’envoi d’un seul flux de données via un point de terminaison en bloc, USB 3.0 autorise l’envoi et la réception de plusieurs flux de données via un point de terminaison en bloc.

Pour plus d’informations sur l’ouverture de flux, consultez Comment ouvrir et fermer des flux statiques dans un point de terminaison en bloc USB.

Ce GUID s’applique uniquement aux pilotes KMDF.

GUID_USB_CAPABILITY_FUNCTION_SUSPEND La spécification USB (Universal Serial Bus) 3.0 définit une nouvelle fonctionnalité appelée suspension de fonction. La fonctionnalité permet à une fonction individuelle d’un appareil composite d’entrer dans un état à faible alimentation, indépendamment d’autres fonctions.

Pour plus d’informations sur la suspension de fonction, consultez Comment implémenter la suspension de fonction dans un pilote composite.

Ce GUID s’applique uniquement aux pilotes KMDF.

GUID_USB_CAPABILITY_SELECTIVE_SUSPEND Pour plus d’informations sur la suspension sélective, consultez de suspension sélective USB.

Ce GUID s’applique uniquement aux pilotes KMDF.

GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE Détermine si le bus fonctionne à haute vitesse ou plus.

Ce GUID s’applique aux pilotes KMDF et UMDF.

GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE Détermine si le bus fonctionne à SuperSpeed ou supérieur.

Ce GUID s’applique aux pilotes KMDF et UMDF.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
plateforme cible Universel
version minimale de KMDF 1.11
version minimale de UMDF 2.0
d’en-tête wdfusb.h (include Wdfusb.h)
bibliothèque Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
règles de conformité DDI DriverCreate(kmdf)

Voir aussi

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation