Поделиться через


Функция KeSetTargetProcessorDpc (ntddk.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, чтобы указать целевой процессор для потоковых DPCs.

Вызов KeSetTargetProcessorDpc, который возникает после того, как объект DPC был поставлен в очередь, не влияет на выбор процессора для выполнения подпрограммы DPC. Чтобы контролировать выбор целевого процессора, необходимо выполнить вызов KeSetTargetProcessorDpc перед вызовом KeInsertQueueDpc или IoRequestDpc, в очереди объекта DPC.

Дополнительные сведения о очередях DPC см. в организации очередей DPC.

Windows 7 и более поздних версий групп обработчиков Windows. Драйверы, предназначенные для обработки сведений о группах процессоров, должны использовать подпрограмму keSetTargetProcessorDpcEx, которая задает группу процессоров вместо KeSetTargetProcessorDpc. Однако реализация KeSetTargetProcessorDpc в Windows 7 и более поздних версиях Windows обеспечивает совместимость драйверов, написанных для более ранних версий Windows, которые не поддерживают группы процессоров. В этой реализации, если число меньше числа активных логических процессоров в группе 0, KeSetTargetProcessorDpc задает целевой объект для DPC обработчику в группе 0, указанной числом. В противном случае целевой объект DPC не изменяется.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 2000.
целевая платформа Всеобщий
заголовка ntddk.h (включая Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень

См. также

IoRequestDpc

KeGetCurrentProcessorNumber

KeInitializeDpc

KeInsertQueueDpc

KeSetImportanceDpc

KeSetTargetProcessorDpcEx