次の方法で共有


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

[入力]登録する IOMMU_INTERFACE_STATE_CHANGE_CALLBACK

Context

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

DmaDevice

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

StateFields

[入力]呼び出し元が通知を受け取るために登録している状態へのポインター。 「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
Header 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