處理序和執行緒函式

本主題描述進程和執行緒函式。

分派佇列函式

下列函式會建立 DispatcherQueueController

函式 描述
CreateDispatcherQueueController 建立 DispatcherQueueController ,其會管理 DispatcherQueue 的存留期,以在另一個執行緒上依優先順序執行佇列工作。

 

進程函式

下列函式會與 進程搭配使用。

函式 描述
CreateProcess 建立新的進程及其主要執行緒。
CreateProcessAsUser 建立新的進程及其主要執行緒。 新的進程會在指定權杖所代表之使用者的安全性內容中執行。
CreateProcessWithLogonW 建立新的進程及其主要執行緒。 然後,新的進程會在指定認證的安全性內容中執行指定的可執行檔, (使用者、網域和密碼) 。
CreateProcessWithTokenW 建立新的進程及其主要執行緒。 新的進程會在指定權杖的安全性內容中執行。
ExitProcess 結束呼叫進程及其所有線程。
FlushProcessWriteBuffers 排清執行目前進程執行緒之每個處理器的寫入佇列。
FreeEnvironmentStrings 釋放環境字串區塊。
GetCommandLine 擷取目前進程的命令列字串。
GetCurrentProcess 擷取目前進程的虛擬控制碼。
GetCurrentProcessId 擷取呼叫進程的進程識別碼。
GetCurrentProcessorNumber 擷取在呼叫此函式期間,目前線程執行所在的處理器數目。
GetEnvironmentStrings 擷取目前進程的環境區塊。
GetEnvironmentVariable 從呼叫進程的環境區塊擷取指定變數的值。
GetExitCodeProcess 擷取指定進程的終止狀態。
GetGuiResources 擷取圖形化使用者介面的控制碼計數, (GUI) 指定進程所使用的物件。
GetLogicalProcessorInformation 擷取邏輯處理器和相關硬體的相關資訊。
GetPriorityClass 擷取指定進程的優先順序類別。
GetProcessAffinityMask 擷取指定進程的進程親和性遮罩,以及系統的系統親和性遮罩。
GetProcessGroupAffinity 擷取指定進程的處理器群組親和性。
GetProcessHandleCount 擷取屬於指定進程的開啟控制碼數目。
GetProcessId 擷取指定進程的進程識別碼。
GetProcessIoCounters 擷取指定進程所執行之所有 I/O 作業的會計資訊。
GetProcessMitigationPolicy 擷取呼叫程式的風險降低原則設定。
GetProcessPriorityBoost 擷取指定進程的優先權提升控制項狀態。
GetProcessShutdownParameters 擷取目前呼叫進程的關機參數。
GetProcessTimes 擷取指定進程的計時資訊。
GetProcessVersion 擷取所指定進程預期執行之系統的主要和次要版本號碼。
GetProcessWorkingSetSize 擷取指定進程的最小和最大工作集大小。
GetProcessWorkingSetSizeEx 擷取指定進程的最小和最大工作集大小。
GetProcessorSystemCycleTime 擷取指定群組中每個處理器執行延後程序呼叫的週期時間, () 和插斷服務常式 (ISR) 。
GetStartupInfo 擷取建立呼叫進程時所指定的 STARTUPINFO 結構內容。
IsImmersiveProcess 判斷進程是否屬於 Windows 市集應用程式。
NeedCurrentDirectoryForExePath 判斷目前目錄是否應該包含在指定可執行檔的搜尋路徑中。
OpenProcess 開啟現有的本機進程物件。
QueryFullProcessImageName 擷取指定進程的可執行映射完整名稱。
QueryProcessAffinityUpdateMode 擷取指定進程的親和性更新模式。
QueryProcessCycleTime 擷取指定進程所有線程的週期時間總和。
SetEnvironmentVariable 設定目前進程的環境變數值。
SetPriorityClass 設定指定進程的優先順序類別。
SetProcessAffinityMask 為指定進程的執行緒設定處理器親和性遮罩。
SetProcessAffinityUpdateMode 設定指定進程的親和性更新模式。
SetProcessInformation 設定指定進程的資訊。
SetProcessMitigationPolicy 設定呼叫進程的風險降低原則。
SetProcessPriorityBoost 停用系統暫時提升指定進程執行緒優先權的能力。
SetProcessRestrictionExemption 免除呼叫程式的限制,以防止桌面進程與 Windows 市集應用程式環境互動。 開發和偵錯工具會使用此函式。
SetProcessShutdownParameters 設定目前呼叫進程的關機參數。
SetProcessWorkingSetSize 設定指定進程的最小和最大工作集大小。
SetProcessWorkingSetSizeEx 設定指定進程的最小和最大工作集大小。
TerminateProcess 終止指定的進程及其所有線程。

 

進程列舉函式

下列函式可用來列舉進程。

函式 描述
EnumProcesses 擷取系統中每個進程物件的進程識別碼。
Process32First 擷取系統快照集中所遇到的第一個進程相關資訊。
Process32Next 擷取系統快照中記錄之下一個進程的相關資訊。
WTSEnumerateProcesses 擷取指定終端伺服器上作用中進程的相關資訊。

 

原則函式

下列函式會與整個進程的原則搭配使用。

函式 描述
QueryProtectedPolicy 查詢與受保護原則相關聯的值。
SetProtectedPolicy 設定受保護的原則。

 

執行緒函式

下列函式會與 執行緒搭配使用。

函式 描述
AttachThreadInput 將某個執行緒的輸入處理機制附加至另一個執行緒的輸入處理機制。
CreateRemoteThread 建立在另一個進程的虛擬位址空間中執行的執行緒。
CreateRemoteThreadEx 建立執行緒,該執行緒會在另一個進程的虛擬位址空間中執行,並選擇性地指定擴充屬性,例如處理器群組親和性。
CreateThread 建立執行緒,以在呼叫進程的虛擬位址空間內執行。
ExitThread 結束呼叫執行緒。
GetCurrentThread 擷取目前線程的虛擬控制碼。
GetCurrentThreadId 擷取呼叫執行緒的執行緒識別碼。
GetExitCodeThread 擷取指定執行緒的終止狀態。
GetProcessIdOfThread 擷取與指定執行緒相關聯之進程的進程識別碼。
GetThreadDescription 藉由呼叫 SetThreadDescription擷取指派給執行緒的描述。
GetThreadGroupAffinity 擷取指定執行緒的處理器群組親和性。
GetThreadId 擷取指定執行緒的執行緒識別碼。
GetThreadIdealProcessorEx 擷取指定執行緒理想處理器的處理器編號。
GetThreadInformation 擷取指定執行緒的相關資訊。
GetThreadIOPendingFlag 判斷指定的執行緒是否有擱置的任何 I/O 要求。
GetThreadPriority 擷取指定執行緒的優先順序值。
GetThreadPriorityBoost 擷取指定執行緒的優先權提升控制狀態。
GetThreadTimes 擷取指定執行緒的計時資訊。
OpenThread 開啟現有的執行緒物件。
QueryIdleProcessorCycleTime 擷取系統中每個處理器閒置執行緒的週期時間。
QueryThreadCycleTime 擷取指定執行緒的週期時間。
ResumeThread 遞減執行緒的暫停計數。
SetThreadAffinityMask 設定指定執行緒的處理器親和性遮罩。
SetThreadDescription 將描述指派給執行緒。
SetThreadGroupAffinity 設定指定執行緒的處理器群組親和性。
SetThreadIdealProcessor 指定執行緒的慣用處理器。
SetThreadIdealProcessorEx 設定指定執行緒的理想處理器,並選擇性地擷取先前的理想處理器。
SetThreadInformation 設定指定執行緒的資訊。
SetThreadPriority 設定指定執行緒的優先順序值。
SetThreadPriorityBoost 停用系統暫時提升執行緒優先順序的能力。
SetThreadStackGuarantee 設定呼叫執行緒的堆疊保證。
Sleep 暫停指定間隔的目前線程執行。
SleepEx 暫停目前的執行緒,直到符合指定的條件為止。
SuspendThread 暫停指定的執行緒。
SwitchToThread 造成呼叫執行緒執行目前處理器上已就緒可執行的其他執行緒。
TerminateThread 終止執行緒。
ThreadProc 應用程式定義的函式,可作為執行緒的起始位址。
TlsAlloc 配置執行緒本機儲存體 (TLS) 索引。
TlsFree 釋放 TLS 索引。
TlsGetValue 針對指定的 TLS 索引,擷取呼叫執行緒 TLS 位置中的值。
TlsSetValue 將值儲存在呼叫執行緒的 TLS 位置中,以取得指定的 TLS 索引。
WaitForInputIdle 等候指定的進程等待使用者輸入,但沒有任何輸入擱置中,或直到逾時間隔經過為止。

 

進程和執行緒擴充屬性函式

下列函式可用來設定進程和執行緒建立的擴充屬性。

函式 描述
DeleteProcThreadAttributeList 刪除進程和執行緒建立的指定屬性清單。
InitializeProcThreadAttributeList 初始化進程和執行緒建立的指定屬性清單。
UpdateProcThreadAttribute 更新指定屬性清單中的指定屬性,以便建立進程和執行緒。

 

WOW64 函式

下列函式會與 WOW64搭配使用。

函式 描述
IsWow64Message 判斷從目前線程佇列讀取的最後一則訊息是否源自 WOW64 進程。
IsWow64Process 判斷指定的進程是否在 WOW64 下執行。
IsWow64Process2 判斷指定的進程是否在 WOW64 下執行;也會傳回其他機器進程和架構資訊。
Wow64SuspendThread 暫停指定的 WOW64 執行緒。

 

Job 物件函式

下列函式會與 工作物件搭配使用。

函式 描述
AssignProcessToJobObject 將進程與現有的工作物件產生關聯。
CreateJobObject 建立或開啟工作物件。
IsProcessInJob 判斷進程是否在指定的作業中執行。
OpenJobObject 開啟現有的工作物件。
QueryInformationJobObject 從工作物件擷取限制和作業狀態資訊。
SetInformationJobObject 設定工作物件的限制。
TerminateJobObject 終止目前與作業相關聯的所有進程。
UserHandleGrantAccess 授與或拒絕對 User 物件的控制碼存取具有使用者介面限制的工作。

 

執行緒集區函式

下列函式會與 執行緒集區搭配使用。

函式 描述
CallbackMayRunLong 表示回呼可能不會快速傳回。
CancelThreadpoolIo StartThreadpoolIo 函 式取消通知。
CloseThreadpool 關閉指定的執行緒集區。
CloseThreadpoolCleanupGroup 關閉指定的清除群組。
CloseThreadpoolCleanupGroupMembers 釋放指定清除群組的成員、等候所有回呼函式完成,並選擇性地取消任何未完成的回呼函式。
CloseThreadpoolIo 釋放指定的 I/O 完成物件。
CloseThreadpoolTimer 釋放指定的計時器物件。
CloseThreadpoolWait 釋放指定的 wait 物件。
CloseThreadpoolWork 釋放指定的工作物件。
CreateThreadpool 配置執行緒的新集區以執行回呼。
CreateThreadpoolCleanupGroup 建立應用程式可用來追蹤一或多個執行緒集區回呼的清除群組。
CreateThreadpoolIo 建立新的 I/O 完成物件。
CreateThreadpoolTimer 建立新的計時器物件。
CreateThreadpoolWait 建立新的等候物件。
CreateThreadpoolWork 建立新的工作物件。
DestroyThreadpoolEnvironment 刪除指定的回呼環境。 當不再需要回呼環境來建立新的執行緒集區物件時,請呼叫此函式。
DisassociateCurrentThreadFromCallback 移除目前執行中回呼函式與起始回呼的物件之間的關聯。 目前的執行緒將不再視為代表 物件執行回呼。
FreeLibraryWhenCallbackReturns 指定執行緒集區會在目前回呼完成時卸載的 DLL。
InitializeThreadpoolEnvironment 初始化回呼環境。
IsThreadpoolTimerSet 判斷指定的計時器物件目前是否已設定。
LeaveCriticalSectionWhenCallbackReturns 指定執行緒集區會在目前回呼完成時釋放的重要區段。
QueryThreadpoolStackInformation 擷取指定執行緒集區中線程的堆疊保留和認可大小。
ReleaseMutexWhenCallbackReturns 指定執行緒集區在目前回呼完成時將釋放的 Mutex。
ReleaseSemaphoreWhenCallbackReturns 指定執行緒集區會在目前回呼完成時釋放的旗號。
SetEventWhenCallbackReturns 指定執行緒集區會在目前回呼完成時設定的事件。
SetThreadpoolCallbackCleanupGroup 將指定的清除群組與指定的回呼環境產生關聯。
SetThreadpoolCallbackLibrary 確保只要有未完成的回呼,指定的 DLL 仍會保持載入狀態。
SetThreadpoolCallbackPersistent 指定回呼應該在持續性執行緒上執行。
SetThreadpoolCallbackPool 設定產生回呼時要使用的執行緒集區。
SetThreadpoolCallbackPriority 指定回呼函式相對於相同執行緒集區中其他工作專案的優先順序。
SetThreadpoolCallbackRunsLong 表示與此回呼環境相關聯的回呼可能不會快速傳回。
SetThreadpoolStackInformation 設定指定執行緒集區中新執行緒的堆疊保留和認可大小。
SetThreadpoolThreadMaximum 設定指定執行緒集區可以配置給處理回呼的執行緒數目上限。
SetThreadpoolThreadMinimum 設定指定執行緒集區必須提供給進程回呼的最小線程數目。
SetThreadpoolTimerEx 設定計時器物件。 背景工作執行緒會在指定的逾時到期之後呼叫計時器物件的回呼。
SetThreadpoolTimer 設定計時器物件。 背景工作執行緒會在指定的逾時到期之後呼叫計時器物件的回呼。
SetThreadpoolWait 設定 wait 物件。 背景工作執行緒會在控制碼變成訊號或指定的逾時到期之後呼叫等候物件的回呼函式。
SetThreadpoolWaitEx 設定 wait 物件。 背景工作執行緒會在控制碼變成訊號或指定的逾時到期之後呼叫等候物件的回呼函式。
StartThreadpoolIo 通知執行緒集區,I/O 作業可能針對指定的 I/O 完成物件開始。 背景工作執行緒會在系結至這個物件的檔案控制碼上完成作業之後,呼叫 I/O 完成物件的回呼函式。
SubmitThreadpoolWork 將工作物件張貼至執行緒集區。 背景工作執行緒會呼叫工作物件的回呼函式。
TpInitializeCallbackEnviron 初始化執行緒集區的回呼環境。
TpDestroyCallbackEnviron 刪除指定的回呼環境。 當不再需要回呼環境來建立新的執行緒集區物件時,請呼叫此函式。
TpSetCallbackActivationCoNtext 將啟用內容指派給回呼環境。
TpSetCallbackCleanupGroup 將指定的清除群組與指定的回呼環境產生關聯。
TpSetCallbackFinalizationCallback 指出回呼環境完成時要呼叫的函式。
TpSetCallbackLongFunction 表示與此回呼環境相關聯的回呼可能不會快速傳回。
TpSetCallbackNoActivationCoNtext 表示回呼環境沒有啟用內容。
TpSetCallbackPersistent 指定回呼應該在持續性執行緒上執行。
TpSetCallbackPriority 指定回呼函式相對於相同執行緒集區中其他工作專案的優先順序。
TpSetCallbackRaceWithDll 確保只要有未完成的回呼,指定的 DLL 仍會保持載入狀態。
TpSetCallbackThreadpool 將執行緒集區指派給回呼環境。
TrySubmitThreadpoolCallback 要求執行緒集區背景工作執行緒呼叫指定的回呼函式。
WaitForThreadpoolIoCallbacks 等候未完成的 I/O 完成回呼完成,並選擇性地取消尚未開始執行的擱置回呼。
WaitForThreadpoolTimerCallbacks 等候未完成的計時器回呼完成,並選擇性地取消尚未開始執行的擱置回呼。
WaitForThreadpoolWaitCallbacks 等候未處理的等候回呼完成,並選擇性地取消尚未開始執行的擱置回呼。
WaitForThreadpoolWorkCallbacks 等候未完成的工作回呼完成,並選擇性地取消尚未開始執行的擱置回呼。

 

下列函式是原始 執行緒共用 API 的一部分。

函式 描述
BindIoCompletionCallback 將執行緒集區所擁有的 I/O 完成埠與指定的檔案控制代碼產生關聯。 完成涉及此檔案的 I/O 要求時,非 I/O 背景工作執行緒會執行指定的回呼函式。
QueueUserWorkItem 將工作專案排入執行緒集區中的背景工作執行緒。
RegisterWaitForSingleObject 指示執行緒集區中的等候執行緒等候物件。
UnregisterWaitEx 等候一或所有指定的物件處於訊號狀態或逾時間隔經過為止。

 

執行緒排序服務函式

下列函式會與 執行緒排序服務搭配使用。

函式 描述
AvQuerySystemResponsiveness 擷取多媒體類別排程器服務所使用的系統回應性設定。
AvRtCreateThreadOrderingGroup 建立執行緒排序群組。
AvRtCreateThreadOrderingGroupEx 建立執行緒排序群組,並將伺服器執行緒與工作產生關聯。
AvRtDeleteThreadOrderingGroup 刪除呼叫端所建立的指定執行緒排序群組。
AvRtJoinThreadOrderingGroup 將用戶端執行緒聯結至執行緒排序群組。
AvRtLeaveThreadOrderingGroup 讓用戶端執行緒離開執行緒排序群組。
AvRtWaitOnThreadOrderingGroup 讓執行緒排序群組的用戶端執行緒等到應該執行為止。

 

多媒體類別排程器服務函式

下列函式會與 多媒體類別排程器服務搭配使用。

函式 描述
AvRevertMmThreadCharacteristics 表示執行緒不再執行與指定工作相關聯的工作。
AvSetMmMaxThreadCharacteristics 將呼叫執行緒與指定的工作產生關聯。
AvSetMmThreadCharacteristics 將呼叫執行緒與指定的工作產生關聯。
AvSetMmThreadPriority 調整呼叫執行緒的執行緒優先順序,相對於執行相同工作的其他執行緒。

 

Fiber 函式

下列函式會搭配 光纖使用。

函式 描述
ConvertFiberToThread 將目前的光纖轉換成執行緒。
ConvertThreadToFiber 將目前的執行緒轉換成光纖。
ConvertThreadToFiberEx 將目前的執行緒轉換成光纖。
CreateFiber 配置 Fiber 物件、將它指派給堆疊,並設定執行以在指定的起始位址開始。
CreateFiberEx 配置 Fiber 物件、將它指派給堆疊,並設定執行以在指定的起始位址開始。
DeleteFiber 刪除現有的光纖。
FiberProc 搭配 CreateFiber 函式使用的應用程式定義函式。
FlsAlloc 配置光纖本機儲存體 (FLS) 索引。
FlsFree 釋放 FLS 索引。
FlsGetValue 擷取所指定 FLS 索引之呼叫光纖 FLS 位置中的值。
FlsSetValue 針對指定的 FLS 索引,將值儲存在呼叫光纖的 FLS 位置中。
IsThreadAFiber 判斷目前線程是否為光纖。
SwitchToFiber 排程光纖。

 

NUMA 支援函式

下列函式提供 NUMA 支援

函式 描述
AllocateUserPhysicalPagesNuma 保留或認可指定進程虛擬位址空間內的記憶體區域,並指定實體記憶體的 NUMA 節點。
GetLogicalProcessorInformation 擷取邏輯處理器和相關硬體的相關資訊。
GetNumaAvailableMemoryNode 擷取指定節點中可用的記憶體數量。
GetNumaAvailableMemoryNodeEx 擷取指定節點中可用的記憶體數量,做為 USHORT 值。
GetNumaHighestNodeNumber 擷取目前具有最高數位的節點。
GetNumaNodeNumberFromHandle 擷取與檔案控制代碼基礎裝置相關聯的 NUMA 節點。
GetNumaNodeProcessorMask 擷取指定節點的處理器遮罩。
GetNumaNodeProcessorMaskEx 擷取指定 NUMA 節點的處理器遮罩作為 USHORT 值。
GetNumaProcessorNode 擷取指定處理器的節點編號。
GetNumaProcessorNodeEx 擷取指定之邏輯處理器的節點編號做為 USHORT 值。
GetNumaProximityNode 擷取指定鄰近識別碼的節點編號。
GetNumaProximityNodeEx 擷取節點編號作為指定鄰近識別碼的 USHORT 值。
VirtualAllocExNuma 保留或認可指定進程虛擬位址空間內的記憶體區域,並指定實體記憶體的 NUMA 節點。

 

處理器函式

下列函式會與邏輯處理器和 處理器群組搭配使用。

函式 描述
GetActiveProcessorCount 傳回處理器群組或系統中的作用中處理器數目。
GetActiveProcessorGroupCount 傳回系統中作用中處理器群組的數目。
GetCurrentProcessorNumber 擷取在呼叫此函式期間,目前線程執行所在的處理器數目。
GetCurrentProcessorNumberEx 擷取正在執行呼叫執行緒之邏輯處理器的處理器群組和數目。
GetLogicalProcessorInformation 擷取邏輯處理器和相關硬體的相關資訊。
GetLogicalProcessorInformationEx 擷取邏輯處理器和相關硬體關聯性的相關資訊。
GetMaximumProcessorCount 傳回處理器群組或系統可以擁有的最大邏輯處理器數目。
GetMaximumProcessorGroupCount 傳回系統可以擁有的處理器群組數目上限。
QueryIdleProcessorCycleTime 擷取系統中每個處理器閒置執行緒的週期時間。
QueryIdleProcessorCycleTimeEx 擷取指定處理器群組中每個邏輯處理器上閒置執行緒的累積週期時間。

 

User-Mode排程函式

下列函式會與使用者模式排程搭配使用, (UMS) 。

函式 描述
CreateUmsCompletionList 建立 UMS 完成清單。
CreateUmsThreadCoNtext 建立 UMS 執行緒內容來代表 UMS 背景工作執行緒。
DeleteUmsCompletionList 刪除指定的 UMS 完成清單。 清單必須是空的。
DeleteUmsThreadCoNtext 刪除指定的 UMS 執行緒內容。 執行緒必須終止。
DequeueUmsCompletionListItems 從指定的 UMS 完成清單中擷取 UMS 背景工作執行緒。
EnterUmsSchedulingMode 將呼叫執行緒轉換成 UMS 排程器執行緒。
ExecuteUmsThread 執行指定的 UMS 背景工作執行緒。
GetCurrentUmsThread 傳回呼叫 UMS 執行緒的 UMS 執行緒內容。
GetNextUmsListItem 傳回 UMS 執行緒內容清單中的下一個 UMS 執行緒內容。
GetUmsCompletionListEvent 擷取與指定 UMS 完成清單相關聯的事件控制碼。
GetUmsSystemThreadInformation 查詢指定的執行緒是 UMS 排程器執行緒、UMS 背景工作執行緒或非 UMS 執行緒。
QueryUmsThreadInformation 擷取指定之 UMS 背景工作執行緒的相關資訊。
SetUmsThreadInformation 設定指定之 UMS 背景工作執行緒的應用程式特定內容資訊。
UmsSchedulerProc 與 UMS 完成清單相關聯的應用程式定義 UMS 排程器進入點函式。
UmsThreadYield 對呼叫 UMS 背景工作執行緒執行所在的 UMS 排程器執行緒產生控制權。

 

過時的函式