Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A função MmAllocateMappingAddressEx aloca um mapeamento PTE do sistema do comprimento solicitado que pode ser usado posteriormente para mapear endereços arbitrários.
Sintaxe
PVOID MmAllocateMappingAddressEx(
[in] SIZE_T NumberOfBytes,
[in] ULONG PoolTag,
[in] ULONG Flags
);
Parâmetros
[in] NumberOfBytes
Fornece o número máximo de bytes que o mapeamento pode abranger.
[in] PoolTag
Especifica uma marca de quatro caracteres usada para identificar o buffer. Use uma marca PoolTag distinta para cada caminho de código de alocação. Para obter uma descrição das marcas de pool, consulte ExAllocatePoolWithTag.
[in] Flags
Especifica sinalizadores para esta operação. Defina esse parâmetro como zero ou como or bit a bit de um ou mais dos seguintes bits de sinalizador:
| Flag | Meaning |
|---|---|
| MM_MAPPING_ADDRESS_DIVISIBLE | Indica que o endereço de mapeamento deve ser divisível pelo tamanho do mapeamento. Esse sinalizador é útil para garantir que o endereço de mapeamento esteja alinhado com determinados requisitos de hardware. |
Valor de retorno
MmAllocateMappingAddressEx retorna um ponteiro para o início do buffer de memória reservado se a operação for bem-sucedida; caso contrário, ele retorna NULL.
Observações
MmAllocateMappingAddressEx fornece uma versão estendida de MmAllocateMappingAddress com suporte a sinalizadores adicionais. Essa função reserva um intervalo de espaço de endereço virtual do sistema que pode ser usado para operações de mapeamento posteriores com MmMapLockedPagesWithReservedMapping.
Nenhuma memória física é alocada por essa função; ele reserva apenas espaço de endereço virtual. A memória reservada não pode ser acessada até que seja mapeada usando MmMapLockedPagesWithReservedMapping.
Os chamadores devem fornecer um PoolTag diferente de zero para identificar a alocação.
O intervalo de endereços reservado deve ser liberado usando MmFreeMappingAddress quando não for mais necessário.
As alocações muito grandes (>= 4 GB de páginas) falharão. A função poderá falhar se ptes de sistema insuficientes estiverem disponíveis
Requisitos
| Requisito | Valor |
|---|---|
| de cliente com suporte mínimo | Windows 10, versão 2004 |
| cabeçalho | wdm.h |
| IRQL | <=APC_LEVEL |