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

Lihat juga

EvtDriverDeviceAdd

SerCxInitialize

Antrean WdfDpcEnqueue