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_EX 或 IOMMU_DMA_DEVICE之前,所有者负责注销其所有已注册的回调。
每个 IOMMU_DMA_DEVICE只能注册一个回调。
要求
要求 | 价值 |
---|---|
支持的最低服务器 | Windows Server 2022 |
标头 | wdm.h (包括 Wdm.h) |
另请参阅
IOMMU_INTERFACE_STATE_CHANGE_CALLBACK