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
[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 |
---|---|
|
Le handle d’objet de périphérique USB n’est pas valide. |
|
Mémoire insuffisante disponible. |
|
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 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) |