繁体   English   中英

DDK / WDM将wink32.lib导入驱动程序

[英]DDK/WDM import wink32.lib into driver

最近,我试图在驱动程序中使用W32pServiceTable。 我在SOURCES中导入了wink32.lib:

TARGETNAME=exp
TARGETTYPE=DRIVER
TARGETLIB=$(DDK_LIB_PATH)\win32k.lib
SOURCES=Experimental.cpp
MSC_WARNING_LEVEL=/W3

我在源文件中声明:

extern PDWORD W32pServiceTable;

但是我无法解决符号。 我读到,只有GDI驱动程序可以使用wink32.lib。 但是我很确定其他驱动程序也可以链接到该库(但是我不知道如何)。 如果您能帮助我,我将非常感谢。

这是真的。 只有GDI驱动程序可以使用win32k.sys,反之亦然-GDI驱动程序只能静态链接到win32k.sys。

这样做的原因是,大多数Windows内部部件都被加载到了全局内存空间中,而win32k.sys被加载到了所谓的“会话空间”中。 一些信息在这里:

http://www.tar.hu/wininternals/ch07lev1sec4.html

简而言之-大多数Windows组件和驱动程序为整个系统加载一次,而UI管理,GDI等内容则是按会话加载。

在运行时,GDI驱动程序有一个棘手的可能性来获取指向ntoskrnl函数的指针并使用它们,反之亦然-WDM驱动程序稍加努力就可以使用win32k函数(将在“当前”会话中使用)。

无论如何,为什么要链接到win32k? 您需要什么功能?

暂无
暂无

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

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