IOCTL_SERIAL_PURGE IOCTL (ntddser.h)
Permintaan IOCTL_SERIAL_PURGE membatalkan permintaan yang ditentukan dan menghapus data dari buffer yang ditentukan. Permintaan penghapusan menyeluruh dapat digunakan untuk membatalkan semua permintaan baca dan menulis permintaan dan untuk menghapus semua data dari buffer penerima dan buffer pengiriman.
Penyelesaian permintaan penghapusan menyeluruh tidak menunjukkan bahwa permintaan yang dibatalkan oleh permintaan pembersihan selesai. Klien harus memverifikasi bahwa permintaan yang dihapus menyeluruh selesai sebelum klien membebaskan atau menggunakan kembali RUNPS yang sesuai.
Kode utama
Buffer input
Anggota AssociatedIrp.SystemBuffer menunjuk ke ULONG yang dialokasikan klien yang digunakan untuk memasukkan masker pembersihan. Klien mengatur masker penghapusan menyeluruh ke bitwise-OR dari satu atau beberapa bendera pembersihan berikut:
SERIAL_PURGE_RXABORT
-
Hapus menyeluruh semua permintaan baca (IRP_MJ_READ).
SERIAL_PURGE_RXCLEAR
-
Hapus menyeluruh buffer penerima, jika ada.
SERIAL_PURGE_TXABORT
-
Menghapus menyeluruh semua permintaan tulis (IRP_MJ_WRITE).
SERIAL_PURGE_TXCLEAR
-
Hapus menyeluruh buffer pengiriman, jika ada.
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
Jika permintaan berhasil, anggota Informasi diatur ke ukuran, dalam byte, dari ULONG. Jika tidak, 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 pembersihan tidak valid.
Keterangan
Serial.sys dan SerCx memungkinkan permintaan IOCTL_SERIAL_PURGE untuk menentukan kombinasi satu atau beberapa bendera SERIAL_PURGE_XXX . Namun, SerCx2 lebih ketat.
SerCx2 mengharuskan semua permintaan baca dibersihkan jika buffer penerima dibersihkan. Dengan demikian, jika bendera SERIAL_PURGE_RXCLEAR diatur dalam permintaan IOCTL_SERIAL_PURGE , antrean permintaan I/O SerCx2 tidak boleh berisi permintaan baca, atau bendera SERIAL_PURGE_RXABORT harus ditetapkan. Jika tidak, permintaan IOCTL_SERIAL_PURGE gagal dengan kode status STATUS_INVALID_DEVICE_STATE.
Demikian pula, SerCx2 mengharuskan semua permintaan tulis dibersihkan jika buffer transmisi dibersihkan. Dengan demikian, jika bendera SERIAL_PURGE_TXCLEAR diatur dalam permintaan IOCTL_SERIAL_PURGE , antrean permintaan I/O SerCx2 tidak boleh berisi permintaan tulis, atau bendera SERIAL_PURGE_TXABORT harus ditetapkan. Jika tidak, permintaan IOCTL_SERIAL_PURGE gagal dengan kode status STATUS_INVALID_DEVICE_STATE.
Untuk informasi selengkapnya tentang SerCx2, SerCx, dan Serial.sys, lihat Gambaran Umum Driver Pengontrol Serial.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | ntddser.h (termasuk Ntddser.h) |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk