Metode IPortWaveRTStream::AllocateContiguousPagesForMdl (portcls.h)
Metode ini AllocateContiguousPagesForMdl
mengalokasikan daftar halaman memori fisik yang berdekatan, tidak bertepatan, dan mengembalikan penunjuk ke daftar deskriptor memori (MDL) yang menjelaskannya.
Sintaks
PMDL AllocateContiguousPagesForMdl(
[in] PHYSICAL_ADDRESS LowAddress,
[in] PHYSICAL_ADDRESS HighAddress,
[in] SIZE_T TotalBytes
);
Parameter
[in] LowAddress
Menentukan ujung rendah rentang alamat tempat penyimpanan untuk MDL dapat dialokasikan.
[in] HighAddress
Menentukan ujung atas rentang alamat tempat penyimpanan untuk MDL dapat dialokasikan.
[in] TotalBytes
Menentukan jumlah total byte yang akan dialokasikan untuk MDL. Metode ini selalu mengalokasikan jumlah halaman memori yang tidak terpisahkan.
Nilai kembali
AllocateContiguousPagesForMdl
mengembalikan pointer ke MDL (PMDL) yang menjelaskan daftar halaman memori fisik. Jika metode tidak dapat mengalokasikan buffer yang diminta, metode mengembalikan NULL.
Keterangan
Driver memanggil metode ini untuk mengalokasikan blok halaman memori yang berdekatan secara fisik. Semua halaman memori fisik dalam MDL termasuk dalam rentang alamat yang ditentukan oleh parameter LowAddress dan HighAddress . Jika memori yang cukup tersedia, alokasi memori adalah ukuran yang diminta yang dibulatkan ke halaman berikutnya; jika tidak, panggilan gagal.
Setelah sistem berjalan selama beberapa waktu, kumpulan memori yang tidak disebarkan sistem cenderung menjadi terfragmentasi, yang meningkatkan probabilitas bahwa permintaan untuk mengalokasikan blok besar memori fisik yang berdekatan akan gagal. Jika pengontrol DMA perangkat audio tidak mengharuskan halaman memori fisik berdampingan, driver harus memanggil IPortWaveRTStream::AllocatePagesForMdl sebagai gantinya. Tidak seperti AllocateContiguousPagesForMdl
, metode AllocatePagesForMdl tidak terpengaruh oleh fragmentasi memori.
Metode ini AllocateContiguousPagesforMdl
mengalokasikan halaman memori yang dikunci (tidak ditumpuk) tetapi tidak dipetakan. Jika driver miniport memerlukan akses perangkat lunak ke memori ini, driver miniport harus melakukan panggilan berikutnya ke IPortWaveRTStream::MapAllocatedPages untuk memetakan halaman ke ruang alamat mode kernel.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk