IWDFInterrupt::SetPolicy 方法 (wudfddi.h)
[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 未向 UMDF 1 添加新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]
SetPolicy 方法指定指定中断的中断优先级、处理器相关性和关联策略。
语法
void SetPolicy(
[in] WDF_INTERRUPT_POLICY Policy,
[in] WDF_INTERRUPT_PRIORITY Priority,
[in] KAFFINITY TargetProcessorSet
);
参数
[in] Policy
一个WDF_INTERRUPT_POLICY类型的枚举器,用于指定中断的处理器关联策略。
[in] Priority
一个WDF_INTERRUPT_PRIORITY类型的枚举器,用于指定中断的优先级。
[in] TargetProcessorSet
如果 Policy 参数设置为 WdfIrqPolicySpecifiedProcessors,则为中断指定处理器相关性的 KAFFINITY 类型值。
返回值
无
备注
从 Windows Vista 开始,驱动程序可以指定中断的优先级、处理器相关性和关联策略。 有关如何使用注册表替代 SetPolicy 设置的值的详细信息,请参阅 中断相关性和优先级。
如果驱动程序在早于 Windows Vista 的操作系统版本上运行,框架将忽略驱动程序在调用 SetPolicy 时指定的值。
有关指定中断优先级、处理器相关性和关联策略的注册表值和 INF 部分的详细信息,请参阅 中断相关性和优先级。
如果驱动程序调用 SetPolicy,则必须在调用 IWDFDevice3::CreateInterrupt 方法后在其 IDriverEntry::OnDeviceAdd 回调函数中执行此操作。
有关在 UMDF 驱动程序中处理中断的详细信息,请参阅 访问硬件和处理中断。
示例
下面的代码示例将设备中断分配给具有正常优先级的处理器 0。
#define AFFINITY_MASK(n) ((ULONG_PTR)1 << (n))
pIWdfInterrupt->SetPolicy(
WdfIrqPolicySpecifiedProcessors,
WdfIrqPriorityNormal,
AFFINITY_MASK(0)
);
要求
要求 | 值 |
---|---|
结束支持 | 在 UMDF 2.0 及更高版本中不可用。 |
目标平台 | 桌面 |
最低 UMDF 版本 | 1.11 |
标头 | wudfddi.h |
DLL | WUDFx.dll |