进程和线程函数
本主题介绍进程和线程函数。
- Dispatch Queue 函数
- 处理函数
- 进程枚举函数
- 策略函数
- 线程函数
- 进程和线程扩展属性函数
- WOW64 函数
- 作业对象函数
- 线程池函数
- 线程排序服务函数
- 多媒体类计划程序服务函数
- 光纤函数
- NUMA 支持函数
- 处理器函数
- 用户模式计划函数
- 已过时的函数
Dispatch Queue 函数
以下函数创建 DispatcherQueueController。
函数 | 说明 |
---|---|
CreateDispatcherQueueController | 创建 DispatcherQueueController ,用于管理在另一个线程上按优先级顺序运行排队任务的 DispatcherQueue 的生存期。 |
处理函数
以下函数用于 进程。
进程枚举函数
以下函数用于枚举进程。
函数 | 说明 |
---|---|
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 对象的句柄的访问权限。 |
线程池函数
以下函数用于 线程池。
以下函数是原始 线程池 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