Metode IMiniportWaveRTInputStream::GetReadPacket (portcls.h)
Mengembalikan informasi tentang data yang diambil.
Sintaks
NTSTATUS GetReadPacket(
[out] ULONG *PacketNumber,
[out] DWORD *Flags,
[out] ULONG64 *PerformanceCounterValue,
[out] BOOL *MoreData
);
Parameter
[out] PacketNumber
Mengembalikan angka paket relatif terhadap awal pengambilan.
[out] Flags
Disiapkan untuk penggunaan masa mendatang. Harus diatur ke 0.
[out] PerformanceCounterValue
Mengembalikan nilai penghitung kinerja yang sesuai dengan instans pengambilan sampel pertama dalam paket.
[out] MoreData
Mengembalikan TRUE jika ada lebih banyak data yang siap segera. OS dapat secara opsional segera memanggil rutinitas ini lagi setelah memproses paket untuk mendapatkan informasi paket berikutnya. Jika driver mengembalikan FALSE, maka pengambilan beroperasi secara real time.
Nilai kembali
GetReadPacket
mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, fungsi mengembalikan kode status kesalahan yang sesuai.
STATUS_DEVICE_NOT_READY - Driver mengembalikan kesalahan ini jika tidak ada data baru yang tersedia.
Keterangan
Sebelum membaca data audio yang diambil dari buffer WaveRT, OS memanggil rutinitas ini untuk mendapatkan informasi tentang data yang tersedia.
Nomor paket mengidentifikasi paket dalam aliran. Ini direset ke nol saat aliran berada di KSSTATE_STOP. Angka tersebut maju dengan setiap buffer yang ditangkap. Dari nomor paket OS dapat memperoleh lokasi paket dalam buffer WaveRT dan juga dapat memperoleh posisi aliran paket relatif terhadap awal aliran.
Ukuran paket adalah ukuran buffer WaveRT yang dibagi dengan NotificationCount yang diteruskan ke IMiniportWaveRTStreamNotification::AllocateBufferWithNotification. OS dapat memanggil rutinitas ini kapan saja. Dalam operasi normal, OS memanggil rutinitas ini setelah driver mengatur peristiwa pemberitahuan buffer atau setelah panggilan sebelumnya mengembalikan true untuk MoreData. Ketika OS memanggil rutinitas ini, driver dapat mengasumsikan bahwa OS telah selesai membaca semua paket sebelumnya. Jika perangkat keras telah mengambil data yang cukup, driver dapat segera meledakkan paket lengkap berikutnya ke buffer WaveRT dan mengatur peristiwa buffer lagi. Dalam kasus pengambilan luapan (ketika OS tidak membaca data dengan cukup cepat) driver audio dapat menjatuhkan atau menimpa beberapa data audio. Driver audio menghilangkan atau menimpa data terlama terlebih dahulu, Driver audio dapat terus memajukan penghitung paket internalnya meskipun OS mungkin belum membaca data.
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
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