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 结构中。
每当设备进入其工作状态时,框架都会调用驱动程序的 EvtInterruptEnable 回调函数。 此外,驱动程序还可能导致框架通过调用 WdfInterruptEnable调用 EvtInterruptEnable 回调函数。 请注意,大多数基于框架的驱动程序不应调用 WdfInterruptEnable,因为每次设备进入其工作状态时,框架都会调用驱动程序的 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 来确定设备的中断资源。
有关在基于框架的驱动程序中处理中断的详细信息,请参阅 处理硬件中断。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfinterrupt.h (包括 Wdf.h) |
IRQL | (请参阅“备注”部分。 |