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


Функция KeSetTargetProcessorDpc (ntddk.h)

Подпрограмма KeSetTargetProcessorDpc указывает процессор, на котором будет выполняться подпрограмма DPC.

Синтаксис

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

Параметры

[in, out] Dpc

Указатель на объект DPC вызывающего объекта, который keInitializeDpc уже инициализировал.

[in] Number

Указывает отсчитываемый от нуля номер целевого процессора, на котором должен быть поставлен в очередь и выполнен DPC.

Возвращаемое значение

None

Remarks

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

Начиная с Windows Vista, вы также можете использовать KeSetTargetProcessorDpc , чтобы указать целевой процессор для потоковых DPC.

Вызов 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