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 為零, WTSVirtualChannelRead 會在沒有要讀取的數據時立即傳回。 如果 TimeOut 是 Winbase.h 中定義的 INFINITE () ,則函式會無限期等候直到有數據讀取為止。
[out] Buffer
緩衝區的指標,接收從虛擬通道的伺服器端讀取的數據區塊。 伺服器可以在單一 WTSVirtualChannelRead 呼叫中接收的最大數據量 是CHANNEL_CHUNK_LENGTH 位元組。 如果用戶端的 VirtualChannelWrite 呼叫寫入較大的數據區塊,伺服器必須進行多個 WTSVirtualChannelRead 呼叫。
在某些情況下,遠端桌面服務會將 CHANNEL_PDU_HEADER 結構放在 WTSVirtualChannelRead 函式讀取的每個數據區塊開頭。 如果用戶端 DLL 在呼叫 VirtualChannelInit 函式來初始化虛擬通道時,會設定 CHANNEL_OPTION_SHOW_PROTOCOL 選項,就會發生這種情況。 如果通道是使用 IWTSVirtualChannel::Write 方法寫入的動態虛擬通道,也會發生這種情況。 否則,緩衝區只會接收在 VirtualChannelWrite 呼叫中寫入的數據。
[in] BufferSize
指定 Buffer 的大小,以位元組為單位。 如果 Buffer 中的數據區塊前面會有 CHANNEL_PDU_HEADER 結構,則此參數的值至少應 CHANNEL_PDU_LENGTH。 否則,此參數的值應該至少 CHANNEL_CHUNK_LENGTH。
[out] pBytesRead
接收讀取位元組數目的變數指標。
傳回值
如果函式成功,則傳回值是非零值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | wtsapi32.h |
程式庫 | Wtsapi32.lib |
Dll | Wtsapi32.Dll |