Partager via


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

Voir aussi

MmFreeContiguousMemory