Compartir a través de


Función AllocateUserPhysicalPages2 (memoryapi.h)

Asigna páginas de memoria física para asignar y desasignar dentro de cualquier región de Extensiones de ventana de direcciones (AWE) de un proceso especificado, con parámetros extendidos.

Sintaxis

BOOL AllocateUserPhysicalPages2(
  [in]     HANDLE                  ObjectHandle,
  [in,out] PULONG_PTR              NumberOfPages,
  [out]    PULONG_PTR              PageArray,
  [in,out] PMEM_EXTENDED_PARAMETER ExtendedParameters,
  [in]     ULONG                   ExtendedParameterCount
);

Parámetros

[in] ObjectHandle

Identificador de un proceso.

La función asigna memoria que se puede asignar más adelante en el espacio de direcciones virtuales de este proceso. El identificador debe tener el derecho de acceso PROCESS_VM_OPERATION. Para obtener más información, consulte Derechos de acceso y seguridad de procesos.

[in,out] NumberOfPages

Tamaño de la memoria física que se va a asignar, en páginas.

Para determinar el tamaño de página del equipo, use la función GetSystemInfo . En la salida, este parámetro recibe el número de páginas que se asignan realmente, lo que podría ser menor que el número solicitado.

[out] PageArray

Puntero a una matriz para almacenar los números de marco de página de la memoria asignada.

El tamaño de la matriz que se asigna debe ser al menos numberOfPages el tamaño del tipo de datos ULONG_PTR .

No intente modificar este búfer. Contiene datos del sistema operativo y los daños podrían ser catastróficos. La información del búfer no es útil para una aplicación.

[in,out] ExtendedParameters

Puntero a una matriz de estructuras de MEM_EXTENDED_PARAMETER .

[in] ExtendedParameterCount

Número de MEM_EXTENDED_PARAMETER de la matriz ExtendedParameters .

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es TRUE.

Se pueden asignar menos páginas de las solicitadas. El autor de la llamada debe comprobar el valor del parámetro NumberOfPages en la devolución para ver cuántas páginas se asignan. Todos los números de fotogramas de página asignados se colocan secuencialmente en la memoria a la que apunta el parámetro UserPfnArray .

Si se produce un error en la función, el valor devuelto es FALSE y no se asignan fotogramas. Para obtener información de error extendida, llame a GetLastError.

Comentarios

AllocateUserPhysicalPages2 es el mismo que AllocateUserPhysicalPages , pero agrega los parámetros ExtendedParameters y ExtendedParameterCount .

La función AllocateUserPhysicalPages2 se usa para asignar memoria física que posteriormente se puede asignar dentro del espacio de direcciones virtuales del proceso. El privilegio SeLockMemoryPrivilege debe estar habilitado en el token del autor de la llamada o se producirá un error en la función con ERROR_PRIVILEGE_NOT_HELD. Para más información, consulte Constantes de privilegios.

La memoria asignada por esta función debe estar presente físicamente en el sistema. Una vez asignada la memoria, se bloquea y no está disponible para el resto del sistema de administración de memoria virtual.

Las páginas físicas no se pueden asignar simultáneamente en más de una dirección virtual.

Las páginas físicas pueden residir en cualquier dirección física. No debe realizar ninguna suposición sobre la contiguidad de las páginas físicas.

Requisitos

   
Cliente mínimo compatible Windows 11, compilación 20348
Servidor mínimo compatible Windows Server, compilación 20348
Encabezado memoryapi.h
Library onecore.lib
Archivo DLL kernelbase.dll

Consulte también

AllocateUserPhysicalPages

Extensiones de ventana de direcciones

AllocateUserPhysicalPagesNuma

FreeUserPhysicalPages

MapUserPhysicalPages

MapUserPhysicalPagesScatter

Funciones de administración de memoria