Funzione MmAllocateContiguousMemoryEx (wdm.h)
La funzione MmAllocateContiguousMemoryEx alloca un intervallo di memoria fisicamente contigua non di paging e ne 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
In caso di immissione, fornisce il numero di byte da allocare. In caso di restituzione riuscita, 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 memoria contigua desiderata solo se può essere soddisfatta rapidamente. Se la ricerca e il trading della memoria fisica prolungati devono avere luogo 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.
Osservazioni
Questa memoria deve essere liberata con MmFreeContiguousMemory.
Fabbisogno
Requisito | Valore |
---|---|
server minimo supportato | Windows Server 2022 |
intestazione | wdm.h |
IRQL | <= DISPATCH_LEVEL |