【问题标题】:NtQueryInformationProcess ProcessConsoleHostProcess returns wrong Process IDNtQueryInformationProcess ProcessConsoleHostProcess 返回错误的进程 ID
【发布时间】:2018-12-08 04:03:52
【问题描述】:

我正在使用 NtQueryInformationProcess : ProcessConsoleHostProcess 来查询与 Windows 10 x64 中的控制台应用程序关联的 conhost.exe 进程的进程 ID。该函数返回一个成功状态码,但我总是得到一个奇数,它总是比实际 PID 多一。请参阅screenshot。我的代码符合 x64。

这有什么问题吗?

【问题讨论】:

    标签: c windows 64-bit windows-nt


    【解决方案1】:

    根据记忆,进程 ID 是 4 的倍数。我不会因为某种原因借用低两位。

    【讨论】:

    • 哦,把它剪成 4 的倍数安全吗,我的意思是像 testtest = testtest & ~(sizeof(int) - 1);
    • 是的,进程 ID 是从句柄表中分配的,因此,就像内核句柄一样,PID 的最低有效两位可供内部使用。您可以使用testtest &= ~3 清除这两位,但如果您只是将值传递给OpenProcess,则没有必要。
    • 谢谢,我明白了。在我的情况下是必要的,我需要记录 processIds。
    猜你喜欢
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 2019-11-11
    • 2017-08-18
    • 2021-10-25
    • 2012-01-19
    • 2020-04-03
    • 1970-01-01
    相关资源
    最近更新 更多