You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于GetPriorityClass函数参数及[in]属性的技术问询

关于GetPriorityClass函数的参数说明
DWORD GetPriorityClass(
  [in] HANDLE hProcess
);

函数调用成功时,返回值为指定进程的优先级类。

一、[in] 关键字的含义

[in] 是Windows API文档中的参数方向标记,代表该参数是调用者传递给函数的输入参数:你需要在调用函数前准备好有效的进程句柄并传给函数,函数不会修改该参数的值。

二、如何填充hProcess参数

hProcess 是目标进程的句柄,需先获取合法的进程句柄再传递给函数,常见获取方式如下:

1. 获取当前进程的句柄

若要获取当前运行代码的进程优先级,可直接使用GetCurrentProcess()获取当前进程的伪句柄,无需额外权限:

HANDLE hCurrentProcess = GetCurrentProcess();
DWORD priority = GetPriorityClass(hCurrentProcess);

2. 获取其他进程的句柄

需先知晓目标进程的PID(进程ID),再通过OpenProcess()获取句柄,注意要申请合适的权限:

// 假设目标进程PID为1234
DWORD targetPID = 1234;
// 申请PROCESS_QUERY_INFORMATION权限,足以获取优先级类
HANDLE hTargetProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, targetPID);
if (hTargetProcess != NULL) {
    DWORD priority = GetPriorityClass(hTargetProcess);
    // 使用完毕后务必关闭句柄,避免资源泄漏
    CloseHandle(hTargetProcess);
}

注意事项

  • 获取其他进程句柄时,当前进程需具备足够权限,否则OpenProcess()会返回NULL。
  • 通过OpenProcess()获取的句柄,使用完成后必须调用CloseHandle()释放资源。

内容的提问来源于stack exchange,提问作者Felipe Olaya Ospina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:15:36