Baca dalam bahasa Inggris

Bagikan melalui


Metode IPortWaveRTStream::AllocatePagesForMdl (portcls.h)

Metode AllocatePagesForMdl mengalokasikan daftar halaman memori fisik yang tidak disebarkan dan mengembalikan penunjuk ke daftar deskriptor memori (MDL ) yang menjelaskannya.

Sintaksis

PMDL AllocatePagesForMdl(
  [in] PHYSICAL_ADDRESS HighAddress,
  [in] SIZE_T           TotalBytes
);

Parameter

[in] HighAddress

Menentukan ujung atas rentang alamat tempat penyimpanan untuk MDL dapat dialokasikan. Ujung rendah rentang alamat secara implisit nol.

[in] TotalBytes

Menentukan jumlah total byte yang akan dialokasikan untuk MDL. Metode ini selalu mengalokasikan jumlah halaman memori integral.

Mengembalikan nilai

AllocatePagesforMdl mengembalikan pointer ke MDL yang menjelaskan daftar halaman memori fisik. Jika metode tidak dapat mengalokasikan buffer yang diminta, metode mengembalikan NULL.

Komentar

Karena tumpukan audio Windows tidak mendukung mekanisme untuk mengekspresikan persyaratan penyelarasan akses memori untuk buffer, driver audio harus memilih jenis penembolokan untuk buffer memori yang dipetakan yang tidak memberlakukan persyaratan penyelarasan khusus platform. Dengan kata lain, jenis penembolokan yang digunakan oleh driver audio untuk buffer memori yang dipetakan, tidak boleh membuat asumsi tentang persyaratan penyelarasan memori untuk platform tertentu.

Driver memanggil metode ini untuk mengalokasikan memori yang dapat dipetakan ke mode pengguna atau kernel. Halaman memori fisik dalam MDL belum tentu berdampingan dalam memori fisik, tetapi semuanya termasuk dalam rentang alamat yang ditentukan.

Metode ini selalu mengalokasikan jumlah halaman integral. Jika memori yang cukup tersedia, alokasi memori adalah ukuran yang diminta dibulatkan ke halaman berikutnya. Jika tidak, alokasi memori bisa kurang dari ukuran yang diminta. Pemanggil harus memverifikasi berapa banyak byte yang benar-benar dialokasikan.

Jika pengontrol DMA perangkat audio mengharuskan halaman memori fisik di buffer berdampingan, driver harus memanggil IPortWaveRTStream::AllocateContiguousPagesForMdl sebagai gantinya.

Seperti fungsi MmAllocatePagesForMdl, metode AllocatePagesforMdl mengalokasikan halaman memori yang dikunci (tidak dipagasi) tetapi tidak dipetakan. Jika driver miniport ingin menyiapkan akses perangkat lunak ke memori ini, driver miniport harus melakukan panggilan berikutnya ke IPortWaveRTStream::MapAllocatedPages untuk memetakan halaman ke ruang alamat mode kernel.

Persyaratan

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

Lihat juga

IPortWaveRTStream

IPortWaveRTStream::AllocateContiguousPagesForMdl

IPortWaveRTStream::MapAllocatedPages