启用和禁用 UMDF 1 (中断)

警告

UMDF 2 是 UMDF 的最新版本,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 不会向 UMDF 1 添加任何新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。

存档的 UMDF 1 示例可在 Windows 11 版本 22H2 - 2022 年 5 月驱动程序示例更新中找到。

有关详细信息,请参阅使用 UMDF 入门

如果驱动程序处理设备中断,则必须提供启用和禁用中断的 OnInterruptEnableOnInterruptDisable 回调函数。 这些回调函数必须执行任何必要的操作来启用和禁用设备的中断机制。

如果驱动程序必须执行与启用或禁用中断相关的其他操作,驱动程序还可以提供 IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabledIPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled 回调函数。

框架在框架调用驱动程序的 OnD0Entry 回调函数后,每次设备进入其工作 (D0) 状态时,框架都会调用驱动程序的 OnInterruptEnable 和 IPnpCallbackHardwareInterruptInterrupt::OnD0EntryPostInterruptsEnabled 回调函数。 在框架调用驱动程序的 OnD0Exit 回调函数之前,每当设备离开其工作状态时,框架都会调用驱动程序的 IPnpCallbackHardwareInterruptInterrupt::OnD0ExitPreInterruptsDisabledOnInterruptDisable 回调函数。 有关框架何时调用驱动程序的回调函数的详细信息,请参阅 基于 UMDF 的驱动程序中的 PnP 和电源管理

不得假定每次框架调用驱动程序的 OnInterruptEnable 回调函数时,设备将使用相同的中断资源。 有时,PnP 管理器会重新分发系统资源,并且它可能会为设备分配新的中断资源。

驱动程序可以调用 IWDFInterrupt::GetInfo 来确定设备的中断资源。 驱动程序可以调用 IWDFInterrupt::GetDevice 来确定中断对象所属的设备。

若要直接启用和禁用中断,驱动程序可以调用中断对象的 IWDFInterrupt::EnableIWDFInterrupt::D isable 方法,这些方法调用驱动程序的 OnInterruptEnableOnInterruptDisable 事件回调函数。 但是,大多数驱动程序应只允许框架在适当时间调用 OnInterruptEnableOnInterruptDisable 回调函数。