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 (請參閱<註解>區段)。

另請參閱

EvtDeviceD0EntryPostInterruptsEnabled

EvtInterruptDisable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptEnable

WdfInterruptGetInfo