Metode IMiniportWaveRTOutputStream::GetPacketCount (portcls.h)

GetPacketCount mengembalikan jumlah paket (berbasis 1) yang sepenuhnya ditransfer dari buffer WaveRT ke perangkat keras.

Sintaks

NTSTATUS GetPacketCount(
  [out] ULONG *pPacketCount
);

Parameter

[out] pPacketCount

pPacketCount mengembalikan jumlah paket yang sepenuhnya ditransfer dari buffer WaveRT ke perangkat keras.

Nilai kembali

GetPacketCount mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, fungsi mengembalikan kode status kesalahan yang sesuai.

Keterangan

Dari jumlah paket, OS dapat memperoleh posisi aliran paket yang ditulisnya ke dalam buffer WaveRT. OS juga dapat memperoleh posisi buffer WaveRT dari paket berikutnya untuk ditulis dalam buffer WaveRT. Untuk driver WaveRT, driver memberi sinyal peristiwa pemberitahuan tunggal saat mentransfer data dari setiap paket buffer WaveRT. Oleh karena itu peristiwa itu saja tidak dapat menunjukkan paket mana dalam buffer WaveRT yang sedang ditransfer. Dalam operasi normal ini bukan masalah tetapi dalam kasus underflow koreksi lebih mudah dicapai dengan mengkueri jumlah paket tempat OS dapat menentukan paket mana yang akan ditulis berikutnya.

PacketCount yang dikembalikan menunjukkan jumlah paket (berbasis 1) yang sepenuhnya ditransfer dari buffer WaveRT ke perangkat keras. Dari ini, OS dapat menentukan jumlah paket berbasis 0 yang saat ini sedang ditransfer, dan memastikan bahwa ia menulis di depan paket tersebut. Misalnya, jika jumlah paket adalah 5, maka 5 paket telah sepenuhnya ditransfer. Artinya, paket 0-4 telah ditransfer sepenuhnya. Oleh karena itu paket 5 sedang berlangsung, dan OS harus menulis paket 6. Jika jumlah pemberitahuan untuk buffer WaveRT adalah 2, maka paket 6 akan berada di offset 0 dalam buffer WaveRT (karena 6 modulo 2 adalah 0, dan 0 kali ukuran paket adalah 0).

OS mungkin mendapatkan properti ini kapan saja. Namun umumnya mendapatkan properti ini hanya secara berkala atau setelah driver mengembalikan kesalahan aliran data (STATUS_DATA_LATE_ERROR, STATUS_DATA_OVERRUN) dari SetWritePacket() untuk menyinkronkan ulang dengan driver.

Driver harus mengatur ulang jumlah paket menjadi 0 saat aliran berada di KSSTATE_STOP.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows 10 dan yang lebih baru.
Target Platform Windows
Header portcls.h
IRQL Tingkat pasif

Lihat juga

IMiniportWaveRTOutputStream