Bagikan melalui


IOCTL_SERIAL_SET_WAIT_MASK IOCTL (ntddser.h)

Permintaan IOCTL_SERIAL_SET_WAIT_MASK mengonfigurasi driver pengontrol serial untuk memberi tahu klien setelah terjadinya salah satu rangkaian peristiwa tunggu yang ditentukan.

Klien dapat menunggu peristiwa tunggu yang diwakili oleh bit bendera SERIAL_EV_RXCHAR melalui SERIAL_EV_EVENT2. Untuk informasi selengkapnya tentang bendera peristiwa ini, lihat bagian Keterangan.

Klien menentukan peristiwa tunggu dengan mengatur masker tunggu peristiwa input ke bitwise-OR dari satu atau beberapa bendera peristiwa. Klien dapat menghapus semua peristiwa tunggu dengan mengatur masker tunggu peristiwa input ke nol.

Klien menggunakan permintaan IOCTL_SERIAL_WAIT_ON_MASK untuk menunggu terjadinya peristiwa tunggu. Jika permintaan wait-on-mask sudah tertunda saat permintaan set-wait-mask diproses, permintaan tunggu-on-event yang tertunda selesai dengan status STATUS_SUCCESS dan masker peristiwa tunggu output diatur ke nol.

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

Anggota AssociatedIrp.SystemBuffer menunjuk ke buffer ULONG yang dialokasikan dan diatur klien ke masker tunggu acara. Masker tunggu diatur ke nol atau ke bitwise-OR dari satu atau beberapa bit bendera SERIAL_EV_XXX .

Panjang buffer input

Anggota Parameters.DeviceIoControl.InputBufferLength diatur ke ukuran, dalam byte, dari ULONG.

Buffer output

Tidak ada.

Panjang buffer output

Tidak ada.

Blok status

Anggota Informasi diatur ke nol.

Anggota Status diatur ke salah satu Nilai Status Generik untuk Permintaan Kontrol Perangkat Serial. Status STATUS_INVALID_PARAMETER menunjukkan bahwa masker tunggu input tidak valid.

Keterangan

Konstanta SERIAL_EV_XXX menentukan bit bendera di masker tunggu untuk port serial.

#define SERIAL_EV_RXCHAR     0x0001
#define SERIAL_EV_RXFLAG     0x0002
#define SERIAL_EV_TXEMPTY    0x0004
#define SERIAL_EV_CTS        0x0008
#define SERIAL_EV_DSR        0x0010
#define SERIAL_EV_RLSD       0x0020
#define SERIAL_EV_BREAK      0x0040
#define SERIAL_EV_ERR        0x0080
#define SERIAL_EV_RING       0x0100
#define SERIAL_EV_PERR       0x0200
#define SERIAL_EV_RX80FULL   0x0400
#define SERIAL_EV_EVENT1     0x0800
#define SERIAL_EV_EVENT2     0x1000

Konstanta SERIAL_EV_XXX menentukan jenis peristiwa yang dapat ditentukan dalam masker tunggu. Setelah klien (aplikasi atau driver periferal) membuka koneksi ke port serial, klien dapat menentukan masker tunggu yang menunjukkan jenis peristiwa yang perlu dipantau klien. Peristiwa ini adalah perubahan dalam status perangkat keras port serial. Ketika peristiwa di masker tunggu terjadi, klien akan diberi tahu.

Permintaan kontrol IOCTL_SERIAL_SET_WAIT_MASK dan IOCTL_SERIAL_GET_WAIT_MASK menggunakan masker tunggu peristiwa untuk menentukan serangkaian peristiwa di mana klien dapat menunggu. Nilai masker tunggu adalah nol atau bitwise-OR dari satu atau beberapa konstanta SERIAL_EV_XXX . Nilai masker tunggu nol menunjukkan bahwa klien tidak menunggu peristiwa apa pun.

Klien mengirimkan permintaan kontrol IOCTL_SERIAL_WAIT_ON_MASK untuk menunggu peristiwa di masker tunggu yang saat ini diatur. Driver pengontrol serial menyelesaikan permintaan ini ketika peristiwa di masker tunggu terjadi.

Tabel berikut menunjukkan bit bendera SERIAL_EV_XXX mana yang didukung oleh SerCx2, SerCx, dan Serial.sys. Entri Ya dalam tabel menunjukkan bahwa ekstensi kerangka kerja serial atau driver mendukung bit bendera yang sesuai. Entri Tidak menunjukkan bahwa bit bendera tidak didukung.

Bit bendera SerCx2 SerCx Serial.sys
SERIAL_EV_RXCHAR Ya Ya Ya
SERIAL_EV_RXFLAG See note. Tidak Ya
SERIAL_EV_TXEMPTY Ya Ya Ya
SERIAL_EV_CTS Ya Ya Ya
SERIAL_EV_DSR Ya Ya Ya
SERIAL_EV_RLSD See note. Ya Ya
SERIAL_EV_BREAK Ya Ya Ya
SERIAL_EV_ERR Ya Ya Ya
SERIAL_EV_RING See note. Ya Ya
SERIAL_EV_PERR See note. Tidak Tidak
SERIAL_EV_RX80FULL See note. Tidak Ya
SERIAL_EV_EVENT1 See note. Tidak Tidak
SERIAL_EV_EVENT2 See note. Tidak Tidak
 
Catatan SerCx2 mungkin atau mungkin tidak mendukung bit bendera dalam entri tabel yang ditunjukkan, tergantung pada driver pengontrol serial dan kemampuan perangkat keras pengontrol serial.
 
Untuk informasi selengkapnya tentang SerCx2, SerCx, dan Serial.sys, lihat Gambaran Umum Driver Pengontrol Serial.

Persyaratan

Persyaratan Nilai
Header ntddser.h (termasuk Ntddser.h)

Lihat juga

IOCTL_SERIAL_GET_CHARS

IOCTL_SERIAL_GET_WAIT_MASK

IOCTL_SERIAL_SET_CHARS

IOCTL_SERIAL_WAIT_ON_MASK

SERIAL_CHARS

SERIAL_STATUS