PFREE_DMA_BUFFER fungsi panggilan balik (hdaudio.h)

Rutinitas FreeDmaBuffer membebaskan buffer DMA yang sebelumnya dialokasikan oleh panggilan ke AllocateDmaBuffer.

Jenis penunjuk fungsi untuk FreeDmaBuffer rutinitas didefinisikan sebagai berikut.

Sintaks

PFREE_DMA_BUFFER PfreeDmaBuffer;

NTSTATUS PfreeDmaBuffer(
  [in] PVOID _context,
  [in] HANDLE Handle
)
{...}

Parameter

[in] _context

Menentukan nilai konteks dari anggota KonteksHDAUDIO_BUS_INTERFACE atau struktur HDAUDIO_BUS_INTERFACE_V2 .

[in] Handle

Menangani identifikasi mesin DMA. Nilai handel ini diperoleh dari panggilan sebelumnya ke AllocateCaptureDmaEngine atau AllocateRenderDmaEngine.

Nilai kembali

FreeDmaBuffer 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

FreeDmaBuffer Rutinitas digunakan bersama dengan rutinitas AllocateDmaBuffer. Kedua rutinitas ini hanya tersedia dalam versi HDAUDIO_BUS_INTERFACE HD Audio DDI. DDI ini tidak termasuk rutinitas AllocateContiguousDmaBuffer, SetupDmaEngineWithBdl, dan FreeContiguousDmaBuffer , yang tidak pernah digunakan bersama dengan AllocateDmaBuffer dan FreeDmaBuffer. 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.

Rutinitas gagal dan mengembalikan kode kesalahan STATUS_INVALID_DEVICE_REQUEST dalam salah satu keadaan berikut:

  • Klien memanggil FreeDmaBuffer 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

AllocateDmaBuffer

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_V2

SetupDmaEngineWithBdl