EVT_WDF_INTERRUPT_WORKITEM回呼函式 (wdfinterrupt.h)
[適用於 KMDF 和 UMDF]
驅動程式的 EvtInterruptWorkItem 事件回呼函式會處理驅動程式 的 EvtInterruptIsr 回呼函式已儲存的中斷資訊。
語法
EVT_WDF_INTERRUPT_WORKITEM EvtWdfInterruptWorkitem;
void EvtWdfInterruptWorkitem(
[in] WDFINTERRUPT Interrupt,
[in] WDFOBJECT AssociatedObject
)
{...}
參數
[in] Interrupt
架構中斷物件的句柄。
[in] AssociatedObject
驅動程式傳遞至 WdfInterruptCreate 之架構裝置物件的句柄。
傳回值
無
備註
EvtInterruptWorkItem 回呼函式會在 IRQL = PASSIVE_LEVEL執行。
若要註冊 EvtInterruptWorkItem 回呼函式,您的驅動程式必須在呼叫 WdfInterruptCreate 之前,將回呼函式的位址放在WDF_INTERRUPT_CONFIG結構中。
大部分驅動程式都會針對每種中斷類型使用單一 EvtInterruptWorkItem 回 呼函式。
若要排程 EvtInterruptWorkItem 回呼函式的執行,驅動程式必須從 EvtInterruptIsr 回呼函式內呼叫 WdfInterruptQueueWorkItemForIsr。
如果您的驅動程式為每個裝置建立多個架構中斷物件,您可以考慮針對每個中斷使用不同的 EvtInterruptWorkItem 回 呼。
實作 DIRQL 中斷處理或被動層級中斷處理的驅動程式可以將 EvtInterruptWorkItem 回 呼排入佇列。
驅動程式無法將 EvtInterruptDpc 和 EvtInterruptWorkItem 回 呼排入佇列。
如果驅動程式已在中斷的WDF_INTERRUPT_CONFIG結構中將 AutomaticSerialization 成員設定為 TRUE,架構就會同步處理中斷物件的 EvtInterruptWorkItem 回呼函式的執行,以及中斷父物件底下其他物件的回呼函式。 如需回呼同步處理鎖定的相關信息,請參閱 使用架構鎖定。
一般而言,如果驅動程式需要從 EvtInterruptWorkItem 內取得插斷對象的被動鎖定,驅動程式應該將 WDF_INTERRUPT_CONFIG 的 AutomaticSerialization 成員設定為 FALSE,然後從 EvtInterruptWorkItem 內呼叫 WdfInterruptAcquireLock。
如果 AutomaticSerialization 設定為 TRUE,驅動程式的 EvtInterruptWorkItem 回呼函式不應該呼叫下列任何方法:
WdfInterruptAcquireLockWdfInterruptSynchronizeWdfInterruptDisable WdfInterruptEnable 如需在架構型驅動程式中處理中斷的詳細資訊,請參閱處理硬體中斷。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.11 |
最低UMDF版本 | 2.0 |
標頭 | wdfinterrupt.h (包含 Wdf.h) |
IRQL | PASSIVE_LEVEL |