WTSVirtualChannelRead 関数 (wtsapi32.h)
仮想チャネルのサーバー側からデータを読み取ります。
WTSVirtualChannelRead は、仮想チャネルのクライアント側で VirtualChannelWrite 呼び出しによって書き込まれたデータを読み取ります。
構文
BOOL WTSVirtualChannelRead(
[in] HANDLE hChannelHandle,
[in] ULONG TimeOut,
[out] PCHAR Buffer,
[in] ULONG BufferSize,
[out] PULONG pBytesRead
);
パラメーター
[in] hChannelHandle
WTSVirtualChannelOpen 関数によって開かれた仮想チャネルへのハンドル。
[in] TimeOut
タイムアウトをミリ秒単位で指定します。 TimeOut が 0 の場合、読み取るデータがない場合、WTSVirtualChannelRead は直ちにを返します。 TimeOut が INFINITE (Winbase.h で定義) の場合、関数は読み取るデータが存在するまで無期限に待機します。
[out] Buffer
仮想チャネルのサーバー側から読み取られたデータのチャンクを受け取るバッファーへのポインター。 サーバーが 1 つの WTSVirtualChannelRead 呼び出しで受信できる最大データ量は 、CHANNEL_CHUNK_LENGTH バイトです。 クライアントの VirtualChannelWrite 呼び出しで大きなデータ ブロックが書き込まれる場合、サーバーは複数の WTSVirtualChannelRead 呼び出しを行う必要があります。
場合によっては、リモート デスクトップ サービスは WTSVirtualChannelRead 関数によって読み取られたデータの各チャンクの先頭にCHANNEL_PDU_HEADER構造を配置します。 これは、クライアント DLL が VirtualChannelInit 関数を呼び出して仮想チャネルを初期化するときに、CHANNEL_OPTION_SHOW_PROTOCOL オプションを設定した場合に発生します。 これは、チャネルが IWTSVirtualChannel::Write メソッドを使用して書き込まれた動的仮想チャネルである場合にも発生します。 それ以外の場合、バッファーは VirtualChannelWrite 呼び出しで書き込まれたデータのみを受け取ります。
[in] BufferSize
Buffer のサイズをバイト単位で指定 します。 Buffer 内のデータのチャンクの前にCHANNEL_PDU_HEADER構造体がある場合、このパラメーターの値は少なくともCHANNEL_PDU_LENGTHする必要があります。 それ以外の場合、このパラメーターの値は少なくとも CHANNEL_CHUNK_LENGTHする必要があります。
[out] pBytesRead
読み取られたバイト数を受け取る変数へのポインター。
戻り値
関数が成功した場合、戻り値は 0 以外の値になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | wtsapi32.h |
Library | Wtsapi32.lib |
[DLL] | Wtsapi32.Dll |