Partager via


Fonction WTSVirtualChannelRead (wtsapi32.h)

Lit les données à partir de l’extrémité du serveur d’un canal virtuel.

WTSVirtualChannelRead lit les données écrites par un appel VirtualChannelWrite à l’extrémité du client du canal virtuel.

Syntaxe

BOOL WTSVirtualChannelRead(
  [in]  HANDLE hChannelHandle,
  [in]  ULONG  TimeOut,
  [out] PCHAR  Buffer,
  [in]  ULONG  BufferSize,
  [out] PULONG pBytesRead
);

Paramètres

[in] hChannelHandle

Gérez un canal virtuel ouvert par la fonction WTSVirtualChannelOpen .

[in] TimeOut

Spécifie le délai d’attente, en millisecondes. Si TimeOut est égal à zéro, WTSVirtualChannelRead retourne immédiatement s’il n’y a pas de données à lire. Si TimeOut est INFINITE (défini dans Winbase.h), la fonction attend indéfiniment jusqu’à ce qu’il y ait des données à lire.

[out] Buffer

Pointeur vers une mémoire tampon qui reçoit un segment de données lues à partir de l’extrémité du serveur du canal virtuel. La quantité maximale de données que le serveur peut recevoir dans un seul appel WTSVirtualChannelRead est CHANNEL_CHUNK_LENGTH octets. Si l’appel VirtualChannelWrite du client écrit un bloc de données plus volumineux, le serveur doit effectuer plusieurs appels WTSVirtualChannelRead .

Dans certains cas, les services Bureau à distance placent une structure CHANNEL_PDU_HEADER au début de chaque bloc de données lu par la fonction WTSVirtualChannelRead . Cela se produit si la DLL cliente définit l’option CHANNEL_OPTION_SHOW_PROTOCOL lorsqu’elle appelle la fonction VirtualChannelInit pour initialiser le canal virtuel. Cela se produit également si le canal est un canal virtuel dynamique écrit dans à l’aide de la méthode IWTSVirtualChannel ::Write . Sinon, la mémoire tampon reçoit uniquement les données écrites dans l’appel VirtualChannelWrite .

[in] BufferSize

Spécifie la taille, en octets, de La mémoire tampon. Si le segment de données dans Buffer est précédé d’une structure CHANNEL_PDU_HEADER , la valeur de ce paramètre doit être au moins CHANNEL_PDU_LENGTH. Sinon, la valeur de ce paramètre doit être au moins CHANNEL_CHUNK_LENGTH.

[out] pBytesRead

Pointeur vers une variable qui reçoit le nombre d’octets lus.

Valeur retournée

Si la fonction réussit, la valeur de retour est une valeur différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

RemarqueWTSVirtualChannelRead n’est pas thread safe. Pour accéder à un canal virtuel à partir de plusieurs threads, ou pour effectuer des E/S asynchrones via un canal virtuel, utilisez WTSVirtualChannelQuery avec WTSVirtualFileHandle.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête wtsapi32.h
Bibliothèque Wtsapi32.lib
DLL Wtsapi32.Dll

Voir aussi

CHANNEL_PDU_HEADER

IWTSVirtualChannel ::Write

VirtualChannelWrite

WTSVirtualChannelQuery

WTSVirtualChannelWrite