Partager via


WinUsb_ReadIsochPipe, fonction (winusb.h)

La fonction WinUsb_ReadIsochPipe lit les données d’un point de terminaison IN isochronous.

Syntaxe

BOOL WinUsb_ReadIsochPipe(
  [in]           WINUSB_ISOCH_BUFFER_HANDLE  BufferHandle,
  [in]           ULONG                       Offset,
  [in]           ULONG                       Length,
  [in, out]      PULONG                      FrameNumber,
  [in]           ULONG                       NumberOfPackets,
  [out]          PUSBD_ISO_PACKET_DESCRIPTOR IsoPacketDescriptors,
  [in, optional] LPOVERLAPPED                Overlapped
);

Paramètres

[in] BufferHandle

Handle opaque pour la mémoire tampon de transfert qui a été inscrite par un appel précédent à WinUsb_RegisterIsochBuffer.

[in] Offset

Décalage dans la mémoire tampon par rapport au début du transfert.

[in] Length

Longueur en octets de la mémoire tampon de transfert.

[in, out] FrameNumber

Lors de l’entrée, indique le numéro d’image de départ pour le transfert. Lors de la sortie, contient le numéro d’image de la trame qui suit la dernière image utilisée dans le transfert.

[in] NumberOfPackets

Nombre total de paquets isochroniques requis pour contenir la mémoire tampon de transfert. Indique également le nombre d’éléments dans le tableau pointé par IsoPacketDescriptors.

[out] IsoPacketDescriptors

Tableau de structures USBD_ISO_PACKET_DESCRIPTOR . Une fois le transfert terminé, chaque élément contient le status et la taille du paquet isochrone.

[in, optional] Overlapped

Pointeur vers une structure OVERLAPPED utilisée pour les opérations asynchrones.

Valeur retournée

WinUsb_ReadIsochPipe retourne TRUE si l’opération réussit. Sinon, cette fonction retourne FALSE et l’appelant peut récupérer l’erreur journalisée en appelant GetLastError.

Remarques

WinUsb_ReadIsochPipe paquete la mémoire tampon de transfert afin que dans chaque intervalle de 1 ms, l’hôte puisse recevoir le nombre maximal d’octets autorisés par intervalle. Le nombre maximal d’octets est spécifié par le descripteur de point de terminaison pour les points de terminaison complets et haut débit, et par le descripteur de compagnon de point de terminaison pour les points de terminaison SuperSpeed. Si l’appelant envoie plusieurs demandes de lecture pour diffuser des données à partir de l’appareil, la taille de transfert doit être un multiple des octets maximum par intervalle (comme retourné par WinUsb_QueryPipeEx) * 8 / intervalle.

En raison de l’empaquetage de transfert utilisé dans l’interface en mode noyau sous-jacente, la notification de latence la plus faible à une application ou à un pilote est d’intervalles de 1 ms.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8.1
Serveur minimal pris en charge Windows Server 2012 R2
Plateforme cible Universal
En-tête winusb.h (inclure Winusb.h)
Bibliothèque Winusb.lib
DLL Winusb.dll

Voir aussi

Envoyer des transferts isochrones USB à partir d’une application de bureau WinUSB

Fonctions WinUSB