MmAllocateNonCachedMemory-Funktion (ntddk.h)
Die MmAllocateNonCachedMemory Routine weist einen virtuellen Adressbereich von nicht zwischengespeichertem und zwischengespeichertem Speicher zu.
Syntax
PVOID MmAllocateNonCachedMemory(
[in] SIZE_T NumberOfBytes
);
Parameter
[in] NumberOfBytes
Gibt die Größe in Byte des bereichs an, der zugewiesen werden soll.
Rückgabewert
Wenn der angeforderte Arbeitsspeicher nicht zugewiesen werden kann, ist der Rückgabewert NULL. Andernfalls handelt es sich um die virtuelle Basisadresse des zugewiesenen Bereichs.
Bemerkungen
MmAllocateNonCachedMemory- kann aus einer DriverEntry Routine aufgerufen werden, um einen nicht zwischengespeicherten Block des virtuellen Speichers für verschiedene gerätespezifische Puffer zuzuweisen. Die Funktion gibt unabhängig von der angeforderten Zuordnungsgröße immer ein vollständiges Vielfaches der Größe der virtuellen Speicherseite zurück, der nicht ausgelagertem Systemadressraumspeicher ist.
Nicht zwischengespeicherte Zuordnungen werden an einem integralen Vielfachen der Datencachezeilengröße des Prozessors ausgerichtet, um Cache- und Kohärenzprobleme zu vermeiden.
Die physischen Speicherseiten, die MmAllocateNonCachedMemory zurückgegeben werden, sind in der Regel keine zusammenhängenden Seiten.
Speicher, der MmAllocateNonCachedMemory zugeordnet wird, ist nicht initialisiert. Ein Kernelmodustreiber muss zuerst diesen Speicher null sein, wenn er für Software im Benutzermodus sichtbar macht (um zu vermeiden, dass potenziell privilegierte Inhalte verloren gehen).
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | ntddk.h (include Ntddk.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <=APC_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), IrqlMmApcLte(wdm), SpNoWait(storport), StorPortStartIo(storport) |