KeSetTargetProcessorDpc 函数 (wdm.h)
KeSetTargetProcessorDpc 例程指定运行 DPC 例程的处理器。
语法
void KeSetTargetProcessorDpc(
[in, out] PRKDPC Dpc,
[in] CCHAR Number
);
参数
[in, out] Dpc
指向调用方 DPC 对象的指针,该对象 KeInitializeDpc 已初始化。
[in] Number
指定目标处理器的从零开始的数目,DPC 应在其中排队和执行。
返回值
没有
言论
在多处理器系统上,每个处理器都有自己的 DPC 队列。 KeSetTargetProcessorDpc 例程指定在驱动程序调用 KeInsertQueueDpc 或 IoRequestDpc 以将 DPC 排队以稍后运行时应使用的处理器队列。
从 Windows Vista 开始,还可以使用 KeSetTargetProcessorDpc 为 线程 DPC指定目标处理器。
对在 DPC 对象排队后发生的 KeSetTargetProcessorDpcEx 的调用对要运行的 DPC 例程的选择没有影响。 若要控制目标处理器的选择,必须在调用排队 DPC 对象的 KeInsertQueueDpc 或 IoRequestDpc 之前进行 KeSetTargetProcessorDpc 调用。
有关 DPC 队列的详细信息,请参阅 组织 DPC 队列。
Windows 7 及更高版本的 Windows 支持处理器组。 设计用于处理处理器组信息的驱动程序应使用 KeSetTargetProcessorDpcEx 例程,该例程指定处理器组,而不是 KeSetTargetProcessorDpc,而不是不这样做。 但是,在 Windows 7 及更高版本中实现 KeSetTargetProcessorDpc 为早期版本的 Windows 编写的驱动程序提供了兼容性,这些驱动程序不支持处理器组。 在此实现中,如果 Number 小于组 0 中的活动逻辑处理器数,则 KeSetTargetProcessorDpc 将 DPC 的目标设置为由 Number指定的组 0 中的处理器。 否则,DPC 目标不会更改。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 普遍 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 |