gpt4 book ai didi

c - PsLookupProcessByProcessId 与 DWORD pid?参数1需要HANDLE?

转载 作者:行者123 更新时间:2023-11-30 17:20:16 25 4
gpt4 key购买 nike

如何将函数 PsLookupProcessByProcessId() 与从用户空间获取的进程 ID (DWORD pid) 一起使用?

我编写了一个用户空间 C++ 应用程序,它获取另一个应用程序的进程 ID(例如 calc.exe),并使用 DeviceIoControl 我可以通过我创建的结构成功地将 pid 发送到驱动程序。

DbgPrint("PID received : %i", pInp->pid);

打印出进程的正确 pid。但是在做的时候:

 PsLookupProcessByProcessId(pInp->pid, eProcess);

我收到警告:

C4022: 'PsLookupProcessByProcessId': pointer mismatch for actual parameter 1

该警告被视为错误,并且 vs 不允许我编译。我查找了“PsLookupProcessByProcessId”的文档,它说它需要第一个参数的“句柄”。那么,在这种情况下,我将如何使用从用户空间应用程序发送的 DWORD pid 来获取句柄?

最佳答案

PEPROCESS eProcess = NULL; 
PsLookupProcessByProcessId((HANDLE)pInp->pid, &eProcess);

“指定进程的进程ID。” -> HANDLE 听起来可能令人困惑,在这种情况下它不是真正的“HANDLE”对象。

关于c - PsLookupProcessByProcessId 与 DWORD pid?参数1需要HANDLE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28643804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com