EVT_WDF_INTERRUPT_DISABLE回呼函式 (wdfinterrupt.h)

[適用於 KMDF 和 UMDF]

驅動程式的 EvtInterruptDisable 事件回呼函式會停用指定的硬體中斷。

語法

EVT_WDF_INTERRUPT_DISABLE EvtWdfInterruptDisable;

NTSTATUS EvtWdfInterruptDisable(
  [in] WDFINTERRUPT Interrupt,
  [in] WDFDEVICE AssociatedDevice
)
{...}

參數

[in] Interrupt

架構中斷物件的句柄。

[in] AssociatedDevice

驅動程式傳遞至 WdfInterruptCreate 之架構裝置物件的句柄。

傳回值

EvtInterruptDisable 回呼函式必須傳回STATUS_SUCCESS或另一個狀態值,如果函式沒有發生錯誤,NT_SUCCESS (狀態) 等於 TRUE。 否則,此函式必須傳回狀態值,NT_SUCCESS (狀態) 等於 FALSE

備註

若要註冊 EvtInterruptDisable 回呼函式,您的驅動程式必須在呼叫 WdfInterruptCreate 之前,將回呼函式的位址放在WDF_INTERRUPT_CONFIG結構中。

此架構會在每次裝置離開其運作 (D0) 狀態時呼叫驅動程式的 EvtInterruptDisable 回呼函式。 此外,驅動程式可藉由呼叫 WdfInterruptDisable,造成架構呼叫 EvtInterruptDisable 回呼函式。 請注意,大部分以架構為基礎的驅動程式不應該呼叫 WdfInterruptDisable,因為每次裝置離開其運作 (D0) 狀態時,架構都會呼叫驅動程式的 EvtInterruptDisable 回呼函式。

在呼叫 EvtInterruptDisable 回呼函式之前,架構會將處理器的 IRQL 引發至裝置的 DIRQL,並取得中斷物件 WDF_INTERRUPT_CONFIG 結構中指定的驅動程式微調鎖定。

從 KMDF 1.11 版開始,您的驅動程式可以提供 被動層級中斷處理。 如果驅動程式要求被動層級中斷處理,則在 IRQL = PASSIVE_LEVEL 呼叫 EvtInterruptDisable 函式之前,架構會取得驅動程式在中斷物件 WDF_INTERRUPT_CONFIG 結構中設定的被動層級中斷鎖定。

呼叫 EvtInterruptDisable 回呼函式之前,架構會在 IRQL = PASSIVE_LEVEL 呼叫驅動程式的 EvtDeviceD0ExitPreInterruptsDisabled 事件回呼函式。

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

規格需求

需求
目標平台 Universal
最低 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 wdfinterrupt.h (包含 Wdf.h)
IRQL (請參閱<註解>區段)。

另請參閱

EvtDeviceD0ExitPreInterruptsDisabled

EvtInterruptEnable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptDisable