EVT_WDF_INTERRUPT_ENABLE回呼函式 (wdfinterrupt.h)
[適用於 KMDF 和 UMDF]
驅動程式的 EvtInterruptEnable 事件回呼函式會啟用指定的硬體中斷。
語法
EVT_WDF_INTERRUPT_ENABLE EvtWdfInterruptEnable;
NTSTATUS EvtWdfInterruptEnable(
[in] WDFINTERRUPT Interrupt,
[in] WDFDEVICE AssociatedDevice
)
{...}
參數
[in] Interrupt
架構中斷物件的句柄。
[in] AssociatedDevice
驅動程式傳遞至 WdfInterruptCreate 之架構裝置物件的句柄。
傳回值
EvtInterruptEnable 回呼函式必須傳回 STATUS_SUCCESS 或另一個狀態值,如果函式遇到錯誤,NT_SUCCESS (狀態) 等於 TRUE。 否則,此函式必須傳回狀態值,NT_SUCCESS (狀態) 等於 FALSE。
備註
若要註冊 EvtInterruptEnable 回呼函式,您的驅動程式必須在呼叫 WdfInterruptCreate 之前,將回呼函式的位址放在WDF_INTERRUPT_CONFIG結構中。
每當裝置進入其運作中 (D0) 狀態時,架構都會呼叫驅動程式的 EvtInterruptEnable 回呼函式。 此外,驅動程式可藉由呼叫 WdfInterruptEnable,造成架構呼叫 EvtInterruptEnable 回呼函式。 請注意,大部分架構型驅動程序不應該呼叫 WdfInterruptEnable,因為架構會在每次裝置進入其運作 (D0) 狀態時呼叫驅動程式的 EvtInterruptEnable 回呼函式。
在呼叫 EvtInterruptEnable 回呼函式之前,架構會將處理器的 IRQL 引發至裝置的 DIRQL,並取得中斷物件 WDF_INTERRUPT_CONFIG 結構中指定的驅動程式微調鎖定。
從 KMDF 1.11 版開始,您的驅動程式可以提供 被動層級中斷處理。 如果驅動程式要求被動層級中斷處理,則在 IRQL = PASSIVE_LEVEL 呼叫 EvtInterruptEnable 函式之前,架構會取得驅動程式在中斷物件 WDF_INTERRUPT_CONFIG 結構中設定的被動層級中斷鎖定。
在 EvtInterruptEnable 回呼函式傳回之後,架構會在 IRQL = PASSIVE_LEVEL 呼叫驅動程式的 EvtDeviceD0EntryPostInterruptsEnabled 事件回呼函式。
您不得假設每次架構呼叫驅動程式的 EvtInterruptEnable 回呼函式時,裝置都會使用相同的中斷資源。 有時候,PnP 管理員 會轉散發系統資源,而且可能會將新的中斷資源指派給您的裝置。 驅動程式可以呼叫 WdfInterruptGetInfo 來判斷裝置的中斷資源。
如需在架構型驅動程式中處理中斷的詳細資訊,請參閱 處理硬體中斷。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.0 |
最低UMDF版本 | 2.0 |
標頭 | wdfinterrupt.h (包含 Wdf.h) |
IRQL | (請參閱<註解>區段)。 |