Bagikan melalui


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

Lihat juga

EvtSerCxReceive

IOCTL_SERIAL_SET_HANDFLOW