EVT_SERCX_PURGE fungsi panggilan balik (sercx.h)

Fungsi panggilan balik peristiwa EvtSerCxPurge dipanggil oleh ekstensi kerangka kerja serial (SerCx) untuk membersihkan buffer perangkat keras pengontrol serial.

Sintaks

EVT_SERCX_PURGE EvtSercxPurge;

NTSTATUS EvtSercxPurge(
  [in] WDFDEVICE Device,
  [in] ULONG PurgeMask
)
{...}

Parameter

[in] Device

Handel WDFDEVICE ke objek perangkat kerangka kerja yang mewakili pengontrol serial.

[in] PurgeMask

Sekumpulan bendera yang menjelaskan buffer perangkat keras yang akan dibersihkan. Saat ini, tidak ada bendera yang didefinisikan untuk operasi pembersihan yang dilakukan oleh pengontrol serial. Untuk informasi selengkapnya, lihat Keterangan.

Mengembalikan nilai

Fungsi EvtSerCxPurge mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, kode status kesalahan akan dikembalikan.

Keterangan

Driver pengontrol serial mengimplementasikan fungsi panggilan balik ini. SerCx memanggil fungsi ini ketika klien (aplikasi atau driver periferal) mengirim permintaan kontrol IOCTL_SERIAL_PURGE yang mengharuskan buffer perangkat keras yang dikelola oleh pengontrol serial dihapus menyeluruh.

SerCx melakukan operasi pembersihan yang ditunjuk oleh bendera yang tercantum dalam tabel berikut.

Bit bendera Makna
SERIAL_PURGE_RXABORT Hapus menyeluruh semua permintaan baca.
SERIAL_PURGE_RXCLEAR Hapus menyeluruh buffer input, jika ada. Setiap data yang diterima dalam buffer ini dibuang.
SERIAL_PURGE_TXABORT Hapus menyeluruh semua permintaan tulis.
SERIAL_PURGE_TXCLEAR Hapus menyeluruh buffer output, jika ada. Setiap mengirimkan data dalam buffer ini dibuang.
 

Fungsi EvtSerCxPurge tidak akan pernah menerima permintaan penghapusan menyeluruh yang berisi bendera apa pun dalam tabel ini. Bendera SERIAL_PURGE_XXX ditentukan dalam file header Ntddser.h.

Saat ini, tidak ada bendera SERIAL_PURGE_XXX yang didefinisikan untuk menunjuk operasi pembersihan yang dilakukan oleh driver pengontrol serial, dan driver pengontrol serial tidak boleh melakukan operasi penghapusan menyeluruh sebagai respons terhadap panggilan EvtSerCxPurge .

Jika permintaan kontrol IOCTL_SERIAL_PURGE mengharuskan permintaan baca atau tulis yang tertunda dibatalkan, SerCx membatalkan permintaan ini sebelum memanggil fungsi EvtSerCxPurge .

Untuk mendaftarkan fungsi panggilan balik EvtSerCxPurge , driver pengontrol memanggil metode SerCxInitialize selama panggilan balik EvtDriverDeviceAdd .

Contoh

Jenis fungsi untuk panggilan balik ini dinyatakan dalam Sercx.h, sebagai berikut.

typedef NTSTATUS
  EVT_SERCX_PURGE(
    __in WDFDEVICE Device,
    __in ULONG PurgeMask
    );

Untuk menentukan fungsi panggilan balik EvtSerCxPurge yang diberi nama MyEvtSerCxPurge, Anda harus terlebih dahulu memberikan deklarasi fungsi yang diperlukan Pengverifikasi Driver Statis (SDV) dan alat verifikasi lainnya, sebagai berikut.

EVT_SERCX_PURGE MyEvtSerCxPurge;

Kemudian, terapkan fungsi panggilan balik Anda sebagai berikut.

NTSTATUS
  MyEvtSerCxPurge(
    __in WDFDEVICE Device,
    __in ULONG PurgeMask
    )
{ ... }

Untuk informasi selengkapnya tentang persyaratan SDV untuk deklarasi fungsi, lihat Mendeklarasikan Fungsi Menggunakan Jenis Peran Fungsi untuk Driver KMDF.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 8.
Target Platform Desktop
Header sercx.h
IRQL Dipanggil di IRQL <= DISPATCH_LEVEL

Lihat juga

EvtDriverDeviceAdd

IOCTL_SERIAL_PURGE

SerCxInitialize