本主题介绍进程和线程函数。
Dispatch Queue 函数
处理函数
进程枚举函数
策略函数
线程函数
进程和线程扩展属性函数
WOW64 函数
作业对象函数
线程池函数
线程排序服务函数
多媒体类计划程序服务函数
光纤函数
NUMA 支持函数
处理器函数
用户模式计划函数
已过时的函数
Dispatch Queue 函数
以下函数创建 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
检索指定组中每个处理器执行延迟过程调用所用的周期时间, (DPC) 和中断服务例程 (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
设置调用线程的堆栈保证。
睡眠
在指定的时间间隔内暂停当前线程的执行。
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 线程。
作业对象函数
以下函数用于 作业对象。
函数
说明
AssignProcessToJobObject
将进程与现有作业对象相关联。
CreateJobObject
创建或打开作业对象。
IsProcessInJob
确定进程是否在指定的作业中运行。
OpenJobObject
打开现有作业对象。
QueryInformationJobObject
从作业对象检索限制和作业状态信息。
SetInformationJobObject
为作业对象设置限制。
TerminateJobObject
终止当前与作业关联的所有进程。
UserHandleGrantAccess
向具有用户界面限制的作业授予或拒绝对 User 对象的句柄的访问权限。
线程池函数
以下函数用于 线程池。
函数
说明
CallbackMayRunLong
指示回调可能不会快速返回。
CancelThreadpoolIo
从 StartThreadpoolIo 函数取消通知。
CloseThreadpool
关闭指定的线程池。
CloseThreadpoolCleanupGroup
关闭指定的清理组。
CloseThreadpoolCleanupGroupMembers
释放指定清理组的成员,等待所有回调函数完成,并选择性地取消任何未完成的回调函数。
CloseThreadpoolIo
释放指定的 I/O 完成对象。
CloseThreadpoolTimer
释放指定的计时器对象。
CloseThreadpoolWait
释放指定的等待对象。
CloseThreadpoolWork
释放指定的工作对象。
CreateThreadpool
分配要执行回调的新线程池。
CreateThreadpoolCleanupGroup
创建应用程序可用于跟踪一个或多个线程池回调的清理组。
CreateThreadpoolIo
创建新的 I/O 完成对象。
CreateThreadpoolTimer
创建新的计时器对象。
CreateThreadpoolWait
创建新的等待对象。
CreateThreadpoolWork
创建新的工作对象。
DestroyThreadpoolEnvironment
删除指定的回调环境。 当不再需要回调环境来创建新的线程池对象时,调用此函数。
DisassociateCurrentThreadFromCallback
删除当前正在执行的回调函数与启动回调的对象之间的关联。 当前线程将不再被视为代表对象执行回调。
FreeLibraryWhenCallbackReturns
指定在当前回调完成时线程池将卸载的 DLL。
InitializeThreadpoolEnvironment
初始化回调环境。
IsThreadpoolTimerSet
确定当前是否设置了指定的计时器对象。
LeaveCriticalSectionWhenCallbackReturns
指定当前回调完成时线程池将释放的关键部分。
QueryThreadpoolStackInformation
检索指定线程池中线程的堆栈保留和提交大小。
ReleaseMutexWhenCallbackReturns
指定在当前回调完成时线程池将释放的互斥体。
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
调整调用线程相对于执行相同任务的其他线程的线程优先级。
光纤函数
以下函数用于 光纤。
函数
说明
ConvertFiberToThread
将当前光纤转换为线程。
ConvertThreadToFiber
将当前线程转换为光纤。
ConvertThreadToFiberEx
将当前线程转换为光纤。
CreateFiber
分配一个光纤对象,为其分配一个堆栈,并将执行设置为从指定的起始地址开始。
CreateFiberEx
分配一个光纤对象,为其分配一个堆栈,并将执行设置为从指定的起始地址开始。
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 计划程序线程的控制。
已过时的函数
NtGetCurrentProcessorNumber
NtQueryInformationProcess
NtQueryInformationThread
WinExec
ZwQueryInformationProcess