ExecuteUmsThread 函式 (winbase.h)

執行指定的 UMS 背景工作執行緒。

警告

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

語法

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

參數

[in, out] UmsThread

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

傳回值

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

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

傳回碼 說明
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