Metode IMiniportWaveRTStreamNotification::AllocateBufferWithNotification (portcls.h)

Metode ini AllocateAudioBufferWithNotification mengalokasikan buffer siklik untuk data audio saat Anda ingin menerapkan pemberitahuan peristiwa berbasis DMA. Jika Anda tidak menginginkan pemberitahuan peristiwa, Anda harus menggunakan IMiniportWaveRTStream::AllocateAudioBuffer.

Sintaks

NTSTATUS AllocateBufferWithNotification(
  [in]  ULONG               NotificationCount,
  [in]  ULONG               RequestedSize,
  [out] PMDL                *AudioBufferMdl,
  [out] ULONG               *ActualSize,
  [out] ULONG               *OffsetFromFirstPage,
  [out] MEMORY_CACHING_TYPE *CacheType
);

Parameter

[in] NotificationCount

Menentukan jumlah pemberitahuan yang diinginkan per siklus buffer. Nilai yang valid adalah 1 atau 2, di mana 1 menunjukkan satu pemberitahuan di akhir buffer siklik dan 2 menunjukkan dua pemberitahuan per siklus buffer, satu di titik tengah buffer dan satu di akhir.

[in] RequestedSize

Menentukan ukuran yang diminta, dalam byte, dari buffer audio.

[out] AudioBufferMdl

Penunjuk output untuk daftar deskriptor memori (MDL) yang menjelaskan buffer audio. Parameter ini menunjuk ke variabel pointer yang dialokasikan pemanggil tempat metode menulis pointer ke MDL.

[out] ActualSize

Penunjuk output untuk ukuran aktual, dalam byte, dari buffer yang dialokasikan. Parameter ini menunjuk ke variabel ULONG tempat metode menulis nilai ukuran.

[out] OffsetFromFirstPage

Penunjuk output untuk offset (dalam byte) buffer, dari awal halaman pertama di MDL. Parameter ini menunjuk ke variabel ULONG yang dialokasikan pemanggil tempat metode menulis nilai offset.

[out] CacheType

Menentukan jenis penembolokan yang diminta klien untuk buffer audio. Parameter ini adalah nilai enumerasi MEMORY_CACHING_TYPE

Nilai kembali

AllocateBufferWithNotification mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, metode mengembalikan kode status kesalahan yang sesuai. Tabel berikut ini memperlihatkan beberapa kemungkinan kode status kesalahan.

Menampilkan kode Deskripsi
STATUS_UNSUCCESSFUL
Driver tidak mendukung kombinasi atribut buffer yang ditentukan.
STATUS_INSUFFICIENT_RESOURCES
Tidak tersedia cukup memori untuk mengalokasikan buffer.
STATUS_DEVICE_NOT_READY
Perangkat belum siap.

Keterangan

Catatan Miniports untuk Intel High Definition Audio Codecs harus menentukan CacheType dari MmWriteCombined untuk memastikan koherensi cache. Ini karena Pengontrol Audio Definisi Tinggi Intel dapat dikonfigurasi untuk operasi non-intip.
 
Setelah menerima permintaan KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION dari klien, driver port memanggil AllocateBufferWithNotification metode untuk mengalokasikan buffer siklik yang nantinya dapat dipetakan driver port ke ruang alamat virtual klien. AllocateBufferWithNotification beroperasi dengan cara yang mirip dengan IMiniportWaveRTStream::AllocateAudioBuffer. Selain itu, AllocateBufferWithNotification mengidentifikasi driver port WaveRT bahwa pemberitahuan peristiwa berbasis DMA diinginkan, dan menentukan berapa banyak pemberitahuan per siklus buffer siklik yang diperlukan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Vista dan sistem operasi Windows yang lebih baru.
Target Platform Universal
Header portcls.h
IRQL Tingkat pasif.

Lihat juga

IMiniportWaveRTStream::AllocateAudioBuffer

IMiniportWaveRTStreamNotification

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION

MDL

MEMORY_CACHING_TYPE