Bagikan melalui


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)

Lihat juga

AllocateCommonBuffer

KeGetDcacheFillSize

MmAllocateContiguousMemory

MmAllocateContiguousMemorySpecifyCache

MmFreeNonCachedMemory