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