次の方法で共有


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経由でマップ解除できます。

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

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

Bit 0 = Read Access

Bit 1 = Write Access

Bits 31-2 = Reserved (0)

要件

要件
サポートされている最小のサーバー Windows Server 2022
Header 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