다음을 통해 공유


KeSetTargetProcessorDpcEx 함수(wdm.h)

KeSetTargetProcessorDpcEx 루틴은 DPC 루틴이 실행되는 프로세서를 지정합니다.

통사론

NTSTATUS KeSetTargetProcessorDpcEx(
  [in, out] PKDPC             Dpc,
  [in]      PPROCESSOR_NUMBER ProcNumber
);

매개 변수

[in, out] Dpc

호출자의 DPC 개체대한 포인터입니다. 이 매개 변수는 DPC 개체를 나타내는 불투명한 시스템 구조인 KDPC 구조를 가리킵니다. 이 개체는 이전에 KeInitializeDpc 루틴에 의해 초기화되어야 합니다.

[in] ProcNumber

DPC가 큐에 대기되고 실행될 대상 프로세서를 식별하는 호출자 할당 PROCESSOR_NUMBER 구조체에 대한 포인터입니다. 이 구조는 이 그룹 내의 그룹 및 프로세서를 지정합니다.

반환 값

KeSetTargetProcessorDpcEx 호출에 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 다음을 반환합니다.

반환 코드 묘사
STATUS_INVALID_PARAMETER
ProcNumber 매개 변수는 잘못된 프로세서 번호를 가리킵니다.

발언

다중 프로세서 시스템의 각 프로세서에는 자체 DPC 큐가 있습니다. KeSetTargetProcessorDpcEx 드라이버가 KeInsertQueueDpc 호출하거나 IoRequestDpc 루틴을 호출하여 나중에 실행할 DPC를 큐에 추가할 때 시스템에서 사용해야 하는 프로세서 큐를 지정합니다.

KeSetTargetProcessorDpcEx 일반 DPC 및 스레드된 DPC모두에 대한 대상 프로세서를 지정할 수 있습니다. 일반 DPC는 우선 순위가 높은 스레드에서도 선점할 수 없지만, 스레드 DPC는 우선 순위가 충분히 높은 시간이 중요한 스레드에 의해 선점될 수 있습니다.

관련 루틴인 KeSetTargetProcessorDpcDPC의 대상 프로세서를 지정하지만 이 루틴은 KeSetTargetProcessorDpcEx달리 대상 프로세서에 대한 그룹을 지정하지 않습니다. Windows 7부터 KeSetTargetProcessorDpc 대상 프로세서가 그룹 0에 속한다고 가정합니다. 이 동작은 KeSetTargetProcessorDpc 호출하고 그룹 지향 기능을 사용하지 않는 기존 드라이버가 둘 이상의 그룹이 있는 다중 프로세서 시스템에서 올바르게 실행되도록 합니다. 그러나 Windows 7 이상 버전의 Windows 운영 체제에서 그룹 지향 기능을 사용하는 드라이버는 KeSetTargetProcessorDpc대신 KeSetTargetProcessorDpcEx 호출해야 합니다.

DPC 개체가 큐에 대기된 후 발생하는 KeSetTargetProcessorDpcEx 대한 호출은 DPC 루틴을 실행할 프로세서의 선택에 영향을 주지 않습니다. 대상 프로세서의 선택을 제어하려면 KeSetTargetProcessorDpcEx 호출은 KeInsertQueueDpc 또는 DPC 개체를 큐에 대기하는 IoRequestDpc 호출하기 전에 발생해야 합니다.

DPC 큐에 대한 자세한 내용은 DPC 큐 구성참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows 7부터 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준

참고 항목

IoRequestDpc

KDPC

KeInitializeDpc

KeInsertQueueDpc

KeSetTargetProcessorDpc

PROCESSOR_NUMBER