Skip to main content

XMemMapPhysicalPagesScatter

Asigna páginas físicas a la memoria virtual.

Sintaxis

Parámetros

*VirtualAddressArray   _In_
Tipo: PVOID
Matriz de direcciones virtuales en las que se deben asignar las páginas. Este parámetro no se puede establecer en NULL. Use XMemVirtualAlloc con MEM_RESERVE y XMEM_MAPPABLE para reservar un intervalo de direcciones de memoria que se pueda usar con XMemMapPhysicalPagesScatter. Las direcciones virtuales reservadas también deben crearse con páginas de 64 K mediante la opción MEM_64K_PAGES con XMemVirtualAlloc. NumberOfPages   _In_
Tipo: ULONG_PTR
Número de entradas de PageArray y VirtualAddressArray. Solo se admiten páginas de 64 K reservadas mediante XMemVirtualAlloc con la opción MEM_64K_PAGES. PageArray   _In_reads_opt_(NumberOfPages)
Tipo: PULONG_PTR
Matriz de números de marco de página (PFN) que representan las páginas físicas que se van a asignar. Este parámetro se puede establecer en NULL. Si PageArray se establece en NULL, esta función realiza una operación de desasignación. Si una entrada individual de la matriz se establece en NULL, se desasigna la dirección virtual correspondiente.

Valor devuelto

Tipo: BOOL Devuelve TRUE si la asignación se realizó correctamente; de lo contrario, FALSE si se produjo un error de asignación.

Comentarios

Esta función trata VirtualAddressArray y PageArray como matrices paralelas de la misma longitud, según lo especificado por NumberOfPages. Cada dirección virtual de un elemento de matriz de VirtualAddressArray se asigna o desasigna en función de PageArray:
  • Si un elemento de matriz de PageArray se establece en un PFN, la dirección virtual del elemento de matriz correspondiente de VirtualAddressArray se asigna a ese PFN.
  • Si un elemento de matriz de PageArray se establece en NULL, se desasigna la dirección virtual del elemento de matriz correspondiente de VirtualAddressArray.
  • Si PageArray se establece en NULL, se desasignan todas las direcciones virtuales de VirtualAddressArray.
Para obtener el mejor rendimiento, las direcciones virtuales dentro de la misma ventana de 2 MB (tanto en tamaño como en alineación) deben proporcionarse de forma consecutiva y en orden ascendente. Esto permite que el sistema operativo realice búsquedas anticipadas de forma oportunista y determine si puede aplazar hasta el final del grupo algunas operaciones que funcionan con granularidades de página de CPU. Para obtener más información sobre la asignación de páginas físicas a direcciones virtuales, consulte Trabajo con el administrador de memoria del sistema operativo de juegos del Microsoft GDK.

Requisitos

Encabezado: xmem.h Biblioteca: xmem.lib Plataformas compatibles: consolas de la familia XBOX One y consolas XBOX Series

Consulte también

XMemVirtualAlloc
XMem
Última modificación el 28 de agosto de 2026