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

C++
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 en el 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últipla que esta asignación no debe cruzar.

[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 ninguna preferencia 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 desde el que asignar la memoria física. 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. Produce un error si la búsqueda de memoria física prolongada y el comercio 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.

Observaciones

Esta memoria debe liberarse con MmFreeContiguousMemory.

Requisitos

Requisito Valor
servidor mínimo admitido Windows Server 2022
encabezado de wdm.h
irQL <= DISPATCH_LEVEL

Consulte también

MmFreeContiguousMemory