Функция 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 | Любой уровень |