Bagikan melalui


EVT_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO fungsi panggilan balik (sercx.h)

Fungsi panggilan balik peristiwa EvtSerCx2SystemDmaTransmitPurgeFifo dipanggil oleh versi 2 dari ekstensi kerangka kerja serial (SerCx2) untuk membuang byte data yang tidak dikirim yang tetap berada dalam TRANSMISI FIFO di perangkat keras pengontrol serial.

Sintaks

EVT_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO EvtSercx2SystemDmaTransmitPurgeFifo;

void EvtSercx2SystemDmaTransmitPurgeFifo(
  [in] SERCX2SYSTEMDMATRANSMIT SystemDmaTransmit,
  [in] ULONG BytesAlreadyTransmittedToHardware
)
{...}

Parameter

[in] SystemDmaTransmit

Handel SERCX2SYSTEMDMATRANSMIT ke objek transmisi DMA sistem. Driver pengontrol serial sebelumnya disebut metode SerCx2SystemDmaTransmitCreate untuk membuat objek ini.

[in] BytesAlreadyTransmittedToHardware

Jumlah byte yang telah dimuat ke dalam PENGIRIMAN FIFO selama transaksi transmisi DMA sistem saat ini.

Nilai kembali

Tidak ada

Keterangan

Driver pengontrol serial Anda dapat, sebagai opsi, menerapkan fungsi ini. Jika diimplementasikan, driver mendaftarkan fungsi dalam panggilan SerCx2SystemDmaTransmitCreate yang membuat objek transmisi DMA sistem.

Driver Anda harus menerapkan fungsi EvtSerCx2SystemDmaTransmitPurgeFifo jika pengontrol serial memiliki FIFO perangkat keras (atau mekanisme buffering serupa) untuk menyimpan data pengiriman. Jika driver Anda menerapkan fungsi ini, driver juga harus mengimplementasikan fungsi panggilan balik peristiwa EvtSerCx2SystemDmaTransmitDrainFifo dan EvtSerCx2SystemDmaTransmitCancelDrainFifo .

Jika waktu permintaan tulis (IRP_MJ_WRITE) yang tertunda habis atau dibatalkan, SerCx2 mungkin perlu mengakhiri transaksi DMA sistem saat ini sebelum selesai. Setelah transaksi dihentikan, SerCx2 memanggil fungsi EvtSerCx2SystemDmaTransmitPurgeFifo , jika diimplementasikan.

Fungsi EvtSerCx2SystemDmaTransmitPurgeFifo menghentikan transfer data dari buffer tulis ke FIFO pengiriman, dan membuang data yang ditransfer sebelumnya yang tersisa di FIFO. Setelah transaksi pengiriman dihentikan, driver harus memanggil metode SerCx2SystemDmaTransmitPurgeFifoComplete untuk memberi tahu SerCx2 bahwa FIFO dihapus menyeluruh, dan SerCx2 kemudian menyelesaikan permintaan tulis.

Untuk informasi selengkapnya, lihat SerCx2 System-DMA-Transmit Transactions.

Contoh

Untuk menentukan fungsi panggilan balik EvtSerCx2SystemDmaTransmitPurgeFifo , Anda harus terlebih dahulu memberikan deklarasi fungsi yang mengidentifikasi jenis fungsi panggilan balik yang Anda tentukan. Windows menyediakan sekumpulan tipe fungsi panggilan balik untuk driver. Mendeklarasikan fungsi menggunakan jenis fungsi panggilan balik membantu Analisis Kode untuk Driver, Pemverifikasi Driver Statis (SDV), dan alat verifikasi lainnya menemukan kesalahan, dan itu adalah persyaratan untuk menulis driver untuk sistem operasi Windows.

Misalnya, untuk menentukan fungsi panggilan balik EvtSerCx2SystemDmaTransmitPurgeFifo yang bernama MySystemDmaTransmitPurgeFifo, gunakan jenis fungsi EVT_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO , seperti yang ditunjukkan dalam contoh kode ini:

EVT_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO  MySystemDmaTransmitPurgeFifo;

Kemudian, terapkan fungsi panggilan balik Anda sebagai berikut:

_Use_decl_annotations_
VOID
  MySystemDmaTransmitPurgeFifo(
    SERCX2SYSTEMDMATRANSMIT  SystemDmaTransmit,
    ULONG BytesAlreadyTransmittedToHardware
    )
  {...}

Jenis fungsi EVT_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO didefinisikan dalam file header Sercx.h. Untuk mengidentifikasi kesalahan secara lebih akurat saat Anda menjalankan alat analisis kode, pastikan untuk menambahkan anotasi Use_decl_annotations ke definisi fungsi Anda. Anotasi Use_decl_annotations memastikan bahwa anotasi yang diterapkan ke jenis fungsi EVT_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO dalam file header digunakan. Untuk informasi selengkapnya tentang persyaratan untuk deklarasi fungsi, lihat Mendeklarasikan Fungsi dengan Menggunakan Jenis Peran Fungsi untuk Driver KMDF. Untuk informasi selengkapnya tentang Use_decl_annotations, lihat Perilaku Fungsi Anotasi.

Persyaratan

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

Lihat juga

EvtSerCx2SystemDmaTransmitCancelDrainFifo

EvtSerCx2SystemDmaTransmitDrainFifo

IRP_MJ_WRITE

SERCX2SYSTEMDMATRANSMIT

SerCx2SystemDmaTransmitCreate

SerCx2SystemDmaTransmitPurgeFifoComplete