共用方式為


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 回 呼排入佇列。

驅動程式無法將 EvtInterruptDpcEvtInterruptWorkItem 回 呼排入佇列。

如果驅動程式已在中斷的WDF_INTERRUPT_CONFIG結構中將 AutomaticSerialization 成員設定為 TRUE,架構就會同步處理中斷物件的 EvtInterruptWorkItem 回呼函式的執行,以及中斷父物件底下其他物件的回呼函式。 如需回呼同步處理鎖定的相關信息,請參閱 使用架構鎖定

一般而言,如果驅動程式需要從 EvtInterruptWorkItem 內取得插斷對象的被動鎖定,驅動程式應該將 WDF_INTERRUPT_CONFIGAutomaticSerialization 成員設定為 FALSE,然後從 EvtInterruptWorkItem 內呼叫 WdfInterruptAcquireLock

如果 AutomaticSerialization 設定為 TRUE,驅動程式的 EvtInterruptWorkItem 回呼函式不應該呼叫下列任何方法:

WdfInterruptAcquireLockWdfInterruptSynchronizeWdfInterruptDisable WdfInterruptEnable 如需在架構型驅動程式中處理中斷的詳細資訊,請參閱處理硬體中斷

規格需求

需求
目標平台 Universal
最低 KMDF 版本 1.11
最低UMDF版本 2.0
標頭 wdfinterrupt.h (包含 Wdf.h)
IRQL PASSIVE_LEVEL