KSPROPERTY_RTAUDIO_PACKETCOUNT
KSPROPERTY_RTAUDIO_PACKETCOUNT mengembalikan jumlah paket (berbasis 1) yang sepenuhnya ditransfer dari buffer WaveRT ke perangkat keras.
Tabel Ringkasan Penggunaan
Dapatkan | Set | Target | Jenis deskriptor properti | Jenis nilai properti |
---|---|---|---|---|
Ya |
Tidak |
Menyematkan |
Deskriptor properti (data instans) adalah struktur KSPROPERTY . Sebelum mengirim permintaan, klien memuat struktur dengan jumlah paket (berbasis 1) yang sepenuhnya ditransfer dari buffer WaveRT ke perangkat keras.
Nilai properti adalah variabel jenis ULONG.
Nilai Yang Dikembalikan
Permintaan properti KSPROPERTY_RTAUDIO_PACKETCOUNT mengembalikan STATUS_SUCCESS untuk menunjukkan bahwa permintaan telah berhasil diselesaikan. Jika tidak, permintaan mengembalikan kode status kegagalan 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 menulis 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 ditransfer sepenuhnya. 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 ke 0 saat aliran berada di KSSTATE_STOP.
Persyaratan
Versi |
Tersedia dalam sistem operasi Windows Windows 10 dan yang lebih baru. |
Header |
Ksmedia.h |
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