c++编写驱动遇到的问题

问题一:无法解析的外部符号 DriverEntry,函数 FxDriverEntryWorker 中引用了该符号
解决方法1、将源文件.cpp改为.c
解决方法2、在DriverEntry方法前加 extern "C"

无法解析的外部符号 DriverEntry,函数 FxDriverEntryWorker 中引用了该符号.png

问题二:如何给驱动签名
x86系统下安装驱动时,不校验签名;但x64系统要校验签名。
因没有签名,在x64下安装驱动失败

备注:下方可对exe和dll签名,但对sys签名后,安装驱动失败

//创建x.509证书,qsCA.pvk为密钥文件(保存私钥,创建时要输入密码,如123456),qsCA.cer为公钥(用刚才输入的密码123456给它做签名,相当如自签名)
C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64>makecert.exe -n "CN=qiaosong.beijing.cn" -r -sv qsCA.pvk qsCA.cer -b 01/07/2021 -e 01/01/2999
Succeeded
//公钥证书格式转换成SPC
C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64>cert2spc.exe qsca.cer qsCA.spc
Succeeded
//将公钥证书和私钥合并成一个PFX格式的证书文件,会弹出输入口令框
C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64>pvk2pfx.exe -pi 123456 -pvk qsCA.pvk -spc qsCA.spc -pfx qsRoot.pfx
//给exe文件做签名
C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86>signtool.exe sign /fd SHA256 /f qsRoot.pfx /p "123456"  D:\Cpath\studyDir\dllWorld\dll_declsec_client_pause_withSinger.exe
Done Adding Additional Store
Successfully signed: D:\Cpath\studyDir\dllWorld\dll_declsec_client_pause_withSinger.exe
// 加上时间戳
D:\Cpath\studyDir\数字签名\新建文件夹>signtool.exe sign /a  /fd SHA256 /f ../qsRoot.pfx /p "123456" /td SHA256 /tr "http://timestamp.digicert.com"   ../dll_declsec_client_pause_withSinger.exe
Done Adding Additional Store
Successfully signed: ../dll_declsec_client_pause_withSinger.exe
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • C++调用python 在C/C++中嵌入Python,可以使用Python提供的强大功能,通过嵌入Python可...
    Bruce_Szh阅读 13,991评论 1 7
  • 以下开发环境为visual studio中。 常规dll应该配备的3类文件:1.dll文件:必备2.lib文件:非...
    codeflame阅读 6,878评论 0 4
  • 【转载】C&C++——C函数与C++函数相互调用问题 C C++相互调用 在项目中融合C和C++有时是不可避免的,...
    天之道天知道阅读 3,579评论 2 19
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 7,440评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 7,357评论 0 2

友情链接更多精彩内容