XMemAllocatePhysicalPages
Aloca páginas físicas contíguas para o processo de destino especificado.Sintaxe
Parâmetros
XMemFlags _In_Tipo: ULONGLONG Especifica os requisitos das páginas alocadas.
Em dispositivos Anaconda e dispositivos Dante emulando Anaconda, ao usar o modo de memória de título Avançado, os parâmetros a seguir também podem ser aplicados. Esses parâmetros são ignorados em todos os outros casos.
NumberOfPages _Inout_
Tipo: PULONG_PTR Ponteiro para uma variável que contém o número de páginas de 64KB a serem alocadas. Após a conclusão, retorna o número de páginas de 64 KB realmente alocadas. PageArray _Out_writes_to_(*NumberOfPages,*NumberOfPages)
Tipo: PULONG_PTR Ponteiro para a memória do usuário para armazenar os números das páginas de 64KB alocadas. Ponteiro para uma matriz para armazenar os números de quadros de página da memória alocada. O tamanho da matriz alocada deve ser pelo menos NumberOfPages vezes o tamanho do tipo de dados ULONG_PTR. Não tente modificar esse buffer. Ele contém dados do sistema operacional, e sua corrupção pode ser catastrófica. As informações no buffer não são úteis para um aplicativo.
Valor retornado
Tipo: BOOL Se a função for bem-sucedida, o valor retornado será TRUE. Podem ser alocadas menos páginas do que o solicitado. O chamador deve verificar o valor do parâmetro NumberOfPages no retorno para ver quantas páginas foram alocadas. Todos os números de quadros de página alocados são colocados sequencialmente na memória apontada pelo parâmetro PageArray. Se a função falhar, o valor retornado será FALSE e nenhum quadro será alocado. Para obter informações de erro estendidas, chame GetLastError.Comentários
Essa API aloca páginas de memória física a serem mapeadas em uma região de um processo especificado. XMemAllocatePhysicalPages é útil nos momentos em que pode ser desejável que os aplicativos pré-aloquem muitas sequências de páginas fisicamente contíguas e as subdividam em páginas separadas de 64KB com base em condições variáveis determinadas dinamicamente em tempo de execução. XMemAllocatePhysicalPages oferece alocação de páginas físicas sem colocá-las no espaço de endereço virtual. XMemAllocatePhysicalPages aloca a quantidade de memória solicitada em páginas físicas. Independentemente do uso de XMEM_2MB_CLUSTERS, os números de página na matriz retornada referem-se a páginas individuais de 64KB. Essas páginas podem ser usadas livremente ao mapear em reservas feitas usando MEM_64K_PAGES. No entanto, clusters contíguos de 2MB, como os retornados quando XMEM_2MB_CLUSTERS é especificado, são necessários ao mapear em reservas feitas com MEM_2MB_PAGES. Somente a primeira página física de cada cluster de 2MB é usada ao mapear em reservas feitas com MEM_2MB_PAGES. No retorno, NumberOfPages pode retornar menos do que o número de páginas solicitado. Para liberar páginas alocadas com XMemAllocatePhysicalPages, chame XMemFreePhysicalPages. Exemplo:Requisitos
Cabeçalho: xmem.h Biblioteca: xmem.lib Plataformas compatíveis: consoles da família XBOX One e consoles XBOX SeriesConfira também
Referência de XMemXMemVirtualAlloc
XMemMapPhysicalPages
XMemFreePhysicalPages
