Share via


WTSVirtualChannelRead-Funktion (wtsapi32.h)

Liest Daten vom Serverende eines virtuellen Kanals.

WTSVirtualChannelRead liest die Daten, die von einem VirtualChannelWrite-Aufruf am Clientende des virtuellen Kanals geschrieben wurden.

Syntax

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

Parameter

[in] hChannelHandle

Handle für einen virtuellen Kanal, der von der FUNKTION WTSVirtualChannelOpen geöffnet wird.

[in] TimeOut

Gibt das Timeout in Millisekunden an. Wenn TimeOut null ist, gibt WTSVirtualChannelRead sofort zurück, wenn keine Daten zu lesen sind. Wenn TimeOut INFINITE ist (in Winbase.h definiert), wartet die Funktion unbegrenzt, bis Daten gelesen werden.

[out] Buffer

Zeiger auf einen Puffer, der einen Datenblock empfängt, der vom Serverende des virtuellen Kanals gelesen wird. Die maximale Datenmenge, die der Server in einem einzelnen WTSVirtualChannelRead-Aufruf empfangen kann, beträgt CHANNEL_CHUNK_LENGTH Bytes. Wenn der VirtualChannelWrite-Aufruf des Clients einen größeren Datenblock schreibt, muss der Server mehrere WTSVirtualChannelRead-Aufrufe ausführen.

In bestimmten Fällen platziert Remotedesktopdienste eine CHANNEL_PDU_HEADER-Struktur am Anfang jedes Datenblocks, der von der WTSVirtualChannelRead-Funktion gelesen wird. Dies tritt auf, wenn die Client-DLL die Option CHANNEL_OPTION_SHOW_PROTOCOL festlegt, wenn die VirtualChannelInit-Funktion aufgerufen wird, um den virtuellen Kanal zu initialisieren. Dies tritt auch auf, wenn es sich bei dem Kanal um einen dynamischen virtuellen Kanal handelt, der mithilfe der IWTSVirtualChannel::Write-Methode geschrieben wird. Andernfalls empfängt der Puffer nur die Im VirtualChannelWrite-Aufruf geschriebenen Daten.

[in] BufferSize

Gibt die Größe des Puffers in Bytes an. Wenn dem Datenblock in Buffer eine CHANNEL_PDU_HEADER-Struktur vorangestellt wird, sollte der Wert dieses Parameters mindestens CHANNEL_PDU_LENGTH sein. Andernfalls sollte der Wert dieses Parameters mindestens CHANNEL_CHUNK_LENGTH sein.

[out] pBytesRead

Zeiger auf eine Variable, die die Anzahl der gelesenen Bytes empfängt.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Wert ungleich null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

HinweisWTSVirtualChannelRead ist nicht threadsicher. Verwenden Sie WTSVirtualChannelQuery mit WTSVirtualFileHandle, um über mehrere Threads auf einen virtuellen Kanal zuzugreifen oder asynchrone E/A-Vorgänge über einen virtuellen Kanal auszuführen.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile wtsapi32.h
Bibliothek Wtsapi32.lib
DLL Wtsapi32.Dll

Weitere Informationen

CHANNEL_PDU_HEADER

IWTSVirtualChannel::Write

VirtualChannelWrite

WTSVirtualChannelQuery

WTSVirtualChannelWrite