WdfInterruptSetPolicy 函数 (wdfinterrupt.h)
[适用于 KMDF 和 UMDF]
WdfInterruptSetPolicy 方法指定指定中断的中断优先级、处理器相关性和关联策略。
语法
void WdfInterruptSetPolicy(
[in] WDFINTERRUPT Interrupt,
[in] WDF_INTERRUPT_POLICY Policy,
[in] WDF_INTERRUPT_PRIORITY Priority,
[in] KAFFINITY TargetProcessorSet
);
参数
[in] Interrupt
框架中断对象的句柄。
[in] Policy
一个WDF_INTERRUPT_POLICY类型的枚举器,用于指定中断的处理器关联策略。
[in] Priority
一个WDF_INTERRUPT_PRIORITY类型的枚举器,用于指定中断的优先级。
[in] TargetProcessorSet
一个 KAFFINITY 类型的值,如果 Policy 参数设置为 WdfIrqPolicySpecifiedProcessors,则指定中断的处理器相关性。
返回值
无
备注
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
Windows Vista 和更高版本的操作系统允许驱动程序指定中断的优先级、处理器相关性和关联策略。 有关如何使用注册表替代 WdfInterruptSetPolicy 设置的值的信息,请参阅 中断相关性和优先级。
如果驱动程序在低于 Windows Vista 的操作系统版本上运行,框架将忽略驱动程序在调用 WdfInterruptSetPolicy 时指定的值。
有关注册表值和用于指定中断优先级、处理器相关性和相关性策略的 INF 部分的详细信息,请参阅 中断相关性和优先级。
如果驱动程序调用 WdfInterruptSetPolicy,它通常在调用 WdfInterruptCreate 后在其 EvtDriverDeviceAdd 回调函数中执行此操作。
如果驱动程序在 EvtDevicePrepareHardware 中创建中断,请不要使用 WdfInterruptSetPolicy 或 WdfInterruptSetExtendedPolicy。 相反,通过直接操作此回调函数在其 IoResourceRequirementsList 参数中接收的中断资源要求,在 EvtDeviceFilterAddResourceRequirements中 应用策略。
有关在基于框架的驱动程序中处理中断的详细信息,请参阅 处理硬件中断。
示例
下面的代码示例将设备中断分配给处理器 0,优先级正常。
#define AFFINITY_MASK(n) ((ULONG_PTR)1 << (n))
WdfInterruptSetPolicy(
Interrupt,
WdfIrqPolicySpecifiedProcessors,
WdfIrqPriorityNormal,
AFFINITY_MASK(0)
);
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfinterrupt.h (包括 Wdf.h) |
Library | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI 符合性规则 | DriverCreate (kmdf) |