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


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

Запускает указанный рабочий поток UMS.

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

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

Синтаксис

BOOL ExecuteUmsThread(
  [in, out] PUMS_CONTEXT UmsThread
);

Параметры

[in, out] UmsThread

Указатель на контекст потока UMS для запуска рабочего потока.

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

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

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

Код возврата Описание
ERROR_RETRY
Указанный рабочий поток UMS временно блокируется системой. Вызывающий объект может повторить операцию.
ERROR_NOT_SUPPORTED
UMS не поддерживается.

Комментарии

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

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

Функция ExecuteUmsThread не возвращает, если не возникнет ошибка. Если функция возвращает ERROR_RETRY, ошибка является временной, и операцию можно повторить.

Если функция возвращает ошибку, отличающаяся от ERROR_RETRY, планировщик приложения должен проверка, будет ли поток приостановлен или завершен путем вызова QueryUmsThreadInformation с UmsThreadIsSuspended или UmsThreadIsTerminated соответственно. Другие возможные ошибки включают вызов функции в потоке, который не является потоком планировщика UMS, передача недопустимого контекста рабочего потока UMS или указание рабочего потока, который уже выполняется в другом потоке планировщика.

Требования

Требование Значение
Минимальная версия клиента 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)

См. также раздел

UmsSchedulerProc

UmsThreadYield

UpdateProcThreadAttribute