IWDFInterrupt::SetExtendedPolicy 方法(wudfddi.h)

[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 没有将新功能添加到 UMDF 1,并且对较新版本的 Windows 10 上的 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅 UMDF入门 。]

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

语法

void SetExtendedPolicy(
  [in] PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
);

参数

[in] PolicyAndGroup

指向调用方分配的 WDF_INTERRUPT_EXTENDED_POLICY 结构的指针,驱动程序以前通过调用 WDF_INTERRUPT_EXTENDED_POLICY_INIT进行初始化。

返回值

没有

言论

此方法等效于 KMDF 的 WdfInterruptSetExtendedPolicy。 有关此方法的详细信息,请参阅 WdfInterruptSetExtendedPolicy 的“备注”部分。

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

有关在 UMDF 驱动程序中处理中断的详细信息,请参阅 访问硬件和处理中断

例子

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


IWDFInterrupt* pInterrupt;

#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;

pInterrupt->SetExtendedPolicy(
                              &myExtendedPolicy
 );

要求

要求 价值
终止支持 在 UMDF 2.0 及更高版本中不可用。
目标平台 桌面
最低 UMDF 版本 1.11
标头 wudfddi.h
DLL WUDFx.dll

另请参阅

IWDFInterrupt

WDF_INTERRUPT_EXTENDED_POLICY

WDF_INTERRUPT_EXTENDED_POLICY_INIT