次の方法で共有


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

DMA_IOMMU_INTERFACE_EX に関連する状態変更が発生するたびに呼び出されるコールバックを呼び出し元が登録できるようにします。

構文

IOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK IommuRegisterInterfaceStateChangeCallback;

NTSTATUS IommuRegisterInterfaceStateChangeCallback(
  PIOMMU_INTERFACE_STATE_CHANGE_CALLBACK StateChangeCallback,
  PVOID Context,
  PIOMMU_DMA_DEVICE DmaDevice,
  PIOMMU_INTERFACE_STATE_CHANGE_FIELDS StateFields
)
{...}

パラメーター

StateChangeCallback

[in]登録する IOMMU_INTERFACE_STATE_CHANGE_CALLBACK

Context

[in,省略可能]状態変更コールバックに渡される省略可能なコンテキスト。

DmaDevice

[in]コールバックにリンクされる IOMMU_DMA_DEVICE を表す不透明なトークンへのポインター。

StateFields

[in]呼び出し元が通知を受け取るために登録している状態へのポインター。 IOMMU_INTERFACE_STATE_CHANGE_FIELDSを参照してください。

戻り値

操作が成功したかどうかを STATUS_SUCCESS します。

考えられるエラー戻り値には、次の状態コードが含まれます。

リターン コード 形容
STATUS_UNSUCCESSFUL IOMMU_DMA_DEVICE が既にコールバックに登録されているため、指定されたコールバックを登録できませんでした。
STATUS_INVALID_PARAMETER_4 呼び出し元は、StateFieldsのどのインターフェイス状態フィールドにも関心を示しませんでした。

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

備考

登録は常にコールバックを直ちに呼び出し、コールバックを呼び出す通知で競合状態を回避します。 コールバックの所有者は、コールバックが呼び出されたときに状態を想定せず、常に状態がニーズと一致することを確認する必要があります。

DMA_IOMMU_INTERFACE_EX または IOMMU_DMA_DEVICEを破棄する前に、所有者は登録されているすべてのコールバックの登録を解除する必要があります。

IOMMU_DMA_DEVICEごとに登録できるコールバックは 1 つだけです。

必要条件

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

関連項目

DMA_IOMMU_INTERFACE_V2

DMA_IOMMU_INTERFACE_EX

IOMMU_INTERFACE_STATE_CHANGE_CALLBACK

IOMMU_INTERFACE_STATE_CHANGE_FIELDS

IOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK