EVT_SERCX2_PIO_TRANSMIT_ENABLE_READY_NOTIFICATION fungsi panggilan balik (sercx.h)
Fungsi panggilan balik peristiwa EvtSerCx2PioTransmitEnableReadyNotification dipanggil oleh versi 2 dari ekstensi kerangka kerja serial (SerCx2) untuk mengaktifkan driver pengontrol serial untuk memberi tahu SerCx2 ketika FIFO transmisi di pengontrol serial siap menerima lebih banyak data.
Sintaks
EVT_SERCX2_PIO_TRANSMIT_ENABLE_READY_NOTIFICATION EvtSercx2PioTransmitEnableReadyNotification;
void EvtSercx2PioTransmitEnableReadyNotification(
[in] SERCX2PIOTRANSMIT PioTransmit
)
{...}
Parameter
[in] PioTransmit
Handel SERCX2PIOTRANSMIT ke objek transmisi PIO. Driver pengontrol serial sebelumnya disebut metode SerCx2PioTransmitCreate untuk membuat objek ini.
Nilai kembali
Tidak ada
Keterangan
Driver pengontrol serial Anda harus menerapkan fungsi ini. Driver mendaftarkan fungsi dalam panggilan SerCx2PioTransmitCreate yang membuat objek transmisi PIO.
Jika pemberitahuan siap untuk transaksi transmisi PIO diaktifkan, driver pengontrol serial harus memanggil metode SerCx2PioTransmitReady untuk memberi tahu SerCx2 ketika driver mendeteksi bahwa FIFO yang dikirim dalam perangkat keras pengontrol serial siap untuk menerima lebih banyak data. Jika FIFO pengiriman siap menerima data ketika pemberitahuan siap diaktifkan, driver segera memanggil metode ini untuk memberi tahu SerCx2.
Pemberitahuan siap untuk transaksi pengiriman PIO adalah pemberitahuan satu kali. Setelah mengirim pemberitahuan siap ke SerCx2, driver pengontrol serial tidak mengirimkan pemberitahuan lebih lanjut sampai SerCx2 memanggil fungsi EvtSerCx2PioTransmitEnableReadyNotification untuk mengaktifkan pemberitahuan lain.
Panggilan fungsi EvtSerCx2PioTransmitWriteBuffer mungkin hanya menyelesaikan sebagian transaksi pengiriman PIO karena tidak ada lagi ruang yang segera tersedia di FIFO pengiriman untuk menulis lebih banyak data. Dalam hal ini, SerCx2 memanggil fungsi EvtSerCx2PioTransmitEnableReadyNotification untuk mengaktifkan pemberitahuan siap, dalam hal ini driver pengontrol serial harus memberi tahu SerCx2 ketika pengiriman FIFO memiliki ruang untuk lebih banyak data. Menanggapi pemberitahuan ini, SerCx2 melanjutkan transaksi pengiriman yang diselesaikan sebagian dengan memanggil fungsi EvtSerCx2PioTransmitWriteBuffer lagi.
Biasanya, fungsi EvtSerCx2PioTransmitEnableReadyNotification memungkinkan interupsi yang terjadi ketika mengirimkan FIFO di pengontrol serial siap menerima lebih banyak data. Menanggapi gangguan ini, driver pengontrol serial memanggil SerCx2PioTransmitReady.
Tidak lebih dari satu pemberitahuan siap dapat tertunda pada satu waktu. SerCx2 tidak pernah memanggil fungsi EvtSerCx2PioTransmitEnableReadyNotification jika pemberitahuan siap sudah diaktifkan.
SerCx2 tidak pernah memanggil fungsi EvtSerCx2PioTransmitWriteBuffer saat pemberitahuan siap diaktifkan.
Pemberitahuan siap tertunda dapat dibatalkan jika waktu permintaan tulis terkait habis atau dibatalkan. Untuk membatalkan pemberitahuan siap untuk transaksi pengiriman PIO, SerCx2 memanggil fungsi panggilan balik peristiwa EvtSerCx2PioTransmitCancelReadyNotification .
Untuk informasi selengkapnya, lihat Transaksi PIO-Transmit SerCx2.
Contoh
Untuk menentukan fungsi panggilan balik EvtSerCx2PioTransmitEnableReadyNotification , 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 EvtSerCx2PioTransmitEnableReadyNotification yang bernama MyPioTransmitEnableReadyNotification
, gunakan jenis fungsi EVT_SERCX2_PIO_TRANSMIT_ENABLE_READY_NOTIFICATION , seperti yang ditunjukkan dalam contoh kode ini:
EVT_SERCX2_PIO_TRANSMIT_ENABLE_READY_NOTIFICATION MyPioTransmitEnableReadyNotification;
Kemudian, terapkan fungsi panggilan balik Anda sebagai berikut:
_Use_decl_annotations_
VOID
MyPioTransmitEnableReadyNotification(
SERCX2PIOTRANSMIT PioTransmit
)
{...}
Jenis fungsi EVT_SERCX2_PIO_TRANSMIT_ENABLE_READY_NOTIFICATION 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_PIO_TRANSMIT_ENABLE_READY_NOTIFICATION 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk