VS链接器找不到PsGetProcessWow64Process

问题描述

我正在尝试在VS中编译一个驱动程序,但显示-

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol __imp__PsGetProcessWow64Process@4 referenced in function _GetProcessModule@8 Garhal  C:\Users\Raitis\source\repos\GarHal_CSGO\Garhal\memory.obj  1   

很快,我找到了一个使用https://prnt.sc/uffavf的地方PsGetProcessWow64Process

但是它已定义,甚至是官方的ntos.h函数。只需按F12即可轻松找到它-https://prnt.sc/uffbjg

错误列表中的屏幕截图-https://prnt.sc/uffc6t

解决方法

问题在于未记录函数中的此问题,并且链接器很难找到在生成的二进制文件中将指向它的指针的函数在哪里,因此首先在spectre_full.o之前加入hello这个

ntifs.h

必须在ntddk之前,否则您会得到奇怪的错误

然后添加此行:

ntddk.h

这是该函数的签名,现在您可以调用该函数了


获取它的另一种方法是使用函数指针并在运行时对其进行解析

#include <ntifs.h>
#include <ntddk.h>