Fungsi WaitCommEvent (winbase.h)
Menunggu peristiwa terjadi untuk perangkat komunikasi tertentu. Kumpulan peristiwa yang dipantau oleh fungsi ini terkandung dalam masker peristiwa yang terkait dengan handel perangkat.
BOOL WaitCommEvent(
[in] HANDLE hFile,
[out] LPDWORD lpEvtMask,
[in] LPOVERLAPPED lpOverlapped
);
[in] hFile
Handel ke perangkat komunikasi. Fungsi CreateFile mengembalikan handel ini.
[out] lpEvtMask
Penunjuk ke variabel yang menerima masker yang menunjukkan jenis peristiwa yang terjadi. Jika terjadi kesalahan, nilainya adalah nol; jika tidak, ini adalah salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Jeda terdeteksi pada input. |
|
Status perubahan sinyal CTS (clear-to-send). |
|
Status perubahan sinyal DSR (data-set-ready). |
|
Terjadi kesalahan status baris. Kesalahan status baris CE_FRAME, CE_OVERRUN, dan CE_RXPARITY. |
|
Indikator cincin terdeteksi. |
|
Status sinyal RLSD (receive-line-signal-detect) berubah. |
|
Karakter diterima dan ditempatkan di buffer input. |
|
Karakter peristiwa diterima dan ditempatkan di buffer input. Karakter peristiwa ditentukan dalam struktur DCB perangkat, yang diterapkan ke port serial dengan menggunakan fungsi SetCommState . |
|
Karakter terakhir dalam buffer output dikirim. |
[in] lpOverlapped
Penunjuk ke struktur yang TUMPANG TINDIH . Struktur ini diperlukan jika hFile dibuka dengan FILE_FLAG_OVERLAPPED.
Jika hFile dibuka dengan FILE_FLAG_OVERLAPPED, parameter lpOverlapped tidak boleh NULL. Ini harus menunjuk ke struktur TUMPANG TINDIH yang valid. Jika hFile dibuka dengan FILE_FLAG_OVERLAPPED dan lpOverlapped adalah NULL, fungsi dapat salah melaporkan bahwa operasi selesai.
Jika hFile dibuka dengan FILE_FLAG_OVERLAPPED dan lpOverlapped bukan NULL, WaitCommEvent dilakukan sebagai operasi yang tumpang tindih. Dalam hal ini, struktur YANG TUMPANG TINDIH harus berisi handel ke objek peristiwa reset manual (dibuat dengan menggunakan fungsi CreateEvent ).
Jika hFile tidak dibuka dengan FILE_FLAG_OVERLAPPED, WaitCommEvent tidak kembali sampai salah satu peristiwa yang ditentukan atau terjadi kesalahan.
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Fungsi WaitCommEvent memantau serangkaian peristiwa untuk sumber daya komunikasi tertentu. Untuk mengatur dan mengkueri masker peristiwa saat ini dari sumber daya komunikasi, gunakan fungsi SetCommMask dan GetCommMask .
Jika operasi yang tumpang tindih tidak dapat segera diselesaikan, fungsi mengembalikan FALSE dan fungsi GetLastError mengembalikan ERROR_IO_PENDING, yang menunjukkan bahwa operasi dijalankan di latar belakang. Ketika ini terjadi, sistem mengatur anggota hEvent dari struktur YANG TUMPANG TINDIH ke status tidak diberi sinyal sebelum WaitCommEvent kembali, dan kemudian mengaturnya ke status yang disinyalir ketika salah satu peristiwa yang ditentukan atau kesalahan terjadi. Proses panggilan dapat menggunakan salah satu fungsi tunggu untuk menentukan status objek peristiwa lalu menggunakan fungsi GetOverlappedResult untuk menentukan hasil operasi WaitCommEvent . GetOverlappedResult melaporkan keberhasilan atau kegagalan operasi, dan variabel yang ditunjukkan oleh parameter lpEvtMask diatur untuk menunjukkan peristiwa yang terjadi.
Jika proses mencoba mengubah masker peristiwa handel perangkat dengan menggunakan fungsi SetCommMask saat operasi WaitCommEvent yang tumpang tindih sedang berlangsung, WaitCommEvent akan segera kembali. Variabel yang diacu oleh parameter lpEvtMask diatur ke nol.
Misalnya, lihat Memantau Peristiwa Komunikasi.
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | winbase.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |