驱动开发错误汇编

本博文将会不定期更新。以便记录我的驱动开发生涯中的一些点点滴滴的技术细节和琐事。

  1. 生成时link找不到导出函数,比如"LNK2019 无法解析的外部符号 _FltCreateCommunicationPort@32"。出现这种情况的原因是,驱动的编译环境忽略了所有的默认库,但是像"FltMgr.lib"等内核库也被忽略,因此在文件中添加"#pragma comment(lib,"FltMgr.lib")"也是无效的,只能在"属性->链接->输入->附加依赖项"中,手动添加需要的内核lib库。

  2. FltRegisterFilter函数参数检查合法,但是返回STATUS_OBJECT_NAME_NOT_FOUND,原因是安装驱动时注册表下缺少Instance等项。

其中Instances下的键值如下:

xxx Instance下的键值如下:

详细说明见:https://blog.csdn.net/lionzl/article/details/40709827

https://bbs.kanxue.com/thread-262815.htm

https://stackoverflow.com/questions/42389211/fltregisterfilter-not-working

  1. fs minifilter驱动的卸载

fltmc load xxx:加载驱动

fltmc unload xxx:卸载驱动

前提条件是FltRegisterFilter调用时,FLT_REGISTRATION中未指定FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP。否则,驱动无论如何都不支持卸载。

驱动安装时若指定启动方式为SERVICE_BOOT_START,CreateService返回错误码是87。

解决方案:把驱动文件复制到C:\Windows\System32\Drivers目录,然后安装即可成功。

相关推荐
Shang1809893572612 小时前
T41LQ 一款高性能、低功耗的系统级芯片(SoC) 适用于各种AIoT应用智能安防、智能家居方案优选T41L
人工智能·驱动开发·嵌入式硬件·fpga开发·信息与通信·信号处理·t41lq
抠脚学代码14 小时前
Linux开发-->驱动开发-->字符设备驱动框架
linux·数据结构·驱动开发
木木木丫18 小时前
嵌入式项目:韦东山驱动开发第六篇 项目总结——显示系统(framebuffer编程)
c语言·c++·驱动开发·dsp开发
DeeplyMind20 小时前
第10章:中断处理-6:Implementing a Handler
linux·驱动开发
花阴偷移1 天前
逆向基础--汇编基础(字与物料地址) (004)
汇编
workflower1 天前
FDD(Feature Driven Development)特征驱动开发
大数据·数据库·驱动开发·需求分析·个人开发
迅为电子2 天前
嵌入式Linux新手入门:北京迅为3568开发板驱动开发第二章helloworld 驱动实验
linux·运维·驱动开发
小尧嵌入式2 天前
STM32启动汇编文件详解及启动逻辑
汇编·arm开发·stm32·单片机
花阴偷移2 天前
逆向基础--汇编基础(CS与IP) (05)
网络·汇编·网络协议·tcp/ip
Y多了个想法3 天前
Linux驱动开发与Android驱动开发
android·linux·驱动开发