Fungsi SerCxGetRingBufferUtilization (sercx.h)
Metode SerCxGetRingBufferUtilization memungkinkan driver pengontrol serial untuk menentukan berapa banyak buffer cincin type-ahead yang saat ini diisi oleh data yang diterima dari port serial.
Sintaks
void SerCxGetRingBufferUtilization(
[in] WDFDEVICE Device,
[out, optional] PULONG BytesUsed,
[out, optional] PULONG BufferSize
);
Parameter
[in] Device
Handel WDFDEVICE ke objek perangkat kerangka kerja yang mewakili pengontrol serial.
[out, optional] BytesUsed
Jumlah byte data yang belum dibaca yang saat ini terkandung dalam buffer cincin type-ahead yang digunakan untuk menyimpan data yang diterima.
[out, optional] BufferSize
Ukuran, dalam byte, dari buffer cincin type-ahead yang digunakan untuk menyimpan data yang diterima.
Nilai kembali
Tidak ada
Keterangan
Driver pengontrol serial memanggil fungsi ini untuk menentukan berapa banyak ruang penyimpanan yang tersedia di buffer cincin type-ahead. Ekstensi pengontrol serial (SerCx) mempertahankan buffer ini untuk berisi data yang diterima driver pengontrol serial dari port serial ketika tidak ada permintaan baca dari klien yang saat ini sedang diproses. Fungsi ini menyediakan informasi yang diperlukan driver untuk melakukan kontrol alur perangkat lunak (XON/XOFF) secara akurat.
Untuk menerapkan kontrol alur perangkat lunak, driver pengontrol serial memantau jumlah ruang yang tersedia dalam buffer cincin type-ahead. Ruang yang tersedia, dalam byte, sama dengan BufferSize - BytesUsed. Ketika ruang yang tersedia berada di bawah ambang yang ditentukan klien, XoffLimit, driver pengontrol serial mengirimkan karakter XOFF untuk memberi tahu port pemancar untuk menjeda transmisi. Kemudian, ketika ruang yang tersedia naik di atas ambang yang ditentukan klien, XonLimit, driver mengirimkan karakter XON untuk memberi tahu port transmisi untuk melanjutkan transmisi. Biasanya, klien menentukan dua ambang batas ini dalam permintaan kontrol I/O IOCTL_SERIAL_SET_HANDFLOW sebelumnya.
SerCx mengevaluasi ruang yang tersedia di buffer cincin type-ahead dalam konteks kontrol alur saat ini dan pengaturan jabat tangan. Setelah buffer cincin type-ahead benar-benar kosong, SerCx memanggil fungsi panggilan balik EvtSerCxReceive driver sehingga driver dapat mengirim XON dan melanjutkan penerimaan data. Fungsi EvtSerCxReceive dapat memanggil SerCxGetRingBufferUtilization untuk menentukan apakah akan mengirim XON.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 8. |
Target Platform | Universal |
Header | sercx.h |
IRQL | <= DISPATCH_LEVEL |