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_EXIOMMU_DMA_DEVICE之前,所有者负责取消注册其所有已注册的回调。

每个 IOMMU_DMA_DEVICE只能注册一个回调。

要求

   
最低受支持的服务器 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