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