WdfInterruptQueueWorkItemForIsr 函数 (wdfinterrupt.h)
[适用于 KMDF 和 UMDF]
WdfInterruptQueueWorkItemForIsr 方法将框架中断对象的 EvtInterruptWorkItem 回调函数排队以供执行。
语法
BOOLEAN WdfInterruptQueueWorkItemForIsr(
[in] WDFINTERRUPT Interrupt
);
参数
[in] Interrupt
框架中断对象的句柄。
返回值
如果驱动程序的 ISR 在 IRQL = PASSIVE_LEVEL 运行,则 WdfInterruptQueueWorkItemForIsr 如果成功将中断对象的 EvtInterruptWorkItem 回调函数排队,则返回 TRUE。 如果回调函数以前已排队且尚未执行,则方法返回 FALSE 。
如果驱动程序的 ISR 在 IRQL = DIRQL 下运行,则框架首先将内部 DPC 排队,然后将来自该 DPC 的工作项排队。 在这种情况下,如果框架成功将内部 DPC 排队, 则 WdfInterruptQueueWorkItemForIsr 将返回 TRUE 。 如果内部 DPC 以前已排队,则方法返回 FALSE 。
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
注解
驱动程序通常从 EvtInterruptIsr 回调函数中调用 WdfInterruptQueueWorkItemForIsr。
中断对象的 EvtInterruptWorkItem 回调函数在执行前只能排队一次。 因此,如果对 WdfInterruptQueueWorkItemForIsr 的 调用成功,后续调用将不会对其他回调进行排队。
有关在基于框架的驱动程序中处理中断的详细信息,请参阅 处理硬件中断。
如果驱动程序使用未指定 EvtInterruptWorkItem 回调函数的中断对象调用 WdfInterruptQueueWorkItemForIsr,则会发生 bug 检查。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.11 |
最低 UMDF 版本 | 2.0 |
标头 | wdfinterrupt.h (包括 Wdf.h) |
Library | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | <=DIRQL |
DDI 符合性规则 | DriverCreate (kmdf) |