IOMMU_MAP_RESERVED_LOGICAL_RANGE função de retorno de chamada (wdm.h)

Mapeia um intervalo lógico reservado.

Ao contrário de IOMMU_MAP_LOGICAL_RANGE_EX, é garantido que isso não execute nenhuma alocação de memória, pois supõe-se que elas já tenham sido executadas anteriormente com IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE.

Sintaxe

IOMMU_MAP_RESERVED_LOGICAL_RANGE IommuMapReservedLogicalRange;

NTSTATUS IommuMapReservedLogicalRange(
  [in, out] PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN LogicalAddressToken,
  [in]      SIZE_T Offset,
  [in]      ULONG Permissions,
  [in]      PIOMMU_MAP_PHYSICAL_ADDRESS PhysicalAddressToMap,
  [out]     PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT MappedSegment
)
{...}

Parâmetros

[in, out] LogicalAddressToken

O IOMMU_DMA_LOGICAL_ADDRESS_TOKEN a ser mapeado.

[in] Offset

O deslocamento, em bytes, para o token de endereço lógico, que representa o endereço lógico base a ser mapeado.

[in] Permissions

Um campo de bits que representa as permissões a serem definidas para o intervalo que está sendo mapeado. Consulte Comentários para ver os bits de permissão disponíveis.

[in] PhysicalAddressToMap

O IOMMU_MAP_PHYSICAL_ADDRESS que será mapeado para o domínio.

[out] MappedSegment

Retorna o IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT que representa um segmento do token de endereço lógico que agora está mapeado.

Retornar valor

STATUS_SUCCESS se a operação for bem-sucedida. Os possíveis valores retornados por erro incluem os seguintes códigos de status.

Código de retorno Descrição
STATUS_INVALID_PARAMETER_2 O deslocamento fornecido não está alinhado à página.
STATUS_INVALID_PARAMETER_4 O endereço físico fornecido não é alinhado à página e/ou não é um número inteiro de páginas em tamanho.
STATUS_RESOURCE_IN_USE O intervalo de endereços lógicos representado no token de endereço lógico já está completamente ou parcialmente mapeado.
STATUS_UNSUCCESSFUL O token de endereço lógico está sendo excluído no momento.

Para obter mais informações, consulte Valores NTSTATUS.

Comentários

Um segmento mapeado de token de endereço lógico pode ser não mapeado por meio de IOMMU_UNMAP_RESERVED_LOGICAL_RANGE.

O campo de permissões é um campo de bits que descreve as permissões de acesso para as páginas a serem mapeadas.

Os bits são definidos da seguinte maneira:

Bit 0 = Read Access

Bit 1 = Write Access

Bits 31-2 = Reserved (0)

Requisitos

Requisito Valor
Servidor mínimo com suporte Windows Server 2022
Cabeçalho wdm.h (include Wdm.h)

Confira também

IOMMU_UNMAP_RESERVED_LOGICAL_RANGE

IOMMU_MAP_PHYSICAL_ADDRESS

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT