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 结构中。

每次设备离开工作状态时,框架都会调用驱动程序的 EvtInterruptDisable 回调函数 (D0) 状态。 此外,驱动程序还可能导致框架通过调用 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 事件回调函数。

有关在基于框架的驱动程序中处理中断的详细信息,请参阅 处理硬件中断

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfinterrupt.h (包括 Wdf.h)
IRQL (请参见“备注”部分。)

另请参阅

EvtDeviceD0ExitPreInterruptsDisabled

EvtInterruptEnable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptDisable