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以外的错误,则应用程序的计划程序应分别使用 UmsThreadIsSuspendedUmsThreadIsTerminated 调用 QueryUmsThreadInformation 来检查线程是挂起还是终止。 其他可能的错误包括在不是 UMS 计划程序线程的线程上调用函数、传递无效的 UMS 工作线程上下文,或指定已在另一个计划程序线程上执行的工作线程。

要求

要求
最低受支持的客户端 仅 Windows 7 (64 位) [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll
API 集 windows 7) 中引入的 api-ms-win-core-ums-l1-1-0 (

另请参阅

UmsSchedulerProc

UmsThreadYield

UpdateProcThreadAttribute