ExecuteUmsThread 函式 (winbase.h)
執行指定的 UMS 背景工作線程。
警告
從 Windows 11 起,不支援使用者模式排程。 所有呼叫都會失敗,並出現錯誤 ERROR_NOT_SUPPORTED
。
語法
BOOL ExecuteUmsThread(
[in, out] PUMS_CONTEXT UmsThread
);
參數
[in, out] UmsThread
要執行之背景工作線程之 UMS 線程內容的指標。
傳回值
如果函式成功,則不會傳回值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。 可能的錯誤碼包括下列專案。
傳回碼 | Description |
---|---|
|
系統暫時鎖定指定的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) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |
API 集合 | api-ms-win-core-ums-l1-1-0 (在 Windows 7) |