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 回调函数的设计必须使其仅在短时间内执行。 它们通常用于访问中断数据,这些数据也由中断对象的其他 EvtInterruptSynchronize 或 EvtInterruptIsr 回调函数访问。
从 KMDF 版本 1.11 开始,驱动程序可以提供 被动级别中断处理。 如果驱动程序已请求被动级别中断处理,则在 IRQL = PASSIVE_LEVEL 调用 EvtInterruptSynchronize 函数之前,框架会获取驱动程序在中断对象的 WDF_INTERRUPT_CONFIG 结构中配置的被动级别中断锁。
有关 EvtInterruptSynchronize 回调函数的详细信息,请参阅 同步中断代码。
有关在基于框架的驱动程序中处理中断的详细信息,请参阅 处理硬件中断。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfinterrupt.h (包括 Wdf.h) |
IRQL | (请参见“备注”部分。) |