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.
PMDL AllocatePagesForMdl(
[in] PHYSICAL_ADDRESS HighAddress,
[in] SIZE_T TotalBytes
);
[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.
AllocatePagesforMdl
mengembalikan pointer ke MDL yang menjelaskan daftar halaman memori fisik. Jika metode tidak dapat mengalokasikan buffer yang diminta, metode mengembalikan NULL.
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.
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 |