Função WaitCommEvent (winbase.h)

Aguarda que um evento ocorra para um dispositivo de comunicação especificado. O conjunto de eventos monitorados por essa função está contido na máscara de eventos associada ao identificador do dispositivo.

Sintaxe

BOOL WaitCommEvent(
  [in]  HANDLE       hFile,
  [out] LPDWORD      lpEvtMask,
  [in]  LPOVERLAPPED lpOverlapped
);

Parâmetros

[in] hFile

Um identificador para o dispositivo de comunicações. A função CreateFile retorna esse identificador.

[out] lpEvtMask

Um ponteiro para uma variável que recebe uma máscara que indica o tipo de evento que ocorreu. Se ocorrer um erro, o valor será zero; caso contrário, ele é um dos valores a seguir.

Valor Significado
EV_BREAK
0x0040
Uma quebra na entrada foi detectada.
EV_CTS
0x0008
O sinal CTS (limpar para enviar) alterou o estado.
EV_DSR
0x0010
O sinal DSR (pronto para conjunto de dados) alterou o estado.
EV_ERR
0x0080
Ocorreu um erro de status de linha. Os erros de status de linha são CE_FRAME, CE_OVERRUN e CE_RXPARITY.
EV_RING
0x0100
Um indicador de anel foi detectado.
EV_RLSD
0x0020
O sinal RLSD (receive-line-signal-detect) alterou o estado.
EV_RXCHAR
0x0001
Um caractere foi recebido e colocado no buffer de entrada.
EV_RXFLAG
0x0002
O caractere de evento foi recebido e colocado no buffer de entrada. O caractere de evento é especificado na estrutura DCB do dispositivo, que é aplicada a uma porta serial usando a função SetCommState .
EV_TXEMPTY
0x0004
O último caractere no buffer de saída foi enviado.

[in] lpOverlapped

Um ponteiro para uma estrutura OVERLAPPED. Essa estrutura será necessária se o hFile tiver sido aberto com FILE_FLAG_OVERLAPPED.

Se hFile foi aberto com FILE_FLAG_OVERLAPPED, o parâmetro lpOverlapped não deve ser NULL. Ele deve apontar para uma estrutura OVERLAPPED válida. Se hFile foi aberto com FILE_FLAG_OVERLAPPED e lpOverlapped é NULL, a função pode relatar incorretamente que a operação está concluída.

Se hFile foi aberto com FILE_FLAG_OVERLAPPED e lpOverlapped não é NULL, WaitCommEvent é executado como uma operação sobreposta. Nesse caso, a estrutura OVERLAPPED deve conter um identificador para um objeto de evento de redefinição manual (criado usando a função CreateEvent ).

Se hFile não tiver sido aberto com FILE_FLAG_OVERLAPPED, WaitCommEvent não retornará até que ocorra um dos eventos especificados ou um erro.

Valor retornado

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

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

Comentários

A função WaitCommEvent monitora um conjunto de eventos para um recurso de comunicação especificado. Para definir e consultar a máscara de evento atual de um recurso de comunicação, use as funções SetCommMask e GetCommMask .

Se a operação sobreposta não puder ser concluída imediatamente, a função retornará FALSE e a função GetLastError retornará ERROR_IO_PENDING, indicando que a operação está sendo executada em segundo plano. Quando isso acontece, o sistema define o membro hEvent da estrutura OVERLAPPED como o estado não sinalizado antes de WaitCommEvent retornar e, em seguida, define-o para o estado sinalizado quando ocorre um dos eventos especificados ou um erro. O processo de chamada pode usar uma das funções de espera para determinar o estado do objeto de evento e, em seguida, usar a função GetOverlappedResult para determinar os resultados da operação WaitCommEvent . GetOverlappedResult relata o êxito ou a falha da operação e a variável apontada pelo parâmetro lpEvtMask é definida para indicar o evento que ocorreu.

Se um processo tentar alterar a máscara de evento do identificador do dispositivo usando a função SetCommMask enquanto uma operação WaitCommEvent sobreposta estiver em andamento, WaitCommEvent retornará imediatamente. A variável apontada pelo parâmetro lpEvtMask é definida como zero.

Exemplos

Para obter um exemplo, consulte Monitorando eventos de comunicações.

Requisitos

   
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho winbase.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções de comunicação

Recursos de comunicação

CreateFile

DCB

GetCommMask

GetOverlappedResult

OVERLAPPED

SetCommMask

Setcommstate