ExecuteUmsThread 函数 (winbase.h)
运行指定的 UMS 工作线程。
警告
自Windows 11起,不支持用户模式计划。 所有调用都失败,出现错误 ERROR_NOT_SUPPORTED
。
语法
BOOL ExecuteUmsThread(
[in, out] PUMS_CONTEXT UmsThread
);
参数
[in, out] UmsThread
指向要运行的工作线程的 UMS 线程上下文的指针。
返回值
如果函数成功,则不会返回值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。 可能的错误代码包括以下内容。
返回代码 | 说明 |
---|---|
|
指定的 UMS 工作线程被系统暂时锁定。 调用方可以重试该操作。 |
|
不支持 UMS。 |
注解
ExecuteUmsThread 函数通过调用 UMS 计划程序线程的状态加载指定的 UMS 工作线程的状态,以便工作线程可以运行。 工作线程运行,直到它通过调用 UmsThreadYield 函数、阻止或终止生成。
当工作线程生成或阻止时,系统会调用计划程序线程的 UmsSchedulerProc 入口点函数。 当以前阻止的工作线程取消阻止时,系统会在创建工作线程时将工作线程排入使用 UpdateProcThreadAttribute 函数指定的完成列表。
除非发生错误, 否则 ExecuteUmsThread 函数不会返回。 如果函数返回ERROR_RETRY,则错误是暂时性的,可以重试该操作。
如果函数返回ERROR_RETRY以外的错误,则应用程序的计划程序应分别使用 UmsThreadIsSuspended 或 UmsThreadIsTerminated 调用 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 ( |