Share via


EnterUmsSchedulingMode 함수(winbase.h)

호출 스레드를 UMS(사용자 모드 예약) 스케줄러 스레드로 변환합니다.

경고

Windows 11 현재 사용자 모드 예약은 지원되지 않습니다. 오류로 모든 호출이 실패합니다 ERROR_NOT_SUPPORTED.

구문

BOOL EnterUmsSchedulingMode(
  [in] PUMS_SCHEDULER_STARTUP_INFO SchedulerStartupInfo
);

매개 변수

[in] SchedulerStartupInfo

완료 목록 및 UmsSchedulerProc 진입점 함수를 포함하여 스레드에 대한 UMS 특성을 지정하는 UMS_SCHEDULER_STARTUP_INFO 구조체에 대한 포인터입니다.

반환 값

함수가 성공하면 0이 아닌 값을 반환합니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

애플리케이션의 UMS 스케줄러는 UMS 스레드를 실행하는 데 사용할 각 프로세서에 대해 하나의 UMS 스케줄러 스레드를 만듭니다. 스케줄러는 일반적으로 단일 프로세서에 대한 스케줄러 스레드의 선호도를 설정하여 해당 스케줄러 스레드를 사용하기 위해 프로세서를 효과적으로 예약합니다. 스레드 선호도에 대한 자세한 내용은 여러 프로세서를 참조하세요.

UMS 스케줄러 스레드가 만들어지면 시스템은 EnterUmsSchedulingMode 함수 호출로 지정된 UmsSchedulerProc 진입점 함수를 호출합니다. 애플리케이션의 스케줄러는 스케줄러 스레드의 애플리케이션별 초기화를 완료하고 실행할 UMS 작업자 스레드를 선택합니다.

애플리케이션의 스케줄러는 작업자 스레드의 UMS 스레드 컨텍스트를 사용하여 ExecuteUmsThread 를 호출하여 실행할 UMS 작업자 스레드를 선택합니다. 작업자 스레드는 UmsThreadYield, 블록 또는 종료를 호출하여 제어를 생성할 때까지 실행됩니다. 그런 다음 스케줄러 스레드를 사용하여 다른 작업자 스레드를 실행할 수 있습니다.

스케줄러 스레드는 모든 작업자 스레드가 자연 중지 지점에 도달할 때까지 계속 실행되어야 합니다. 즉, 모든 작업자 스레드가 생성, 차단 또는 종료되었습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 7(64비트만 해당) [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll
API 세트 api-ms-win-core-ums-l1-1-0(Windows 7에서 도입)

추가 정보

ExecuteUmsThread

다중 프로세서

UMS_SCHEDULER_STARTUP_INFO

UmsSchedulerProc

사용자 모드 예약