在驱动程序中导出函数
来源:互联网 发布:python 脚本语言 编辑:程序博客网 时间:2024/06/06 05:24
1. 引言
了解文件过滤驱动minifilter的人都知道,所有的minifilter都是通过调用过滤管理器中导出的函数,以及向过滤管理器注册回调函数的形式,来实现对文件操作的过滤。而过滤管理器实际上就是由fltmgr.sys实现的,那么我们自己能不能写一个像fltmgr.sys这样的驱动,在向其他驱动程序提供服务的同时,保证自身也有一个可独立运行的驱动程序呢?答案是肯定的,下面我们以一个例子来介绍如何完成这样一个驱动。
2. 准备工作
首先创建8个文件,分别为makefile,source,driver.h,driver.c,export.h,export.c,driver.def, common.h。其中makefile和source用于对驱动进行编译,其中包含了编译选项;driver.h和driver.c是驱动程序的主体,包含driverentry函数以及派遣函数;export.h和export.c分别声明和定义了该驱动程序要导出的函数;driver.def向外部声明要导出的函数;common.h包含一些宏定义。
在source文件中,将TARGETTYPE属性定义为EXPORT_DRIVER(即TARGETTYPE=EXPORT_DRIVER),并添加宏定义DLLDEF=./Driver.def指向driver.def文件。
在driver.def文件中声明将要导出的函数名称,具体格式见driver.def文件内容。
在export.h中为每个要导出的函数添加extern声明。
3. 生成驱动文件
上述工作完成后,用ddk对该驱动进行编译,在obj目录下得到driver.lib和driver.sys文件。
4. 如何调用导出函数
双击obj目录下的.reg文件加载driver.sys后(对于该驱动,需要重启计算机才能加载),其他驱动即可调用driver.sys导出的函数了。首先包含export.h头文件,而后包含driver.lib库,即可调用export.h中声明的导出函数。
- 在驱动程序中导出函数
- 在Windows驱动程序调用汇编文件导出的函数
- 在一个驱动程序中调用另外一个驱动程序中的函数
- 在驱动程序中初始化寄存器
- 在C#中动态调用native dll的导出函数
- 在DLL编程中,导出函数为什么需要extern "C"
- 在DLL中导出另一静态库中的函数
- 在DLL编程中,导出函数为什么需要extern "C"
- 在DLL编程中,导出函数为什么需要extern "C"
- 如何生成DLL文件并导出函数及如何在C++或C#中调用DLL中导出的函数
- 在内核模式驱动程序中调用 DLL
- 在用户空间中编写驱动程序
- 在功能驱动程序中创建设备对象
- 如何在uboot中添加驱动程序
- 哪些硬件需要驱动程序在电脑中?
- 在Android系统中模块化编译驱动程序
- 从DLL中导出函数
- 从DLL中导出函数
- XML TO ArrayCollection 两种实现方式
- struts2为Action配置method属性
- 最新版飞秋下载
- FLEX TitleWindow之间数据传输的示例
- 传智播客-struts2(5)-url标签的巧用、国际化
- 在驱动程序中导出函数
- FLEX 仿Google联想框效果
- JS中event的属性
- 浅谈类两种继承机制--接口(Interface)和类(Class)的区别
- 白盒测试中的六种覆盖方法
- Shell 比较运算
- 談JS面向對象【靜態與非靜態類】
- lvs 负载均衡
- 如何自定义MFC的窗口类名