繁体   English   中英

如何从 SYSTEM_PROCESS_INFORMATION 结构中获取进程 ID?

[英]How to get process id from SYSTEM_PROCESS_INFORMATION struct?

我正在使用以下方法迭代系统中的所有进程:

  1. 使用“NtQuerySystemInformation(SystemProcessInformation, buffer, buffer_size, NULL)”获取第一个进程。
  2. 使用 SYSTEM_PROCESS_INFORMATION 中的“NextEntryOffset”获取下一个进程,其格式位于https://docs.microsoft.com/en-us/windows/win32/api/winternl/nf-winternl-ntqueryinformationprocess

我想根据它们的 PID 过滤这些进程。 我不清楚如何从 SYSTEM_PROCESS_INFORMATION 结构中获取 PID。 有一个名为“UniqueProcessId”的字段,它为进程提供了一个句柄,但在将其传递给“GetProcessId”后,我得到错误代码 6,这意味着进程句柄不正确。

欢迎任何有关从 SYSTEM_PROCESS_INFORMATION 查找进程句柄或 pid 的建议。

提前致谢。

大多数 NT api 将包含以下语句:

[Nt*** 可能会在未来版本的 Windows 中更改或不可用。]

在您的情况下,您可以使用以下方法代替NtQuerySystemInformation来检索系统的进程:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM