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

IPortWaveRTStream

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::MapAllocatedPages