Compartilhar via


Função MmAllocateMappingAddressEx (wdm.h)

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

Consulte também

MmAllocateMappingAddress

MmFreeMappingAddress

MmMapLockedPagesWithReservedMapping

MmUnmapReservedMapping