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 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 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
[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 à 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 est différent de 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 renvoyée
WdfUsbTargetDeviceQueryUsbCapability retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :
Code de retour | Description |
---|---|
|
Le handle d’objet de périphérique USB n’est pas valide. |
|
La mémoire disponible était insuffisante. |
|
L’appelant a passé une valeur de paramètre non valide.
|
|
La fonctionnalité spécifiée n’est pas prise en charge par la pile de pilotes USB sous-jacente. |
|
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 pour s’inscrire auprès de la pile de pilotes USB sous-jacente.
WdfUsbTargetDeviceQueryUsbCapability doit être appelé après l’appel de la fonction de rappel EvtDevicePrepareHardware du pilote.
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 une MDL chaînée (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 Guide pratique pour 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 permet d’envoyer et de recevoir 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 de faible consommation d’énergie, indépendamment des autres fonctions.
Pour plus d’informations sur la suspension de fonction, consultez How to Implement Function Suspend in a Composite Driver. Ce GUID s’applique uniquement aux pilotes KMDF. |
GUID_USB_CAPABILITY_SELECTIVE_SUSPEND |
Pour plus d’informations sur la suspension sélective, consultez 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 à grande vitesse ou à une vitesse supérieure.
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 à une vitesse supérieure.
Ce GUID s’applique aux pilotes KMDF et UMDF. |
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Plateforme cible | Universal |
Version KMDF minimale | 1.11 |
Version UMDF minimale | 2.0 |
En-tête | wdfusb.h (inclure Wdfusb.h) |
Bibliothèque | Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | DriverCreate(kmdf) |