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.

Nilai kembali

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
STATUS_UNSUCCESSFUL
Menunjukkan bahwa penelepon berjalan di IRQL yang terlalu tinggi.
STATUS_INVALID_HANDLE
Menunjukkan bahwa nilai parameter handel tidak valid.
STATUS_INVALID_DEVICE_REQUEST
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

Persyaratan Nilai
Target Platform Desktop
Header hdaudio.h (termasuk Hdaudio.h)
IRQL PASSIVE_LEVEL

Lihat juga

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateDmaBuffer

AllocateRenderDmaEngine

FreeDmaBuffer

HDAUDIO_BUS_INTERFACE_BDL

SetupDmaEngineWithBdl