Condividi tramite


Funzione WTSVirtualChannelRead (wtsapi32.h)

Legge i dati dalla fine del server di un canale virtuale.

WTSVirtualChannelRead legge i dati scritti da una chiamata VirtualChannelWrite alla fine del client del canale virtuale.

Sintassi

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

Parametri

[in] hChannelHandle

Gestire in un canale virtuale aperto dalla funzione WTSVirtualChannelOpen .

[in] TimeOut

Specifica il timeout, espresso in millisecondi. Se TimeOut è zero, WTSVirtualChannelRead restituisce immediatamente se non sono presenti dati da leggere. Se TimeOut è INFINITE (definito in Winbase.h), la funzione attende per un periodo illimitato fino a quando non sono presenti dati da leggere.

[out] Buffer

Puntatore a un buffer che riceve un blocco di dati letti dalla fine del server del canale virtuale. La quantità massima di dati che il server può ricevere in una singola chiamata WTSVirtualChannelRead è CHANNEL_CHUNK_LENGTH byte. Se la chiamata VirtualChannelWrite del client scrive un blocco di dati più grande, il server deve effettuare più chiamate WTSVirtualChannelRead .

In alcuni casi, Servizi Desktop remoto inserisce una struttura CHANNEL_PDU_HEADER all'inizio di ogni blocco di dati letto dalla funzione WTSVirtualChannelRead . Ciò si verifica se la DLL client imposta l'opzione CHANNEL_OPTION_SHOW_PROTOCOL quando chiama la funzione VirtualChannelInit per inizializzare il canale virtuale. Ciò si verifica anche se il canale è un canale virtuale dinamico scritto in usando il metodo IWTSVirtualChannel::Write . In caso contrario, il buffer riceve solo i dati scritti nella chiamata VirtualChannelWrite .

[in] BufferSize

Specifica le dimensioni, in byte, di Buffer. Se il blocco di dati in Buffer sarà preceduto da una struttura CHANNEL_PDU_HEADER , il valore di questo parametro deve essere almeno CHANNEL_PDU_LENGTH. In caso contrario, il valore di questo parametro deve essere almeno CHANNEL_CHUNK_LENGTH.

[out] pBytesRead

Puntatore a una variabile che riceve il numero di byte letti.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è un valore diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

NotaWTSVirtualChannelRead non è thread-safe. Per accedere a un canale virtuale da più thread o per eseguire operazioni di I/O asincrone tramite un canale virtuale, usare WTSVirtualChannelQuery con WTSVirtualFileHandle.
 

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione wtsapi32.h
Libreria Wtsapi32.lib
DLL Wtsapi32.Dll

Vedi anche

CHANNEL_PDU_HEADER

IWTSVirtualChannel::Write

VirtualChannelWrite

WTSVirtualChannelQuery

WTSVirtualChannelWrite