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

Lihat juga

EvtDriverDeviceAdd

SerCxInitialize

Antrean WdfDpcEnqueue