PFREE_CONTIGUOUS_DMA_BUFFER fungsi panggilan balik (hdaudio.h)
Rutinitas FreeContiguousDmaBuffer
membebaskan daftar deskriptor buffer dan buffer DMA (BDL) yang dialokasikan oleh panggilan ke AllocateContiguousDmaBuffer.
Jenis penunjuk fungsi untuk FreeContiguousDmaBuffer
rutinitas didefinisikan sebagai berikut.
Sintaks
PFREE_CONTIGUOUS_DMA_BUFFER PfreeContiguousDmaBuffer;
NTSTATUS PfreeContiguousDmaBuffer(
[in] PVOID _context,
[in] HANDLE Handle
)
{...}
Parameter
[in] _context
Menentukan nilai konteks dari anggota Konteks dari struktur HDAUDIO_BUS_INTERFACE_BDL .
[in] Handle
Menangani identifikasi mesin DMA. Nilai handel ini diperoleh dari panggilan sebelumnya ke AllocateCaptureDmaEngine atau AllocateRenderDmaEngine.
Menampilkan nilai
FreeContiguousDmaBuffer
mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, rutinitas mengembalikan kode kesalahan yang sesuai. Tabel berikut ini memperlihatkan beberapa kemungkinan kode status pengembalian.
Menampilkan kode | Deskripsi |
---|---|
|
Menunjukkan bahwa penelepon berjalan di IRQL yang terlalu tinggi. |
|
Menunjukkan bahwa nilai parameter handel tidak valid. |
|
Menunjukkan bahwa aliran tidak dalam status reset atau bahwa tidak ada buffer yang saat ini dialokasikan untuk mesin DMA. |
Keterangan
FreeContiguousDmaBuffer
Rutinitas ini digunakan bersama dengan rutinitas SetupDmaEngineWithBdl dan AllocateContiguousDmaBuffer. Ketiga rutinitas ini hanya tersedia dalam versi HDAUDIO_BUS_INTERFACE_BDL HD Audio DDI. DDI ini tidak termasuk rutinitas AllocateDmaBuffer dan FreeDmaBuffer , yang tidak pernah digunakan bersama dengan AllocateContiguousDmaBuffer, SetupDmaEngineWithBdl, dan FreeContiguousDmaBuffer
. Tidak seperti SetupDmaEngineWithBdl, yang mengonfigurasi mesin DMA untuk menggunakan buffer DMA yang dialokasikan sebelumnya, AllocateDmaBuffer mengalokasikan buffer DMA dan mengonfigurasi mesin DMA untuk menggunakan buffer. Untuk informasi selengkapnya, lihat Perbedaan antara Dua Versi DDI.
Rutinitas gagal dan mengembalikan kode kesalahan STATUS_INVALID_DEVICE_REQUEST dalam salah satu keadaan berikut:
-
Klien memanggil
FreeContiguousDmaBuffer
ketika tidak ada buffer yang saat ini dialokasikan untuk mesin DMA. - Aliran berada dalam status selain reset.
Persyaratan
Target Platform | Desktop |
Header | hdaudio.h (termasuk Hdaudio.h) |
IRQL | PASSIVE_LEVEL |