Partager via


fonction USBD_AssignUrbToIoStackLocation (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

Handle USBD récupéré dans un appel précédent à la routine USBD_CreateHandle.

[in] IoStackLocation

Pointeur vers l’emplacement suivant de la pile IRP (IO_STACK_LOCATION). Le pilote client a reçu un pointeur vers l’emplacement de la pile dans un appel précédent vers IoGetNextIrpStackLocation.

[in] Urb

Pointeur vers la structure URB allouée par USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuildou USBD_SelectInterfaceUrbAllocateAndBuild.

Valeur de retour

Aucun

Remarques

Si le pilote client a alloué une URB en appelant USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuildou USBD_SelectInterfaceUrbAllocateAndBuild, le pilote doit appeler USBD_AssignUrbToIoStackLocation pour associer l’URB à IO_STACK_LOCATION associée à l’IRP. Pour les URB allouées par ces routines, USBD_AssignUrbToIoStackLocation remplace le paramètre Parameters.Others.Argument1 de IO_STACK_LOCATION à l’URB. (voir IOCTL_INTERNAL_USB_SUBMIT_URB).

Le pilote client doit pas'appel 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 de bogue.

Le pilote client doit appeler USBD_AssignUrbToIoStackLocation avant d’appeler IoCallDriver pour envoyer la requête. USBD_AssignUrbToIoStackLocation renseigne l’emplacement de la pile suivante 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 Comment envoyer unURB .

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

Voir aussi

Comment envoyer un URB

USBD_IsochUrbAllocate

USBD_SelectConfigUrbAllocateAndBuild

USBD_SelectInterfaceUrbAllocateAndBuild

USBD_UrbAllocate