woodoar
驱动牛犊
驱动牛犊
  • 注册日期2004-03-08
  • 最后登录2006-05-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1479回复:2

毕设:过滤驱动程序的问题 急急急 各位 帮忙啊

楼主#
更多 发布于:2004-05-15 21:40
我的毕设题目是使用driverworks做一个usb过滤驱动程序,以实现对u盘的读写控制.不知各位有没有使用过driverworks\\examples下面的那个usbfilt例子程序,通过看它提供的说明,我认为可以把它绑定在usbstor.sys上,而且我觉得不加什么修改就可以让所有irps通过usbfilt.sys到达usbstor.sys(是这样吗?).

之后我修改了usbstor.inf文件,使用新的usbsor.inf后,在设备管理器Usb mass storage device处的驱动程序详细信息显示了两个驱动程序:usbfilt.sys和usbstor.sys,drivers目录下也有了usbfilt.sys.但实际上usbfilt.sys好像并没有加载成功(此时u盘能像平时一样访问)

此时打开注册表,class主键下类guid下的设备实例处有upperfilter键值,sevices主键下也有usbfilt子键,但enum主键下相应设备处却没有upperfilter键值,修改过的usbstor.inf文件中我添入了如下语句:
[MyHWAddRegistrySectionNT]
HKR,,\"UpperFilters\",0x00010000,\"usbfilt\"
这两句起的作用不就是在enum主键下添加upperfiter键值吗?为什么注册表没有添加上呢?

是我的inf文件有问题呢还是因为我的过滤驱动程序(实际上就是driverworks下的那个例子)有问题导致无法插入到堆栈中呢?
那个例子能不能作为u盘的upperfilter呢?
我认为upperfilter插入到堆栈中后堆栈应该是这个样子的
 disk.sys
 usbfilt.sys
 usbstor.sys
我的理解对吗?

麻烦各位尤其是有相关开发经验的帮忙分析一下啊  
挺郁闷的  :(
he_x_p
驱动小牛
驱动小牛
  • 注册日期2002-11-15
  • 最后登录2005-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-17 16:26
主要是看你将UpperFilters添加在哪里,检查看你是否添加在HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class\\{36FC9E60-C465-11CF-8056-444553540000}中的,否则你的那个过滤驱动程序是没真正起作用的
乘着梦的翅膀, 借助黎明时柔和的阳光, 化着一只自由自在的冲天鸟, 在有梦的地方潇洒地飞翔......
yjhleaf
驱动小牛
驱动小牛
  • 注册日期2001-11-04
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-27 15:53
这个问题,顶一下!
忽如一夜春风来,千树万树梨花开。
游客

返回顶部