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

IMiniportWaveRTInputStream