WinUsb_ReadIsochPipeAsap, fonction (winusb.h)
La fonction WinUsb_ReadIsochPipeAsap envoie une requête qui lit les données d’un point de terminaison IN isochronous.
Syntaxe
BOOL WinUsb_ReadIsochPipeAsap(
[in] WINUSB_ISOCH_BUFFER_HANDLE BufferHandle,
[in] ULONG Offset,
[in] ULONG Length,
[in] BOOL ContinueStream,
[in] ULONG NumberOfPackets,
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] ContinueStream
Indique que le transfert ne doit être envoyé que s’il peut être planifié dans la première image après le dernier transfert en attente.
[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.
IsoPacketDescriptors
Tableau de USBD_ISO_PACKET_DESCRIPTOR qui reçoit les détails de chaque paquet isochroque dans le transfert.
[in, optional] Overlapped
Pointeur vers une structure OVERLAPPED utilisée pour les opérations asynchrones.
Valeur retournée
WinUsb_ReadIsochPipeAsap 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.
Si l’appelant définit ContinueStream sur TRUE, le transfert échoue si Winusb.sys ne parvient pas à planifier le transfert pour continuer le flux sans supprimer une ou plusieurs images.
Remarques
WinUsb_ReadIsochPipeAsap permet à la pile de pilotes USB de choisir le numéro de cadre de départ pour le transfert. Si un ou plusieurs transferts sont déjà en attente sur le point de terminaison, le transfert est planifié pour le numéro de trame immédiatement après le dernier numéro de trame du dernier transfert actuellement en attente.
WinUsb_ReadIsochPipeAsap paquete la mémoire tampon de transfert afin que dans chaque intervalle, 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
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