MmAllocateContiguousMemoryEx, fonction (wdm.h)
La fonction MmAllocateContiguousMemoryEx alloue une plage de mémoire non paginée physiquement contiguë et retourne son adresse virtuelle.
Syntaxe
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
);
Paramètres
[in] NumberOfBytes
Lors de l’entrée, indique le nombre d’octets à allouer. En cas de retour réussi, reçoit le montant alloué.
[in] LowestAcceptableAddress
Fournit l’adresse physique la plus basse valide pour l’allocation. Par exemple, si l’appareil ne peut référencer que la mémoire physique dans la plage de 8M à 16 Mo, cette valeur est définie sur 0x800000 (8 Mo).
[in] HighestAcceptableAddress
Fournit l’adresse physique la plus élevée valide pour l’allocation. Par exemple, si l’appareil ne peut référencer que la mémoire physique inférieure à 16 Mo, cette valeur est définie sur 0xFFFFFF (16 Mo - 1).
[in] BoundaryAddressMultiple
Fournit l’adresse physique multiple que cette allocation ne doit pas traverser.
[in] PreferredNode
Fournit le nœud préféré à partir duquel l’allocation doit être effectuée si des pages sont disponibles sur ce nœud. MM_ANY_NODE_OK est utilisé pour signer aucune préférence de nœud.
[in] Protect
Fournit la protection souhaitée (y compris le type de cache) pour le mappage.
[in, optional] PartitionObject
S’il est spécifié, fournit un objet de partition à partir duquel allouer la mémoire physique. S’il n’est pas spécifié, la mémoire provient de la partition système.
[in] Tag
Fournit la balise pour l’allocation.
[in] Flags
Différents indicateurs :
- MM_ALLOCATE_CONTIGUOUS_MEMORY_FAST_ONLY : allouez la mémoire contiguë souhaitée uniquement si elle peut être satisfaite rapidement. Échouez si la recherche prolongée de mémoire physique et le trading doivent avoir lieu pour satisfaire l’allocation.
[out] BaseAddress
En cas de réussite, reçoit l’adresse virtuelle de base de la mémoire contiguë.
Valeur de retour
Retourne un code NTSTATUS.
Remarques
Cette mémoire doit être libérée avec MmFreeContiguousMemory.
Exigences
Exigence | Valeur |
---|---|
serveur minimum pris en charge | Windows Server 2022 |
d’en-tête | wdm.h |
IRQL | <= DISPATCH_LEVEL |