IOMMU_MAP_RESERVED_LOGICAL_RANGE回调函数 (wdm.h)

映射保留的逻辑范围。

IOMMU_MAP_LOGICAL_RANGE_EX不同,这可以保证不会执行任何内存分配,因为假定之前已使用 IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE 执行这些内存分配。

语法

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
)
{...}

参数

[in, out] LogicalAddressToken

要映射到 的IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

[in] Offset

逻辑地址标记的偏移量(以字节为单位),表示要映射的基逻辑地址。

[in] Permissions

一个位字段,表示要为映射的范围设置的权限。 有关可用权限位,请参阅备注。

[in] PhysicalAddressToMap

将映射到域 的IOMMU_MAP_PHYSICAL_ADDRESS

[out] MappedSegment

返回表示现在映射的逻辑地址令牌段 的IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT

返回值

STATUS_SUCCESS 操作是否成功。 可能的错误返回值包括以下状态代码。

返回代码 说明
STATUS_INVALID_PARAMETER_2 提供的偏移量未按页对齐。
STATUS_INVALID_PARAMETER_4 提供的物理地址不是页面对齐的,并且/或不是整页大小。
STATUS_RESOURCE_IN_USE 逻辑地址令牌中表示的逻辑地址范围已完全或部分映射。
STATUS_UNSUCCESSFUL 逻辑地址令牌当前正在删除。

有关详细信息,请参阅 NTSTATUS 值

注解

逻辑地址令牌映射段可以通过 IOMMU_UNMAP_RESERVED_LOGICAL_RANGE取消映射。

权限字段是一个位字段,用于描述要映射的页面的访问权限。

位的定义如下:

Bit 0 = Read Access

Bit 1 = Write Access

Bits 31-2 = Reserved (0)

要求

要求
最低受支持的服务器 Windows Server 2022
标头 wdm.h (包括 Wdm.h)

另请参阅

IOMMU_UNMAP_RESERVED_LOGICAL_RANGE

IOMMU_MAP_PHYSICAL_ADDRESS

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT