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 计划程序线程时,系统会调用使用 EnterUmsSchedulingMode 函数调用指定的 UmsSchedulerProc 入口点函数。 应用程序的计划程序负责完成计划程序线程的任何特定于应用程序的初始化,并选择要运行的 UMS 工作线程。

应用程序的计划程序使用工作线程的 UMS 线程上下文调用 ExecuteUmsThread 来选择要运行的 UMS 工作线程。 工作线程运行,直到它通过调用 UmsThreadYield、阻止或终止来生成控制。 然后,计划程序线程可用于运行另一个工作线程。

计划程序线程应继续运行,直到其所有工作线程都达到一个自然的停止点:也就是说,所有工作线程都已生成、阻止或终止。

要求

   
最低受支持的客户端 仅 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 (

另请参阅

ExecuteUmsThread

多个处理器

UMS_SCHEDULER_STARTUP_INFO

UmsSchedulerProc

用户模式计划