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 はありません。

permissions フィールドは、マップされるページのアクセス許可を記述するビットフィールドです。

ビットは次のように定義されます。

Bit 0 = Read Access

Bit 1 = Write Access

Bits 31-2 = Reserved (0)

要件

要件
サポートされている最小のサーバー Windows Server 2022
Header wdm.h (Wdm.h を含む)

こちらもご覧ください

IOMMU_DMA_DOMAIN_TYPE

IOMMU_MAP_PHYSICAL_ADDRESS

DMA_IOMMU_INTERFACE_V2

DMA_IOMMU_INTERFACE_EX