sfilter的DriverEntry例程中创建的控制设备对象之作用
2007-02-05 19:58
274 查看
看了在filemon的DriverEntry例程中创建的设备对象类型是filemon自定义的,而sfilter的DriverEntry例程中创建的设备对象类型是FILE_DEVICE_DISK_FILE_SYSTEM。我把sfilter的DriverEntry例程中创建的设备对象改为自定义类型,编译后sfilter仍可以正常运行。
然后我就进一步试验,我把sfilter的DriverEntry例程中创建控制设备对象这部分代码注释掉,也就是说那个全局设备对象gSFilterControlDeviceObject为NULL,加载驱动后BugCheck,估计是在什么地方使用gSFilterControlDeviceObject作为参数,而此时gSFilterControlDeviceObject正好为NULL,于是在所有使用gSFilterControlDeviceObject之前加上if(gSFilterControlDeviceObject),编译并运行,一切正常。
所以控制设备对象用来接受应用程序发送的控制用ioctl代码的.
然后我就进一步试验,我把sfilter的DriverEntry例程中创建控制设备对象这部分代码注释掉,也就是说那个全局设备对象gSFilterControlDeviceObject为NULL,加载驱动后BugCheck,估计是在什么地方使用gSFilterControlDeviceObject作为参数,而此时gSFilterControlDeviceObject正好为NULL,于是在所有使用gSFilterControlDeviceObject之前加上if(gSFilterControlDeviceObject),编译并运行,一切正常。
所以控制设备对象用来接受应用程序发送的控制用ioctl代码的.
相关文章推荐
- Struts构架中的Session对象创建和控制
- chapter 6.6: UMDF 设备对象的创建和初始化
- chapter 6.7: KMDF设备对象的创建和初始化
- 实现自定义拖放---创建COleDropSource 对象来控制放置
- Wdf框架中WdfDriverGlobals对象的创建
- DirectSound学习笔记(2):创建设备对象
- 微软开发HomeOS旨在创建一个能够控制家庭设备所有状态的操作系统
- Driver studio / softice 安装正解 (Error Code 31 连到系统上的设备没发挥作用) (BY 冷家锋)
- spring(IOC) 对象创建时机、对象作用域scope、对象的初始化方法和销毁方法的调用、spring容器总结
- ACE 对象生命周期管理者:一种用于控制对象创建和销毁的补充模式
- 编写程序从标准输入设备读入的元素数据建立一个int型vector对象,然后动态创建与该vector大小一致的数组,把vector对象的所有元素复制给该数组
- 深入学习JS执行--创建执行上下文(变量对象,作用域链,this)
- 创建对象与使用对象——谈谈工厂的作用
- 1.import和include区别 2.NSLog 和printf区别 3.创建对象做的事情 4. 类和对象方法比较 5 匿名对象优缺点 6. 封装 7.作用域范围 8.id和instancetype 9.自定义构造方法规范 10.nil和Nil及NULL、NSNull区别
- Servlet之ServletContext创建对象和作用
- DX编程(1) — 创建D3D对象、D3D设备,渲染
- Factory 定义一个接口,客户可以使用这个接口创建一个对象.同时,我们还可以控制对那个类进行实例化
- 驱动视频:windows驱动讲稿1.5 - 创建设备对象
- 在Sprite 基础之上创建一个既可以控制移动,也可以动画的对象定义。
- 动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, pa