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) |
图书馆 | Wdf01000.sys(KMDF):WUDFx02000.dll (UMDF) |
IRQL | <=DIRQL |
DDI 符合性规则 | DriverCreate(kmdf) |