次の方法で共有


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

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

DeviceConfig

[入力、省略可能]システムに応じて、デバイスの作成に必要な構成の一覧への省略可能なポインター。 現時点では、これは 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
Header wdm.h (Wdm.h を含む)

こちらもご覧ください

IOMMU_DEVICE_CREATION_CONFIGURATION

IOMMU_DEVICE_DELETE

DMA_IOMMU_INTERFACE_V2

DMA_IOMMU_INTERFACE_EX