簡體   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