fungsi panggilan balik EVT_SERCX_TRANSMIT (sercx.h)
Fungsi panggilan balik peristiwa EvtSerCxTransmit menyiapkan perangkat pengontrol serial (UART) untuk melakukan operasi tulis (transmisi).
Sintaks
EVT_SERCX_TRANSMIT EvtSercxTransmit;
NTSTATUS EvtSercxTransmit(
[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 ditransmisikan. Driver pengontrol dapat menggunakan nilai ini sebagai petunjuk untuk memutuskan apakah akan menggunakan PIO atau DMA untuk melakukan transfer data.
Nilai kembali
Fungsi EvtSerCxTransmit 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 serial untuk mengirimkan data. Jika perlu, fungsi EvtSerCxTransmit dapat mengaktifkan interupsi.
Fungsi EvtSerCxTransmit tidak selalu menulis data output ke buffer FIFO transmisi. Bergantung pada perangkat keras pengontrol serial atau jenis transfer, fungsi ini mungkin menyiapkan operasi DMA untuk menulis data, atau mungkin menjadwalkan fungsi DPC transmisi/terima untuk menulis data. Driver pengontrol serial mengimplementasikan fungsi DPC ini untuk mengirimkan data ke pengontrol serial dan menerima data dari pengontrol. Selama DPC, fungsi DPC menentukan apakah data tersedia untuk ditransmisikan dan, jika demikian, menggunakan PIO untuk mentransfer data ke pengiriman FIFO di pengontrol serial.
Jika FIFO transmisi dalam pengontrol serial penuh atau hampir penuh, tetapi interupsi tanda air rendah FIFO diaktifkan, fungsi EvtSerCxTransmit hanya dapat kembali. Nantinya, ISR driver pengontrol dapat menjadwalkan fungsi DPC transmit/receive untuk dijalankan, dan fungsi ini dapat mentransfer lebih banyak data output ke FIFO transmisi.
Untuk mendaftarkan fungsi panggilan balik EvtSerCxTransmit , 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_TRANSMIT(
__in WDFDEVICE Device
);
Untuk menentukan fungsi panggilan balik EvtSerCxTransmit yang diberi nama MyEvtSerCxTransmit
, Anda harus terlebih dahulu memberikan deklarasi fungsi yang diperlukan Pemverifikasi Driver Statis (SDV) dan alat verifikasi lainnya, sebagai berikut.
EVT_SERCX_TRANSMIT MyEvtSerCxTransmit;
Kemudian, terapkan fungsi panggilan balik Anda sebagai berikut.
NTSTATUS
MyEvtSerCxTransmit(
__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 |