Función MmAllocateContiguousMemoryEx (wdm.h)

La función MmAllocateContiguousMemoryEx asigna un intervalo de memoria físicamente contigua no paginada y devuelve su dirección virtual.

Sintaxis

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
);

Parámetros

[in] NumberOfBytes

En la entrada, proporciona el número de bytes que se van a asignar. Si la devolución es correcta, recibe la cantidad asignada.

[in] LowestAcceptableAddress

Proporciona la dirección física más baja que es válida para la asignación. Por ejemplo, si el dispositivo solo puede hacer referencia a la memoria física del intervalo de 8M a 16 MB, este valor se establecería en 0x800000 (8 Mb).

[in] HighestAcceptableAddress

Proporciona la dirección física más alta que es válida para la asignación. Por ejemplo, si el dispositivo solo puede hacer referencia a la memoria física por debajo de 16 MB, este valor se establecería en 0xFFFFFF (16 Mb - 1).

[in] BoundaryAddressMultiple

Proporciona la dirección física múltiple que no debe cruzar esta asignación.

[in] PreferredNode

Proporciona el nodo preferido desde el que se debe realizar la asignación si las páginas están disponibles en ese nodo. MM_ANY_NODE_OK se usa para indicar que no hay preferencias de nodo.

[in] Protect

Proporciona la protección deseada (incluido el tipo de caché) para la asignación.

[in, optional] PartitionObject

Si se especifica, proporciona un objeto de partición para asignar la memoria física de . Si no se especifica, la memoria provendrá de la partición del sistema.

[in] Tag

Proporciona la etiqueta para la asignación.

[in] Flags

Varias marcas:

  • MM_ALLOCATE_CONTIGUOUS_MEMORY_FAST_ONLY : asigne memoria contigua deseada solo si se puede satisfacer rápidamente. Falla si la búsqueda de memoria física prolongada y el trading deben realizarse para satisfacer la asignación.

[out] BaseAddress

Si se ejecuta correctamente, recibe la dirección virtual base de la memoria contigua.

Valor devuelto

Devuelve un código NTSTATUS.

Comentarios

Esta memoria debe liberarse con MmFreeContiguousMemory.

Requisitos

Requisito Value
Servidor mínimo compatible Windows Server 2022
Encabezado wdm.h
IRQL <= DISPATCH_LEVEL

Consulte también

MmFreeContiguousMemory