Fungsi MmAllocateNonCachedMemory (ntddk.h)
Rutinitas MmAllocateNonCachedMemory mengalokasikan rentang alamat virtual memori yang tidak di-cache dan selaras dengan cache.
Sintaks
PVOID MmAllocateNonCachedMemory(
[in] SIZE_T NumberOfBytes
);
Parameter
[in] NumberOfBytes
Menentukan ukuran dalam byte rentang yang akan dialokasikan.
Nilai kembali
Jika memori yang diminta tidak dapat dialokasikan, nilai yang dikembalikan adalah NULL. Jika tidak, ini adalah alamat virtual dasar dari rentang yang dialokasikan.
Keterangan
MmAllocateNonCachedMemory dapat dipanggil dari rutinitas DriverEntry untuk mengalokasikan blok memori virtual yang tidak di-cache untuk berbagai buffer khusus perangkat. Fungsi ini selalu mengembalikan kelipatan penuh dari ukuran halaman memori virtual, dari memori ruang alamat sistem yang tidak dipagasi, terlepas dari ukuran alokasi yang diminta.
Alokasi yang tidak di-cache diselaraskan pada kelipatan integral dari ukuran baris cache data prosesor untuk mencegah masalah cache dan koherensi.
Halaman memori fisik yang dikembalikan MmAllocateNonCachedMemory biasanya bukan halaman yang berdampingan.
Memori yang dialokasikan MmAllocateNonCachedMemory tidak diinisialisasi. Driver mode kernel harus terlebih dahulu nol memori ini jika akan membuatnya terlihat oleh perangkat lunak mode pengguna (untuk menghindari kebocoran konten yang berpotensi istimewa).
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | ntddk.h (termasuk Ntddk.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), IrqlMmApcLte(wdm), SpNoWait(storport), StorPortStartIo(storport) |