Funzione MmAllocateContiguousMemoryEx (wdm.h)
La funzione MmAllocateContiguousMemoryEx alloca un intervallo di memoria fisicamente contigua non di paging e restituisce l'indirizzo virtuale.
Sintassi
NTSTATUS MmAllocateContiguousMemoryEx(
[in] PSIZE_T NumberOfBytes,
[in] PHYSICAL_ADDRESS LowestAcceptableAddress,
[in] PHYSICAL_ADDRESS HighestAcceptableAddress,
[in] PHYSICAL_ADDRESS BoundaryAddressMultiple,
[in] NODE_REQUIREMENT PreferredNode,
[in] ULONG Protect,
[in, optional] PVOID PartitionObject,
[in] ULONG Tag,
[in] ULONG Flags,
[out] PVOID *BaseAddress
);
Parametri
[in] NumberOfBytes
Nella voce specifica il numero di byte da allocare. Al termine della restituzione, riceve l'importo allocato.
[in] LowestAcceptableAddress
Fornisce l'indirizzo fisico più basso valido per l'allocazione. Ad esempio, se il dispositivo può fare riferimento solo alla memoria fisica nell'intervallo da 8M a 16 MB, questo valore verrà impostato su 0x800000 (8 Mb).
[in] HighestAcceptableAddress
Fornisce l'indirizzo fisico più alto valido per l'allocazione. Ad esempio, se il dispositivo può fare riferimento solo alla memoria fisica inferiore a 16 MB, questo valore verrà impostato su 0xFFFFFF (16 Mb - 1).
[in] BoundaryAddressMultiple
Fornisce l'indirizzo fisico multiplo di questa allocazione non deve attraversare.
[in] PreferredNode
Fornisce il nodo preferito da cui deve essere eseguita l'allocazione se le pagine sono disponibili in tale nodo. MM_ANY_NODE_OK viene usato per indicare nessuna preferenza di nodo.
[in] Protect
Fornisce la protezione desiderata (incluso il tipo di cache) per il mapping.
[in, optional] PartitionObject
Se specificato, fornisce un oggetto partizione da cui allocare la memoria fisica. Se non specificato, la memoria proviene dalla partizione di sistema.
[in] Tag
Fornisce il tag per l'allocazione.
[in] Flags
Vari flag:
- MM_ALLOCATE_CONTIGUOUS_MEMORY_FAST_ONLY : allocare la memoria contigua desiderata solo se può essere soddisfatta rapidamente. Non riuscire se la ricerca prolungata della memoria fisica e il trading devono essere eseguiti per soddisfare l'allocazione.
[out] BaseAddress
In caso di esito positivo, riceve l'indirizzo virtuale di base della memoria contigua.
Valore restituito
Restituisce un codice NTSTATUS.
Commenti
Questa memoria deve essere liberata con MmFreeContiguousMemory.
Requisiti
Requisito | Valore |
---|---|
Server minimo supportato | Windows Server 2022 |
Intestazione | wdm.h |
IRQL | <= DISPATCH_LEVEL |