Compartilhar via


Função WTSVirtualChannelRead (wtsapi32.h)

Lê dados do final do servidor de um canal virtual.

WTSVirtualChannelRead lê os dados gravados por uma chamada VirtualChannelWrite no final do cliente do canal virtual.

Sintaxe

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

Parâmetros

[in] hChannelHandle

Manipule para um canal virtual aberto pela função WTSVirtualChannelOpen .

[in] TimeOut

Especifica o tempo limite, em milissegundos. Se TimeOut for zero, WTSVirtualChannelRead retornará imediatamente se não houver dados para leitura. Se TimeOut for INFINITE (definido em Winbase.h), a função aguardará indefinidamente até que haja dados para leitura.

[out] Buffer

Ponteiro para um buffer que recebe uma parte dos dados lidos da extremidade do servidor do canal virtual. A quantidade máxima de dados que o servidor pode receber em uma única chamada WTSVirtualChannelRead é CHANNEL_CHUNK_LENGTH bytes. Se a chamada VirtualChannelWrite do cliente gravar um bloco maior de dados, o servidor deverá fazer várias chamadas WTSVirtualChannelRead .

Em determinados casos, os Serviços de Área de Trabalho Remota coloca uma estrutura CHANNEL_PDU_HEADER no início de cada parte dos dados lidos pela função WTSVirtualChannelRead . Isso ocorrerá se a DLL do cliente definir a opção CHANNEL_OPTION_SHOW_PROTOCOL quando chamar a função VirtualChannelInit para inicializar o canal virtual. Isso também ocorrerá se o canal for um canal virtual dinâmico gravado usando o método IWTSVirtualChannel::Write . Caso contrário, o buffer receberá apenas os dados gravados na chamada VirtualChannelWrite .

[in] BufferSize

Especifica o tamanho, em bytes, de Buffer. Se a parte de dados no Buffer for precedida por uma estrutura CHANNEL_PDU_HEADER , o valor desse parâmetro deverá ser pelo menos CHANNEL_PDU_LENGTH. Caso contrário, o valor desse parâmetro deve ser pelo menos CHANNEL_CHUNK_LENGTH.

[out] pBytesRead

Ponteiro para uma variável que recebe o número de bytes lidos.

Retornar valor

Se a função for bem-sucedida, o valor retornado será um valor diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

ObservaçãoWTSVirtualChannelRead não é thread-safe. Para acessar um canal virtual de vários threads ou fazer E/S assíncrona por meio de um canal virtual, use WTSVirtualChannelQuery com WTSVirtualFileHandle.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho wtsapi32.h
Biblioteca Wtsapi32.lib
DLL Wtsapi32.Dll

Confira também

CHANNEL_PDU_HEADER

IWTSVirtualChannel::Write

VirtualChannelWrite

WTSVirtualChannelQuery

WTSVirtualChannelWrite