KeSetTargetProcessorDpc 函数 (wdm.h)

KeSetTargetProcessorDpc 例程指定运行 DPC 例程的处理器。

语法

void KeSetTargetProcessorDpc(
  [in, out] PRKDPC Dpc,
  [in]      CCHAR  Number
);

参数

[in, out] Dpc

指向调用方 DPC 对象的指针,该对象 KeInitializeDpc 已初始化。

[in] Number

指定目标处理器的从零开始的数目,DPC 应在其中排队和执行。

返回值

没有

言论

在多处理器系统上,每个处理器都有自己的 DPC 队列。 KeSetTargetProcessorDpc 例程指定在驱动程序调用 KeInsertQueueDpcIoRequestDpc 以将 DPC 排队以稍后运行时应使用的处理器队列。

从 Windows Vista 开始,还可以使用 KeSetTargetProcessorDpc线程 DPC指定目标处理器。

对在 DPC 对象排队后发生的 KeSetTargetProcessorDpcEx 的调用对要运行的 DPC 例程的选择没有影响。 若要控制目标处理器的选择,必须在调用排队 DPC 对象的 KeInsertQueueDpcIoRequestDpc 之前进行 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 任何级别

另请参阅

IoRequestDpc

KeGetCurrentProcessorNumber

KeInitializeDpc

KeInsertQueueDpc

KeSetImportanceDpc

KeSetTargetProcessorDpcEx