Função AllocateUserPhysicalPages2 (memoryapi.h)
Aloca páginas de memória física a serem mapeadas e não mapeadas em qualquer região do AWE (Address Windowing Extensions) de um processo especificado, com parâmetros estendidos.
Sintaxe
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
Um identificador para um processo.
A função aloca memória que pode ser mapeada posteriormente dentro do espaço de endereço virtual desse processo. O identificador deve ter o direito de acesso PROCESS_VM_OPERATION . Para obter mais informações, consulte Direitos de acesso e segurança do processo.
[in,out] NumberOfPages
O tamanho da memória física a ser alocada, em páginas.
Para determinar o tamanho da página do computador, use a função GetSystemInfo . Na saída, esse parâmetro recebe o número de páginas realmente alocadas, o que pode ser menor do que o número solicitado.
[out] PageArray
Um ponteiro para uma matriz para armazenar os números de quadro de página da memória alocada.
O tamanho da matriz alocada deve ser pelo menos o NumberOfPages vezes o tamanho do tipo de dados ULONG_PTR .
Não tente modificar esse buffer. Ele contém dados do sistema operacional e a corrupção pode ser catastrófica. As informações no buffer não são úteis para um aplicativo.
[in,out] ExtendedParameters
Ponteiro para uma matriz de estruturas MEM_EXTENDED_PARAMETER .
[in] ExtendedParameterCount
O número de MEM_EXTENDED_PARAMETER na matriz ExtendedParameters .
Retornar valor
Se a função for bem-sucedida, o valor retornado será TRUE.
Menos páginas do que as solicitadas podem ser alocadas. O chamador deve marcar o valor do parâmetro NumberOfPages no retorno para ver quantas páginas são alocadas. Todos os números de quadro de página alocados são colocados sequencialmente na memória apontada pelo parâmetro UserPfnArray .
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
AllocateUserPhysicalPages2 é o mesmo que AllocateUserPhysicalPages , mas adiciona os parâmetros ExtendedParameters e ExtendedParameterCount .
A função AllocateUserPhysicalPages2 é usada para alocar memória física que posteriormente pode ser mapeada dentro do espaço de endereço virtual do processo. O privilégio SeLockMemoryPrivilege deve ser habilitado no token do chamador ou a função falhará com ERROR_PRIVILEGE_NOT_HELD. Para obter mais informações, consulte Constantes de privilégio.
A memória alocada por essa função deve estar fisicamente presente no sistema. Depois que a memória é alocada, ela é bloqueada e indisponível para o restante do sistema de gerenciamento de memória virtual.
As páginas físicas não podem ser mapeadas simultaneamente em mais de um endereço virtual.
As páginas físicas podem residir em qualquer endereço físico. Você não deve fazer suposições sobre a contígua das páginas físicas.
Requisitos
Cliente mínimo com suporte | Windows 11, Build 20348 |
Servidor mínimo com suporte | Windows Server, Build 20348 |
Cabeçalho | memoryapi.h |
Biblioteca | onecore.lib |
DLL | kernelbase.dll |