本主题介绍进程和线程函数。
- 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