学习构建WDF驱动程序 - 初步了解SOURCE和makefile文件
接此:https://blog.csdn.net/bcbobo21cn/article/details/112074021
? ? 在WDK的示例目錄下構(gòu)建出一個.sys驅(qū)動程序;
下面來構(gòu)建自己的驅(qū)動程序;
新建wdkprj目錄,源碼文件為mytest.c,代碼見前文;
新建SOURCES文件,無后綴;內(nèi)容為:
? ??TARGETNAME=MYTEST
? ? TARGETPATH=OBJ
? ? TARGETTYPE=DRIVER
? ? SOURCES=mytest.c
新建文件MAKEFILE,無后綴,內(nèi)容為:
? ??!INCLUDE $(NTMAKEENV)\makefile.def
進入build環(huán)境;轉(zhuǎn)到wdkprj目錄,然后輸入build;
構(gòu)建失敗;構(gòu)建以后多出objchk_win7_amd64目錄,但是其下沒有生成.sys文件;提示找不到wdf.h;
#include <ntddk.h>
#include <wdf.h>
? ? Ntddk.h 包含所有驅(qū)動程序的核心 Windows 內(nèi)核定義,而 Wdf.h 包含基于 Windows 驅(qū)動程序框架 (WDF) 的驅(qū)動程序的定義。這兩個頭文件必須包含,才能生成wdf驅(qū)動程序;
?
根據(jù)網(wǎng)上資料;
? ? 首先頭文件必須包含#include<wdf.h>.然后再項目屬性->配置屬性下的NMake下:intellisense中的包含搜索路徑中包含下面一句話:$(WDKPATH)\inc\wdf\kmdf\1.9\;
? ? 最后在sources文件中添加一句話:KMDF_VERSION = 1.
這是說的通過VS環(huán)境來配置的時候, 添加?$(WDKPATH)\inc\wdf\kmdf\1.9\;
暫時不知道在原生build環(huán)境如何添加?$(WDKPATH)\inc\wdf\kmdf\1.9\;
另,fatal error C1083: Cannot open include file: 'wdf.h': No such file or directory
解決辦法如下:
? ? source文件中添加:KMDF_VERSION_MAJOR=1
嘗試在source文件中添加內(nèi)容,再build,還是找不到 <wdh.h>
折騰;還是不行;
現(xiàn)在WDK 安裝目錄下,它的示例包含頭文件<wdf.h>,是可以構(gòu)建成功的;
在WDK 安裝目錄的src下,新建mytest目錄,把前面三個文件,.c、SOURCE、MAKEFILE,拷過去;再build;
? ? 或把MAKEFILE文件名改為makefile,也是一樣;
參考示例的SOURCES文件,在SOURCES結(jié)尾加入一句?TARGET_DESTINATION=wdf ,也不行;
在WDK安裝目錄的bin目錄下有一個setwdf.bat文件,其內(nèi)容為
@echo off
SET KMDF_INC_PATH=%BASEDIR%\inc\wdf\kmdf
SET UMDF_INC_PATH=%BASEDIR%\inc\wdf\umdf
SET KMDF_LIB_PATH=%BASEDIR%\lib\wdf\kmdf\*
先運行一下此文件;再進入mytest,執(zhí)行build,還是找不到 <wdf.h>;先到這里;
?
總結(jié)
以上是生活随笔為你收集整理的学习构建WDF驱动程序 - 初步了解SOURCE和makefile文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#二维和多维数组编程实例
- 下一篇: asp.net访问sqlserver获取