Bagikan melalui


IOCTL_SERIAL_WAIT_ON_MASK IOCTL (ntddser.h)

Permintaan IOCTL_SERIAL_WAIT_ON_MASK digunakan untuk menunggu terjadinya peristiwa tunggu yang ditentukan dengan menggunakan permintaan IOCTL_SERIAL_SET_WAIT_MASK .

Permintaan wait-on-mask selesai setelah salah satu peristiwa berikut terjadi:

  • Peristiwa tunggu terjadi yang ditentukan oleh permintaan set-wait-mask terbaru.
  • Permintaan IOCTL_SERIAL_SET_WAIT_MASK diterima saat permintaan wait-on-mask tertunda. Driver menyelesaikan permintaan wait-on-mask yang tertunda dengan status STATUS_SUCCESS dan masker tunggu output diatur ke nol.
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 SERIAL_EV_XXX.

Klien mengirimkan permintaan IOCTL_SERIAL_WAIT_ON_MASK untuk menunggu terjadinya peristiwa yang ditentukan dalam masker tunggu yang disediakan oleh permintaan IOCTL_SERIAL_SET_WAIT_MASK terbaru. Jika satu atau beberapa peristiwa dalam masker tunggu saat ini terjadi sebelum permintaan IOCTL_SERIAL_WAIT_ON_MASK dikirim, permintaan ini segera diselesaikan dengan status STATUS_SUCCESS dan nilai masker output yang mengidentifikasi peristiwa. Jika tidak ada peristiwa dalam masker tunggu yang terjadi sebelum permintaan IOCTL_SERIAL_WAIT_ON_MASK dikirim, permintaan ini ditandai sebagai tertunda, dan menunggu dalam antrean pengontrol serial untuk terjadinya peristiwa berikutnya di masker tunggu saat ini.

Setelah permintaan IOCTL_SERIAL_WAIT_ON_MASK klien selesai dengan status STATUS_SUCCESS dan nilai masker output nonzero, klien dapat mengirim permintaan IOCTL_SERIAL_WAIT_ON_MASK baru untuk menunggu peristiwa lain di masker tunggu saat ini. Hanya peristiwa baru yang terjadi setelah permintaan IOCTL_SERIAL_WAIT_ON_MASK sebelumnya selesai akan menyebabkan permintaan IOCTL_SERIAL_WAIT_ON_MASK baru selesai dengan status STATUS_SUCCESS dan nilai masker output bukan nol.

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

Tidak ada.

Panjang buffer input

Tidak ada.

Buffer output

Buffer AssociatedIrp.System menunjuk ke buffer ULONG yang menyimpan masker tunggu acara. Masker tunggu peristiwa menunjukkan peristiwa tunggu mana yang terjadi. Masker tunggu peristiwa diatur ke nol atau ke bitwise-OR dari satu atau beberapa bit bendera SERIAL_EV_XXX .

Panjang buffer output

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

Blok status

Anggota Informasi diatur ke ukuran, dalam byte, dari ULONG.

Anggota Status diatur ke salah satu Nilai Status Generik untuk Permintaan Kontrol Perangkat Serial. Status STATUS_INVALID_PARAMETER menunjukkan bahwa tidak ada peristiwa tunggu yang ditetapkan, atau permintaan wait-on-mask sudah tertunda.

Persyaratan

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

Lihat juga

IOCTL_SERIAL_SET_WAIT_MASK

SERIAL_EV_XXX