英語で読む

次の方法で共有


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

物理デバイス オブジェクトを取得し、IOMMU インターフェイス API で使用できる IOMMU_DMA_DEVICE を表す不透明なトークンを作成します。

構文

IOMMU_DEVICE_CREATE IommuDeviceCreate;

NTSTATUS IommuDeviceCreate(
  PDEVICE_OBJECT DeviceObject,
  PIOMMU_DEVICE_CREATION_CONFIGURATION DeviceConfig,
  PIOMMU_DMA_DEVICE *DmaDeviceOut
)
{...}

パラメーター

DeviceObject

[in]作成された IOMMU_DMA_DEVICE が表すデバイスの物理デバイス オブジェクトへのポインター。

DeviceConfig

[in,省略可能]システムに応じて、デバイスの作成に必要な構成の一覧への省略可能なポインター。 現時点では、これは ARM64 上の ACPI デバイスに必要です。

DmaDeviceOut

[アウト]作成された IOMMU_DMA_DEVICEを表す不透明なトークンへのポインター。

戻り値

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

リターン コード 形容
STATUS_INVALID_PARAMETER
指定された PDO は、IOMMU の背後にないデバイスを表します。
STATUS_INVALID_PARAMETER_2
指定された入力がシステムサポートと一致しません。
STATUS_INSUFFICIENT_RESOURCES
ルーチンは、**IOMMU_DMA_DEVICE** 構造体に必要なリソースを割り当てませんでした。
STATUS_UNSUCCESSFUL
基になる IOMMU インターフェイスが 'GetDeviceId' 関数に対して正しく実装されていません。
STATUS_NOT_FOUND
指定された PDO は、IOMMU の背後にないデバイスを表します。

IOMMU の背後にデバイスが見つからない場合は、既に直接の物理メモリ アクセスが必要であり、プラットフォームは DMA Guard に準拠していません。

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

備考

ARM64 システム上の ACPI デバイスは、DeviceConfig パラメーターを介して入力マッピングを提供する必要があります。 ARM64 システム上の他のすべてのデバイスの種類と、ARM64 以外のシステム上のすべてのデバイスは、デバイス構成を提供 しないでください。それ以外の場合、呼び出しは STATUS_INVALID_PARAMETER_2で失敗します。

必要条件

要件 価値
サポートされる最小サーバー Windows Server 2022
ヘッダー wdm.h (Wdm.h を含む)

関連項目

IOMMU_DEVICE_CREATION_CONFIGURATION

IOMMU_DEVICE_DELETE

DMA_IOMMU_INTERFACE_V2

DMA_IOMMU_INTERFACE_EX