Función WaitCommEvent (winbase.h)
Espera a que se produzca un evento para un dispositivo de comunicaciones especificado. El conjunto de eventos supervisados por esta función se encuentra en la máscara de eventos asociada al identificador del dispositivo.
Sintaxis
BOOL WaitCommEvent(
[in] HANDLE hFile,
[out] LPDWORD lpEvtMask,
[in] LPOVERLAPPED lpOverlapped
);
Parámetros
[in] hFile
Identificador del dispositivo de comunicaciones. La función CreateFile devuelve este identificador.
[out] lpEvtMask
Puntero a una variable que recibe una máscara que indica el tipo de evento que se produjo. Si se produce un error, el valor es cero; de lo contrario, es uno de los siguientes valores.
Valor | Significado |
---|---|
|
Se ha detectado una interrupción en la entrada. |
|
El estado de la señal CTS (despejado a envío). |
|
El estado de la señal DSR (listo para conjuntos de datos) ha cambiado. |
|
Error de estado de línea. Los errores de estado de línea son CE_FRAME, CE_OVERRUN y CE_RXPARITY. |
|
Se ha detectado un indicador de llamada. |
|
El estado de la señal RLSD (receive-line-signal-detect). |
|
Se ha recibido y colocado un carácter en el búfer de entrada. |
|
Se recibió el carácter de evento y se colocó en el búfer de entrada. El carácter de evento se especifica en la estructura DCB del dispositivo, que se aplica a un puerto serie mediante la función SetCommState . |
|
Se envió el último carácter del búfer de salida. |
[in] lpOverlapped
Puntero a una estructura OVERLAPPED. Esta estructura es necesaria si hFile se abrió con FILE_FLAG_OVERLAPPED.
Si hFile se abrió con FILE_FLAG_OVERLAPPED, el parámetro lpOverlapped no debe ser NULL. Debe apuntar a una estructura SUPERPUESTA válida. Si hFile se abrió con FILE_FLAG_OVERLAPPED y lpOverlapped es NULL, la función puede notificar incorrectamente que la operación se ha completado.
Si hFile se abrió con FILE_FLAG_OVERLAPPED y lpOverlapped no es NULL, WaitCommEvent se realiza como una operación superpuesta. En este caso, la estructura SUPERPUESTA debe contener un identificador para un objeto de evento de restablecimiento manual (creado mediante la función CreateEvent ).
Si hFile no se abrió con FILE_FLAG_OVERLAPPED, WaitCommEvent no devuelve hasta que se produce uno de los eventos especificados o se produce un error.
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Comentarios
La función WaitCommEvent supervisa un conjunto de eventos para un recurso de comunicaciones especificado. Para establecer y consultar la máscara de eventos actual de un recurso de comunicaciones, use las funciones SetCommMask y GetCommMask .
Si la operación superpuesta no se puede completar inmediatamente, la función devuelve FALSE y la función GetLastError devuelve ERROR_IO_PENDING, lo que indica que la operación se está ejecutando en segundo plano. Cuando esto sucede, el sistema establece el miembro hEvent de la estructura SUPERPUESTA en el estado no señalado antes de que WaitCommEvent vuelva y, a continuación, lo establece en el estado señalado cuando se produce uno de los eventos especificados o un error. El proceso de llamada puede usar una de las funciones de espera para determinar el estado del objeto de evento y, a continuación, usar la función GetOverlappedResult para determinar los resultados de la operación WaitCommEvent . GetOverlappedResult informa del éxito o error de la operación, y la variable a la que apunta el parámetro lpEvtMask se establece para indicar el evento que se produjo.
Si un proceso intenta cambiar la máscara de eventos del controlador del dispositivo mediante la función SetCommMask mientras una operación WaitCommEvent superpuesta está en curso, WaitCommEvent devuelve inmediatamente. La variable a la que apunta el parámetro lpEvtMask se establece en cero.
Ejemplos
Para obtener un ejemplo, consulte Supervisión de eventos de comunicaciones.
Requisitos
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | winbase.h (incluya Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |