IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE コールバック関数 (wdm.h)

将来のマッピングに使用できる論理アドレス空間を事前割り当てします。 これにより、ドライバーは、将来のマップ呼び出しまたはマップ解除呼び出しの転送の進行状況を保証する機能が付与されます。

構文

IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE IommuReserveLogicalAddressRange;

NTSTATUS IommuReserveLogicalAddressRange(
  [in]           PIOMMU_DMA_DOMAIN Domain,
  [in]           SIZE_T Size,
  [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_TOKEN *LogicalAddressToken
)
{...}

パラメーター

[in] Domain

予約済み論理アドレスが属する IOMMU_DMA_DOMAIN へのポインター。 ドメインの種類は DomainTypeTranslate である必要があります。 ドメインの種類の詳細については、「 IOMMU_DMA_DOMAIN_TYPE」を参照してください。

[in] Size

予約する論理アドレス範囲のサイズ (バイト単位)。 この値は、ページの総数を表す必要があります。

[in, optional] ExplicitLogicalAddress

予約する必要があるドメイン論理アドレス。 ドメインが登録済みの論理アロケーターで作成されていない場合は、このフィールドが必要です。 明示的な論理アドレス割り当てをサポートしない登録済み論理アロケーターを使用してドメインが作成された場合、このフィールドは NULL である必要があります。

[in, optional] MinLogicalAddress

予約可能な最小 (包括的) 許容論理アドレス。 ドメインが登録済みの論理アロケーターで作成されていない場合、このフィールドは無視されます。

[in, optional] MaxLogicalAddress

予約できる最大 (包括的) 許容される論理アドレス。 ドメインが登録済みの論理アロケーターで作成されていない場合、このフィールドは無視されます。

[out] LogicalAddressToken

予約済みの論理アドレス範囲を表す IOMMU_DMA_LOGICAL_ADDRESS_TOKEN を返します。

戻り値

操作 が成功した場合にSTATUS_SUCCESSします。 考えられるエラーの戻り値には、次の状態コードが含まれます。

リターン コード 説明
STATUS_INVALID_PARAMETER_1 指定されたドメインの種類が DomainTypeTranslate ではありません。
STATUS_INVALID_PARAMETER_2 指定されたサイズは、PAGE_SIZEの倍数ではありません。
STATUS_INVALID_PARAMETER_3 指定された ExplicitLogicalAddress はページアラインされていません。
STATUS_INVALID_PARAMETER_MIX 指定された最小論理アドレスと最大論理アドレスを満たできませんでした。
STATUS_IN_USE ExplicitLogicalAddress は既にマップされているか、部分的にマップされています。
STATUS_NOT_SUPPORTED 明示的な論理アドレス割り当てを許可しない論理アロケーターを持つドメインに対して ExplicitLogicalAddress が提供されました。 または、論理アロケーターがないドメインに ExplicitLogicalAddress が指定されませんでした。

詳細については、「 NTSTATUS 値」を参照してください。

注釈

論理アドレス トークンは、 IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE経由で解放できます。

論理アドレス トークンには、論理アドレス範囲の一部が、 IOMMU_MAP_RESERVED_LOGICAL_RANGEIOMMU_UNMAP_RESERVED_LOGICAL_RANGEを介して物理アドレスにマップされ、物理アドレスからマップ解除されている必要があります。

要件

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

こちらもご覧ください

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE

IOMMU_MAP_RESERVED_LOGICAL_RANGE

IOMMU_UNMAP_RESERVED_LOGICAL_RANGE