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 を含む) |