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
标头 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