Macro UsbBuildInterruptOrBulkTransferRequest (usbdlib.h)

La macro UsbBuildInterruptOrBulkTransferRequest met en forme un URB pour envoyer ou recevoir des données sur un canal en bloc, ou pour recevoir des données d’un canal d’interruption.

Syntaxe

void UsbBuildInterruptOrBulkTransferRequest(
  [in, out]       urb,
  [in]            length,
  [in]            pipeHandle,
  [in, optional]  transferBuffer,
  [in, optional]  transferBufferMDL,
  [in]            transferBufferLength,
  [in]            transferFlags,
  [in]            link
);

Paramètres

[in, out] urb

Pointeur vers un URB à mettre en forme en tant que demande d’interruption ou de transfert en bloc.

[in] length

Spécifie la taille, en octets, de l’URB.

[in] pipeHandle

Spécifie le handle pour ce canal retourné par le HCD lorsqu’une configuration a été sélectionnée.

[in, optional] transferBuffer

Pointeur vers une mémoire tampon résidente pour le transfert ou a la valeur NULL si une MDL est fournie dans TransferBufferMDL. Le contenu de cette mémoire tampon dépend de la valeur de TransferFlags. Si USBD_TRANSFER_DIRECTION_IN est spécifié, cette mémoire tampon contient les données lues à partir de l’appareil au retour du HCD. Sinon, cette mémoire tampon contient des données fournies par le pilote à transférer vers l’appareil.

[in, optional] transferBufferMDL

Pointeur vers une MDL qui décrit une mémoire tampon résidente ou a la valeur NULL si une mémoire tampon est fournie dans TransferBuffer. Le contenu de la mémoire tampon dépend de la valeur de TransferFlags. Si USBD_TRANSFER_DIRECTION_IN est spécifié, la mémoire tampon décrite contient les données lues à partir de l’appareil au retour du HCD. Sinon, la mémoire tampon contient les données fournies par le pilote à transférer vers l’appareil. La MDL doit être allouée à partir d’un pool non paginé.

[in] transferBufferLength

Spécifie la longueur, en octets, de la mémoire tampon spécifiée dans TransferBuffer ou décrite dans TransferBufferMDL.

[in] transferFlags

Spécifie zéro, un ou une combinaison des indicateurs suivants :

USBD_TRANSFER_DIRECTION_IN

Est défini pour demander des données à partir d’un appareil. Pour transférer des données vers un appareil, cet indicateur doit être clair.

USBD_SHORT_TRANSFER_OK

Peut être utilisé si USBD_TRANSFER_DIRECTION_IN est défini. Si la valeur est définie, indique au HCD de ne pas retourner d’erreur si un paquet reçu de l’appareil est inférieur à la taille maximale du paquet pour le point de terminaison. Sinon, une requête courte retourne une condition d’erreur.

[in] link

Réservé. Doit être défini sur NULL.

Valeur de retour

None

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête usbdlib.h (inclure Usbdlib.h)

Voir aussi

URB

Informations de référence sur la programmation du pilote de périphérique USB

USB_DEVICE_DESCRIPTOR