ExecuteUmsThread 函式 (winbase.h)

執行指定的 UMS 背景工作線程。

警告

從 Windows 11 起,不支援使用者模式排程。 所有呼叫都會失敗,並出現錯誤 ERROR_NOT_SUPPORTED

語法

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

參數

[in, out] UmsThread

要執行之背景工作線程之 UMS 線程內容的指標。

傳回值

如果函式成功,則不會傳回值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。 可能的錯誤碼包括下列專案。

傳回碼 Description
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)
程式庫 Kernel32.lib
DLL Kernel32.dll
API 集合 api-ms-win-core-ums-l1-1-0 (在 Windows 7)

另請參閱

UmsSchedulerProc

UmsThreadYield

UpdateProcThreadAttribute