KeRevertToUserAffinityThreadEx 함수(wdm.h)

KeRevertToUserAffinityThreadEx 루틴은 현재 스레드의 이전 선호도를 복원합니다.

구문

void KeRevertToUserAffinityThreadEx(
  [in] KAFFINITY Affinity
);

매개 변수

[in] Affinity

현재 스레드의 새 시스템 선호도를 지정하는 KAFFINITY 형식 변수입니다. 이 매개 변수를 KeSetSystemAffinityThreadEx 루틴에 대한 이전 호출에서 반환된 값으로 설정합니다.

반환 값

없음

설명

KeRevertToUserAffinityThreadEx 는 현재 스레드의 선호도를 변경합니다. 선호도 값은 스레드를 실행할 수 있는 프로세서 집합을 식별하는 마스크입니다. 성공하면 루틴은 스레드가 이 집합의 프로세서에서 실행되도록 예약합니다.

선호도 값이 0이 아니면 KeRevertToUserAffinityThreadEx는 스레드의 선호도 마스크를 선호도 값으로 설정합니다. 선호도 값이 0이면 KeRevertToUserAffinityThreadEx는 스레드의 원래 사용자 선호도 마스크를 복원합니다. 이 원래 사용자 선호도 마스크는 KeSetSystemAffinityThreadEx에 대한 이전 호출에 의해 스레드 개체에 저장되었습니다. KeSetSystemAffinityThreadEx 호출이 앞에 오는 경우가 아니면 KeRevertToUserAffinityThreadEx에 대한 호출은 효과가 없습니다.

선호도 값이 0이 아닌 경우 루틴은 다음 중 둘 다 true인 경우에만 현재 스레드의 선호도 마스크를 선호도 값으로 변경합니다.

  • 선호도 값은 유효합니다(즉, 논리 프로세서에 해당하는 마스크 비트만 설정됨).
  • 선호도 값에 지정된 프로세서 중 하나 이상이 활성화되어 있습니다.
이러한 조건 중 하나가 충족되지 않으면 KeRevertToUserAffinityThreadEx 에 대한 호출은 적용되지 않습니다.

Windows 7 이상 버전의 Windows는 프로세서 그룹을 지원합니다. 프로세서 그룹에 대한 정보를 처리하도록 설계된 드라이버는 그렇지 않은 KeRevertToUserAffinityThreadEx 대신 프로세서 그룹을 지정하는 KeRevertToUserGroupAffinityThread 루틴을 사용해야 합니다. 그러나 Windows 7 이상 버전의 Windows에서 KeRevertToUserAffinityThreadEx 를 구현하면 프로세서 그룹을 지원하지 않는 이전 버전의 Windows용으로 작성된 드라이버에 대한 호환성이 제공됩니다. 이 구현에서 0이 아닌 선호도 값은 스레드를 실행할 수 있는 그룹 0의 논리 프로세서 집합을 지정하는 선호도 마스크입니다. 선호도가 0이면 스레드가 원래 사용자 모드 그룹 번호 및 선호도 마스크로 되돌아갑니다.

KeRevertToUserAffinityThreadEx가 IRQL <= APC_LEVEL 호출에 성공하면 새(되돌리기) 선호도 마스크가 즉시 적용됩니다. 호출이 반환되면 호출 스레드가 새 선호도 마스크에 지정된 프로세서에서 이미 실행되고 있습니다. KeRevertToUserAffinityThreadEx가 IRQL = DISPATCH_LEVEL 호출에 성공하면 호출자가 DISPATCH_LEVEL 아래 IRQL을 낮출 때까지 보류 중인 프로세서 변경이 지연됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 및 이후 버전의 Windows에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL(주의 섹션 참조).
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

추가 정보

KAFFINITY

KeRevertToUserGroupAffinityThread

KeSetSystemAffinityThreadEx