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 中创建中断,请不要使用 WdfInterruptSetPolicyWdfInterruptSetExtendedPolicy。 相反,通过直接操作此回调函数在其 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)

另请参阅

EvtDriverDeviceAdd

WdfInterruptCreate

WdfInterruptSetExtendedPolicy