共用方式為


IOMMU_MAP_LOGICAL_RANGE_EX回呼函式 (wdm.h)

將實體位址空間對應至 IOMMU_DMA_DOMAIN的邏輯位址空間。

語法

IOMMU_MAP_LOGICAL_RANGE_EX IommuMapLogicalRangeEx;

NTSTATUS IommuMapLogicalRangeEx(
  [in]           PIOMMU_DMA_DOMAIN Domain,
  [in]           ULONG Permissions,
  [in]           PIOMMU_MAP_PHYSICAL_ADDRESS PhysicalAddressToMap,
  [in, optional] PIOMMU_DMA_LOGICAL_ADDRESS ExplicitLogicalAddress,
  [in, optional] PIOMMU_DMA_LOGICAL_ADDRESS MinLogicalAddress,
  [in, optional] PIOMMU_DMA_LOGICAL_ADDRESS MaxLogicalAddress,
  [out]          PIOMMU_DMA_LOGICAL_ADDRESS LogicalAddressOut
)
{...}

參數

[in] Domain

對應邏輯地址所屬之 IOMMU_DMA_DOMAIN 指標。 網域的類型必須是 DomainTypeTranslate。 如需網域類型的詳細資訊,請參閱 IOMMU_DMA_DOMAIN_TYPE

[in] Permissions

位欄位元,表示要為所對應範圍設定的許可權。 如需可用的許可權位,請參閱。

[in] PhysicalAddressToMap

將對應至網域的 IOMMU_MAP_PHYSICAL_ADDRESS

[in, optional] ExplicitLogicalAddress

實體地址應對應的網域邏輯位址。 如果未使用已註冊的邏輯配置器建立網域,則需要此欄位。 如果網域是以不支援明確邏輯位址設定的已註冊邏輯配置器所建立,則此欄位必須 NULL

[in, optional] MinLogicalAddress

實體地址應對應的最小(含)邏輯位址。 如果未使用已註冊的邏輯配置器建立網域,則會忽略此欄位。

[in, optional] MaxLogicalAddress

實體地址應對應的最大(內含)允許邏輯位址。 如果未使用已註冊的邏輯配置器建立網域,則會忽略此欄位。

[out] LogicalAddressOut

從對應傳回產生的邏輯位址。

傳回值

如果作業成功,STATUS_SUCCESS。 可能的錯誤傳回值包括下列狀態代碼。

傳回碼 描述
STATUS_INVALID_PARAMETER_1 提供的網域類型不是 DomainTypeTranslate類型。
STATUS_INVALID_PARAMETER_3 提供的 IOMMU_MAP_PHYSICAL_ADDRESS 並不代表頁面對齊且大小是PAGE_SIZE倍數的實體記憶體。
STATUS_INVALID_PARAMETER_4 提供的 ExplicitLogicalAddress 並未對齊頁面。
STATUS_INVALID_PARAMETER_MIX 無法滿足提供的最小和最大邏輯位址。
STATUS_IN_USE ExplicitLogicalAddress 已經對應或部分對應。
STATUS_NOT_SUPPORTED 已為網域提供 ExplicitLogicalAddress,該網域具有不允許明確邏輯位址配置的邏輯配置器。 或者,沒有邏輯配置器之網域未提供 ExplicitLogicalAddress。

如需詳細資訊,請參閱 NTSTATUS 值

言論

若要取消對應 IOMMU_MAP_LOGICAL_RANGE_EX所建立的邏輯位址,請使用 IOMMU_UNMAP_LOGICAL_RANGE;邏輯位址範圍目前沒有對應的Ex對等專案。

許可權欄位位欄位,描述要對應之頁面的訪問許可權。

位的定義如下:

Bit 0 = Read Access

Bit 1 = Write Access

Bits 31-2 = Reserved (0)

要求

要求 價值
支援的最低伺服器 Windows Server 2022
標頭 wdm.h (包括 Wdm.h)

另請參閱

IOMMU_DMA_DOMAIN_TYPE

IOMMU_MAP_PHYSICAL_ADDRESS

DMA_IOMMU_INTERFACE_V2

DMA_IOMMU_INTERFACE_EX