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


Функция EnterUmsSchedulingMode (winbase.h)

Преобразует вызывающий поток в поток планировщика пользовательского режима (UMS).

Предупреждение

С Windows 11 года планирование в пользовательском режиме не поддерживается. Все вызовы завершаются ошибкой ERROR_NOT_SUPPORTED.

Синтаксис

BOOL EnterUmsSchedulingMode(
  [in] PUMS_SCHEDULER_STARTUP_INFO SchedulerStartupInfo
);

Параметры

[in] SchedulerStartupInfo

Указатель на структуру UMS_SCHEDULER_STARTUP_INFO , которая задает атрибуты UMS для потока, включая список завершения и функцию точки входа UmsSchedulerProc .

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

Если функция выполняется успешно, она возвращает ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Планировщик UMS приложения создает один поток планировщика UMS для каждого процессора, который будет использоваться для запуска потоков UMS. Планировщик обычно задает сходство потока планировщика для одного процессора, фактически резервируя процессор для использования этого потока планировщика. Дополнительные сведения о сходстве потоков см. в разделе Несколько процессоров.

При создании потока планировщика UMS система вызывает функцию точки входа UmsSchedulerProc , указанную с помощью вызова функции EnterUmsSchedulingMode . Планировщик приложения отвечает за завершение инициализации потока планировщика для конкретного приложения и выбор рабочего потока UMS для запуска.

Планировщик приложения выбирает рабочий поток UMS для запуска путем вызова ExecuteUmsThread с контекстом потока UMS рабочего потока. Рабочий поток выполняется до тех пор, пока не даст управление путем вызова UmsThreadYield, блокирует или завершает работу. Затем поток планировщика будет доступен для запуска другого рабочего потока.

Поток планировщика должен продолжать работать до тех пор, пока все его рабочие потоки не достигнут естественной точки остановки: то есть все рабочие потоки дадут, блокируются или завершаются.

Требования

   
Минимальная версия клиента Windows 7 (только 64-разрядная версия) [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header 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

Планирование в пользовательском режиме