EVT_SERCX_RECEIVE fungsi panggilan balik (sercx.h)
Fungsi panggilan balik peristiwa EvtSerCxReceive menyiapkan perangkat pengontrol serial (UART) untuk melakukan operasi baca (terima).
Sintaks
EVT_SERCX_RECEIVE EvtSercxReceive;
NTSTATUS EvtSercxReceive(
[in] WDFDEVICE Device,
[in] size_t Length
)
{...}
Parameter
[in] Device
Handel WDFDEVICE ke objek perangkat kerangka kerja yang mewakili pengontrol serial.
[in] Length
Jumlah byte yang akan diterima. Driver pengontrol dapat menggunakan nilai ini sebagai petunjuk untuk memutuskan apakah akan menggunakan PIO atau DMA untuk melakukan transfer data.
Nilai kembali
Fungsi EvtSerCxReceive mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, kode status kesalahan akan dikembalikan.
Keterangan
Ekstensi kerangka kerja serial (SerCx) memanggil fungsi ini untuk mengonfigurasi perangkat keras pengontrol untuk menerima data. Jika perlu, fungsi EvtSerCxReceive dapat mengaktifkan interupsi.
Fungsi EvtSerCxReceive tidak selalu membaca data input dari buffer FIFO penerima. Bergantung pada perangkat keras pengontrol serial atau jenis transfer, fungsi ini mungkin menyiapkan operasi DMA untuk membaca data, atau mungkin menjadwalkan fungsi DPC transmisi/terima untuk membaca data. Driver pengontrol serial mengimplementasikan fungsi DPC ini untuk menerima data dari pengontrol dan untuk mengirimkan data ke pengontrol serial. Selama DPC, fungsi DPC menentukan apakah data tersedia untuk diterima dan, jika demikian, menggunakan PIO untuk membaca data dari FIFO yang diterima di pengontrol serial.
Jika FIFO penerima di pengontrol serial kosong atau hampir kosong, tetapi gangguan tanda air tinggi FIFO diaktifkan, rutinitas DPC hanya dapat kembali. Nantinya, ISR driver pengontrol dapat menjadwalkan rutinitas DPC untuk dijalankan, dan rutinitas ini dapat membaca lebih banyak data dari FIFO penerima.
Untuk mendaftarkan fungsi panggilan balik EvtSerCxReceive , 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_RECEIVE(
__in WDFDEVICE Device
);
Untuk menentukan fungsi panggilan balik EvtSerCxReceive yang diberi nama MyEvtSerCxReceive
, Anda harus terlebih dahulu memberikan deklarasi fungsi yang diperlukan Pemverifikasi Driver Statis (SDV) dan alat verifikasi lainnya, sebagai berikut.
EVT_SERCX_RECEIVE MyEvtSerCxReceive;
Kemudian, terapkan fungsi panggilan balik Anda sebagai berikut.
NTSTATUS
MyEvtSerCxReceive(
__in WDFDEVICE Device
)
{ ... }
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 |