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