fonction USBD_IsochUrbAllocate (usbdlib.h)
La routine USBD_IsochUrbAllocate alloue et met en forme une structure URB pour une demande de transfert isochrone.
Note
Pour les pilotes WDF (Windows Driver Framework) : Si votre pilote client est basé sur WDF, vous devez appeler la méthode WdfUsbTargetDeviceCreateIsochUrb au lieu de USBD_IsochUrbAllocate pour allouer de la mémoire pour la structure URB.
Syntaxe
NTSTATUS USBD_IsochUrbAllocate(
[in] USBD_HANDLE USBDHandle,
[in] ULONG NumberOfIsochPackets,
[out] PURB *Urb
);
Paramètres
[in] USBDHandle
Handle USBD récupéré par le pilote client dans un appel précédent à la routine USBD_CreateHandle.
[in] NumberOfIsochPackets
Spécifie le nombre maximal de paquets isochrones requis pour effectuer le transfert. La mémoire tampon de transfert est décrite dans un tableau de longueur variable de structures USBD_ISO_PACKET_DESCRIPTOR qui stocke des informations sur chaque paquet, telles que le décalage d’octet du paquet dans la mémoire tampon. Le tableau est spécifié dans le Membre isoPacket de la structure _URB_ISOCH_TRANSFER, qui est utilisé pour définir le format d’une requête isochrone URB.
[out] Urb
Pointeur vers une structure URB, qui reçoit l’URB allouée par USBD_IsochUrbAllocate. Tous les membres de la structure URB sont définis sur zéro. L’URB allouée est suffisamment grande pour contenir le nombre maximal de paquets isochrones indiqués par NumberOfIsochPacket.
Le pilote client doit libérer l’URB lorsque le pilote a terminé de l’utiliser en appelant USBD_UrbFree.
Valeur de retour
La routine USBD_IsochUrbAllocate retourne STATUS_SUCCESS si la requête réussit. Sinon, USBD_UrbAllocate définit Urb sur NULL
et retourne un code d’échec d’état NT.
Les valeurs possibles incluent, mais pas seulement, STATUS_INVALID_PARAMETER, ce qui indique que l’appelant est passé dans NULL
à USBDHandle ou Urb.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Nécessite WDK pour Windows 8. Cible Windows Vista et les versions ultérieures du système d’exploitation Windows. |
plateforme cible | Bureau |
d’en-tête | usbdlib.h |
bibliothèque | Usbdex.lib |
IRQL | <=DISPATCH_LEVEL |