驱动开发错误汇编

这篇具有很好参考价值的文章主要介绍了驱动开发错误汇编。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本博文将会不定期更新。以便记录我的驱动开发生涯中的一些点点滴滴的技术细节和琐事。
winsows驱动开发的基础操作:https://www.cnblogs.com/iBinary/p/11704838.html

1. link阶段找不到导出函数

比如"LNK2019 无法解析的外部符号 _FltCreateCommunicationPort@32"。

出现这种情况的原因是,驱动的编译环境忽略了所有的默认库,但是像"FltMgr.lib"等内核库也被忽略,因此在文件中添加"#pragma comment(lib,“FltMgr.lib”)"也是无效的,只能在”属性->链接->输入->附加依赖项“中,手动添加需要的内核lib库。

2. minifilter驱动的安装

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

3. minifilter驱动的卸载

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

4. 驱动程序的启动方式

驱动安装时若指定启动方式为SERVICE_BOOT_START,CreateService返回错误码是87。
解决方案:把驱动文件复制到C:\Windows\System32\Drivers目录,然后安装即可成功。

5. minifilter回调函数的返回值

typedef enum _FLT_PREOP_CALLBACK_STATUS {

    FLT_PREOP_SUCCESS_WITH_CALLBACK,
    FLT_PREOP_SUCCESS_NO_CALLBACK,
    FLT_PREOP_PENDING,
    FLT_PREOP_DISALLOW_FASTIO,
    FLT_PREOP_COMPLETE,
    FLT_PREOP_SYNCHRONIZE,
    FLT_PREOP_DISALLOW_FSFILTER_IO


} FLT_PREOP_CALLBACK_STATUS, *PFLT_PREOP_CALLBACK_STATUS;

上述枚举类型的含义在如下链接:
https://www.cnblogs.com/blck/p/15557931.html

6. 头文件包含错误

在 Windows Vista WDK 之前,用于驱动程序开发的主要头文件为 Wdm.h、Ntddk.h 和 Ntifs.h,它们包含很多重复声明。

从 Windows Vista 版本的 WDK 开始,Wdm.h、Ntddk.h 和 Ntifs.h 将按层次结构来组织并且不包含重复信息。上层的文件将包含下层的文件。每个函数和结构声明仅出现一次。

Ntifs.h 包含 Ntddk.h,而 Ntddk.h 又包含 Wdm.h。因此,如果同时出现wdm.h, ntddk.h ,ntifs.h会发生编译错误。

驱动开发错误汇编,驱动,驱动开发,汇编文章来源地址https://www.toymoban.com/news/detail-681722.html

到了这里,关于驱动开发错误汇编的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [ARM 汇编]高级部分—ARM汇编编程实战—3.3.2 嵌入式开发环境搭建

    搭建一个嵌入式开发环境主要包括以下几个部分: 安装交叉编译器 配置集成开发环境(IDE) 安装调试工具 下载和烧录程序 接下来,我们将详细介绍每个部分,并提供相应的实例。 安装交叉编译器 交叉编译器是用于将您编写的ARM汇编代码编译成可执行文件的工具。在本教程

    2024年02月11日
    浏览(51)
  • 【裸机开发】中断系统(二)—— Reset 中断服务函数(汇编实现)

    目录 一、Reset 中断服务函数的实现步骤 二、汇编实现 Reset 中断服务函数 1、禁止/打开全局中断 2、设置SP指针 3、清除 .bss 段 4、完整 Reset 中断服务函数 实现 Reset 中断服务函数的基本步骤如下: 设置各个模式下的SP指针 。当中断发生后,会进入到对应的工作模式下,每个工

    2024年02月10日
    浏览(37)
  • Keil MDK配置ARM汇编/C语言混合开发环境

    1. 安装Keil MDK 安装方法这里不再说明,懂得都懂!🐶 2. 安装ARM开发包 在Keil MDK5之后,不再原生支持ARM7/9,需要自行安装软件包,链接在这,注意安装与自己MDK版本对应的那个包 我的版本是5.18,下载之后傻瓜式安装,因为它会自动检测你MDK所在的位置。 3. 新建工程 注意:选

    2024年02月02日
    浏览(57)
  • 迅为龙芯2K1000开发板通过汇编控制GPIO

    上一小节,我们使用了 C 语言控制了 gpio,这一小节我们来看一下如何使用汇编来控制 gpio 呢?有的 同学可能会有疑问了,既然我们可以使用 C 语言来控制 gpio,为什么我们还要使用更底层的汇编语言呢, 如果我们要使用 C 语言,是不是需要等待 C 语言环境建立起来

    2024年02月07日
    浏览(42)
  • DBeaver驱动连接错误解决方法(提示:com.mysql.cj.jdbc.Driver错误)

    1、提示驱动错误且下载一直失败         1、打开DBeaver点击窗口--窗口--首选项--点击驱动--Maven--添加新的源         2、添加源地址然后进行应用,把添加的源地址移动到最上面(我把其他的地址禁用了,我用不了)         阿里:http://maven.aliyun.com/nexus/content/groups/publ

    2024年02月05日
    浏览(57)
  • Python自动化测试数据驱动解决数据错误

    数据驱动将测试数据和测试行为完全分离,实施数据驱动测试步骤如下: A、编写测试脚本,脚本需要支持从程序对象、文件或者数据库读入测试数据; B、将测试脚本使用的测试数据存入程序对象、文件或者数据库等外部介质中; C、运行脚本过程中,循环调用存储在外部介

    2024年02月06日
    浏览(39)
  • win10系统提示:“重新启动以修复驱动器错误”解决办法

    最近一段时间台式机的window10系统突然提示:“重新启动以修复驱动器错误”。博主本来置之不理,但是系统自动重启了,然后也没自动修复成功,伴随而来的是两天频繁的蓝屏现象。过去的很长一段时间里,都没有出现过该问题,因此花了两天解决 系统蓝屏和驱动错误的问

    2024年02月04日
    浏览(47)
  • 【错误记录】串口不存在或者被其它程序占用 ( 卸载并重新安装驱动 )

    使用串口工具调试 设备的 串口 数据 , 打开串口时 , 提示 \\\" 串口不存在或者被其它程序占用 \\\" 报错信息 ; 问题大概是 360 给删除了驱动中的重要文件 ; 在安装驱动后 , 第一时间将该驱动的目录及相关文件设置为 信任文件 ; 出现上述问题 , 有两个解决方向 : 首先 , 确定该串口是

    2024年02月08日
    浏览(208)
  • 【电脑重启后,nvidia-smi 指令错误,找不到显卡驱动】

    sudo vim /usr/local/xxx.txt 进入文件后,ESC键进入/退出命令模式、 shift+i:insert :wq 保存退出 :q不保存退出 1.sudo vim /etc/default/grub 进入GRUB设置文件 2. GRUB_GFXMODE=1280x720 设置分辨率 3. GRUB_DEFAULT=“1 2”(注:1 代表主菜单的第二项Advanced options for Ubuntu;2代表1项目下面对应的子菜单里面

    2024年02月12日
    浏览(43)
  • 从零学习开发一个RISC-V操作系统(四)丨RISC-V汇编语言编程

       本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记,计划从RISC-V的底层汇编指令学起,结合C语言,在Ubuntu 20.04上开发一个简易的操作系统。一个目的是通过实践操作学习和了解什么是操作系统,第二个目的是为之后学习RISC-V的集成电路设计打下一定基础

    2024年01月25日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包