PCHANGE_BANDWIDTH_ALLOCATION fungsi panggilan balik (hdaudio.h)
Rutinitas mengubah ChangeBandwidthAllocation
alokasi bandwidth mesin DMA pada HD Audio Link.
Jenis penunjuk fungsi untuk ChangeBandwidthAllocation
rutinitas didefinisikan sebagai berikut.
Sintaks
PCHANGE_BANDWIDTH_ALLOCATION PchangeBandwidthAllocation;
NTSTATUS PchangeBandwidthAllocation(
[in] PVOID _context,
[in] HANDLE Handle,
[in] PHDAUDIO_STREAM_FORMAT StreamFormat,
[out] PHDAUDIO_CONVERTER_FORMAT ConverterFormat
)
{...}
Parameter
[in] _context
Menentukan nilai konteks dari anggota Konteks struktur HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2, atau HDAUDIO_BUS_INTERFACE_BDL .
[in] Handle
Menangani identifikasi mesin DMA. Nilai handel ini diperoleh dari panggilan sebelumnya ke AllocateCaptureDmaEngine atau AllocateRenderDmaEngine.
[in] StreamFormat
Menentukan format aliran yang diminta. Parameter ini menunjuk ke struktur jenis HDAUDIO_STREAM_FORMAT yang dialokasikan pemanggil yang menentukan format data untuk aliran.
[out] ConverterFormat
Mengambil format pengonversi. Parameter ini menunjuk ke struktur jenis HDAUDIO_CONVERTER_FORMAT yang dialokasikan penelepon tempat rutin menulis format yang dikodekan. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.
Nilai kembali
ChangeBandwidthAllocation
mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, rutinitas mengembalikan kode kesalahan yang sesuai. Tabel berikut ini memperlihatkan beberapa kemungkinan kode kesalahan pengembalian.
Menampilkan kode | Deskripsi |
---|---|
|
Menunjukkan bahwa penelepon berjalan di IRQL yang terlalu tinggi. |
|
Menunjukkan bahwa nilai parameter handel tidak valid. |
|
Menunjukkan bahwa salah satu nilai parameter tidak benar (penunjuk buruk atau format aliran yang tidak valid). |
|
Menunjukkan bahwa mesin DMA tidak dapat mengalokasikan penyimpanan FIFO internal yang memadai untuk mendukung format aliran yang diminta. |
|
Menunjukkan bahwa bandwidth yang tersedia tidak mencukup untuk memenuhi permintaan. |
|
Menunjukkan bahwa aliran tidak dalam status reset atau bahwa buffer masih dialokasikan untuk mesin DMA. |
Keterangan
Penelepon mendapatkan alokasi bandwidth awal untuk mesin DMA dengan memanggil AllocateCaptureDmaEngine atau AllocateRenderDmaEngine. Setelah itu, penelepon dapat mengubah alokasi bandwidth dengan memanggil ChangeBandwidthAllocation
.
Melalui parameter converterFormat , rutin menghasilkan nilai deskriptor aliran yang dapat digunakan pemanggil untuk memprogram pengonversi input atau output. Rutinitas mengodekan informasi dari parameter streamFormat ke dalam bilangan bulat 16-bit. Untuk informasi selengkapnya, lihat HDAUDIO_CONVERTER_FORMAT.
Rutinitas ini gagal dan mengembalikan kode kesalahan STATUS_INVALID_DEVICE_REQUEST dalam salah satu keadaan berikut:
- Setiap buffer DMA yang dialokasikan sebelumnya belum dibebaskan (dengan memanggil FreeDmaBuffer atau FreeContiguousDmaBuffer).
- Aliran berada dalam status selain reset.
ChangeBandwidthAllocation
Jika panggilan gagal, reservasi bandwidth yang ada tetap berlaku. Alokasi bandwidth berubah hanya jika panggilan berhasil.
Di Windows Vista dan yang lebih baru, driver miniport gelombang memanggil rutinitas ini selama eksekusi metode SetFormat -nya (setelah memanggil salah satu rutinitas AlokasikanXxxDmaEngine di HD Audio DDI). Untuk informasi selengkapnya, lihat IMiniportWavePciStream::SetFormat.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | hdaudio.h (termasuk Hdaudio.h) |
IRQL | PASSIVE_LEVEL |
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