EVT_WDF_INTERRUPT_SYNCHRONIZE回调函数 (wdfinterrupt.h)

[适用于 KMDF 和 UMDF]

驱动程序的 EvtInterruptSynchronize 事件回调函数执行必须与 EvtInterruptIsr 回调函数同步的操作。

语法

EVT_WDF_INTERRUPT_SYNCHRONIZE EvtWdfInterruptSynchronize;

BOOLEAN EvtWdfInterruptSynchronize(
  [in] WDFINTERRUPT Interrupt,
  [in] WDFCONTEXT Context
)
{...}

参数

[in] Interrupt

框架中断对象的句柄。

[in] Context

驱动程序提供的信息,驱动程序在调用 WdfInterruptSynchronize 时指定。

返回值

如果操作成功, EvtInterruptSynchronize 回调函数必须返回 TRUE 。 否则,此函数必须返回 FALSE

注解

若要执行 EvtInterruptSynchronize 回调函数,驱动程序必须调用 WdfInterruptSynchronize

如果驱动程序已将中断对象配置为在设备的 IRQL (DIRQL) 进行处理,则在调用 EvtInterruptSynchronize 回调函数之前,框架会将处理器的中断请求级别提升到 DIRQL,并获取驱动程序在中断对象的 WDF_INTERRUPT_CONFIG 结构中指定的旋转锁。

因此,在执行 EvtInterruptSynchronize 回调函数时,中断对象的 EvtInterruptIsr 回调函数 (,在 DIRQL 中执行的任何其他代码,同时持有旋转锁) 无法执行。

EvtInterruptSynchronize 回调函数的设计必须使其仅在短时间内执行。 它们通常用于访问中断数据,这些数据也由中断对象的其他 EvtInterruptSynchronizeEvtInterruptIsr 回调函数访问。

从 KMDF 版本 1.11 开始,驱动程序可以提供 被动级别中断处理。 如果驱动程序已请求被动级别中断处理,则在 IRQL = PASSIVE_LEVEL 调用 EvtInterruptSynchronize 函数之前,框架会获取驱动程序在中断对象的 WDF_INTERRUPT_CONFIG 结构中配置的被动级别中断锁。

有关 EvtInterruptSynchronize 回调函数的详细信息,请参阅 同步中断代码

有关在基于框架的驱动程序中处理中断的详细信息,请参阅 处理硬件中断

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfinterrupt.h (包括 Wdf.h)
IRQL (请参见“备注”部分。)

另请参阅

EvtInterruptIsr

WDF_INTERRUPT_CONFIG

WdfInterruptSynchronize