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 。
如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。
備註
驅動程式通常會從 EvtInterruptIsr 回呼函式內呼叫 WdfInterruptQueueWorkItemForIsr。
中斷物件的 EvtInterruptWorkItem 回呼函式只能在其執行之前排入佇列一次。 因此,如果 對 WdfInterruptQueueWorkItemForIsr 的呼叫成功,後續呼叫就不會將其他回呼排入佇列。
如需在架構型驅動程式中處理中斷的詳細資訊,請參閱 處理硬體中斷。
如果驅動程式使用未指定 EvtInterruptWorkItem 回呼函式的中斷物件呼叫 WdfInterruptQueueWorkItemForIsr,就會發生錯誤檢查。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.11 |
最低UMDF版本 | 2.0 |
標頭 | wdfinterrupt.h (包含 Wdf.h) |
程式庫 | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | <=DIRQL |
DDI 合規性規則 | DriverCreate (kmdf) |