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 を含む) |
関連項目
IOMMU_INTERFACE_STATE_CHANGE_CALLBACK