WdfInterruptSetExtendedPolicy 函数 (wdfinterrupt.h)

[适用于 KMDF 和 UMDF]

WdfInterruptSetExtendedPolicy 方法指定指定指定中断的中断优先级、处理器相关性、关联策略和处理器组。

语法

void WdfInterruptSetExtendedPolicy(
  [in] WDFINTERRUPT                   Interrupt,
  [in] PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
);

参数

[in] Interrupt

框架中断对象的句柄。

[in] PolicyAndGroup

指向调用方分配和初始化 WDF_INTERRUPT_EXTENDED_POLICY 结构的指针。

返回值

没有

注解

如果驱动程序提供无效的对象句柄,则会发生 bug 检查。

Windows Vista 和更高版本的作系统允许驱动程序使用 WdfInterruptSetPolicy 方法指定中断的优先级、处理器相关性和关联策略。 此外,KMDF 版本 1.9 及更高版本允许驱动程序使用 WdfInterruptSetExtendedPolicy 方法指定中断的优先级、处理器相关性、地缘策略和处理器组。

有关如何使用注册表替代 WdfInterruptSetExtendedPolicy 集的值的信息,请参阅 中断相关性和优先级

如果驱动程序在早于 Windows 7 的作系统版本上运行,框架将忽略驱动程序在调用 WdfInterruptSetExtendedPolicy时为处理器组编号指定的值。

如果驱动程序在早于 Windows Vista 的作系统版本上运行,则框架将忽略驱动程序在调用 WdfInterruptSetPolicyWdfInterruptSetExtendedPolicy时指定的所有值。

有关指定中断优先级、处理器相关性和关联策略的注册表值和 INF 部分的详细信息,请参阅 中断相关性和优先级

如果驱动程序调用 WdfInterruptSetExtendedPolicy,在调用 WdfInterruptCreate 后,它通常在其 EvtDriverDeviceAdd 回调函数中执行此作。

如果驱动程序在 EvtDevicePrepareHardware中创建中断,请不要使用 WdfInterruptSetPolicyWdfInterruptSetExtendedPolicy。 相反,可以通过直接作此回调函数在其 IoResourceRequirementsList 参数中接收的中断资源要求,在 EvtDeviceFilterAddResourceRequirementss中应用策略。

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

例子

以下代码示例调用 WDF_INTERRUPT_EXTENDED_POLICY_INIT 来初始化 WDF_INTERRUPT_EXTENDED_POLICY 结构;设置策略、优先级和目标处理器集的值;并调用 WdfInterruptSetExtendedPolicy。 该示例为中断设置正常优先级,并将中断分配给处理器组 2 中的处理器 0。

#define AFFINITY_MASK(n) ((ULONG_PTR)1 << (n))

WDF_INTERRUPT_EXTENDED_POLICY myExtendedPolicy;

WDF_INTERRUPT_EXTENDED_POLICY_INIT(&myExtendedPolicy);
myExtendedPolicy.Policy = WdfIrqPolicySpecifiedProcessors;
myExtendedPolicy.Priority = WdfIrqPriorityNormal;
myExtendedPolicy.TargetProcessorSetAndGroup.Mask = AFFINITY_MASK(0);
myExtendedPolicy.TargetProcessorSetAndGroup.Group = 2;

WdfInterruptSetExtendedPolicy(
                              Interrupt,
                              &myExtendedPolicy
 );

要求

要求 价值
目标平台 普遍
最低 KMDF 版本 1.9
最低 UMDF 版本 2.0
标头 wdfinterrupt.h (包括 Wdf.h)
图书馆 Wdf01000.sys(KMDF):WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI 符合性规则 DriverCreate(kmdf)

另请参阅

WdfInterruptSetPolicy