USBD_AssignUrbToIoStackLocation, fonction (usbdlib.h)
La routine USBD_AssignUrbToIoStackLocation est appelée par un pilote client pour associer un URB à l’emplacement de pile suivant de l’IRP.
Syntaxe
void USBD_AssignUrbToIoStackLocation(
[in] USBD_HANDLE USBDHandle,
[in] PIO_STACK_LOCATION IoStackLocation,
[in] PURB Urb
);
Paramètres
[in] USBDHandle
Un handle USBD récupéré lors d’un appel précédent à la routine USBD_CreateHandle .
[in] IoStackLocation
Pointeur vers l’emplacement de pile suivant de l’IRP (IO_STACK_LOCATION). Le pilote client a reçu un pointeur vers l’emplacement de la pile lors d’un appel précédent à IoGetNextIrpStackLocation.
[in] Urb
Pointeur vers la structure URB allouée par USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild ou USBD_SelectInterfaceUrbAllocateAndBuild.
Valeur de retour
None
Remarques
Si le pilote client a alloué un URB en appelant USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild ou USBD_SelectInterfaceUrbAllocateAndBuild, le pilote doit appeler USBD_AssignUrbToIoStackLocation pour associer l’URB à IO_STACK_LOCATION associée à l’IRP. Pour les URB alloués par ces routines, USBD_AssignUrbToIoStackLocation remplace la définition de Parameters.Others.Argument1 de IO_STACK_LOCATION à l’URB. (voir IOCTL_INTERNAL_USB_SUBMIT_URB).
Le pilote client ne doit pas appeler USBD_AssignUrbToIoStackLocation pour un URB alloué à l’aide d’autres mécanismes, tels que l’allocation de l’URB sur la pile. Sinon, la pile de pilotes USB génère une vérification d’erreur.
Le pilote client doit appeler USBD_AssignUrbToIoStackLocation avant d’appeler IoCallDriver pour envoyer la demande. USBD_AssignUrbToIoStackLocation renseigne l’emplacement de pile suivant de l’IRP avec l’URB. La routine met également à jour le membre FileObject de IO_STACK_LOCATION.
Pour obtenir un exemple de code, consultez Guide pratique pour soumettre un URB.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal 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 | Desktop (Expérience utilisateur) |
En-tête | usbdlib.h |
Bibliothèque | Usbdex.lib |
IRQL | <=DISPATCH_LEVEL |
Voir aussi
Guide pratique pour envoyer un URB
USBD_SelectConfigUrbAllocateAndBuild