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, optional]将传递给状态更改回调的可选上下文。

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