zhangfresh
驱动牛犊
驱动牛犊
  • 注册日期2008-07-21
  • 最后登录2023-01-09
  • 粉丝1
  • 关注2
  • 积分94分
  • 威望871点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2358回复:1

微软作弊?同一个注册表子项里面,NDIS自带的键可以读出内容,我自设的不行

楼主#
更多 发布于:2010-11-12 18:19
    电脑开机加载PassThru时,硬盘跟注册表一般都没准备好,这时读取文件和注册表一般都会失败。

  在BindAdapterHandler函数中,有个参数SystemSpecific1,是一个注册表路径的字符串。PassThru通过NdisOpenProtocolConfiguration之后,用NdisReadConfiguration就可以读出注册表内容,说明这个地方的注册表初始化好了。

  为了让PassThru可以加载工作参数,我把参数也写在SystemSpecific1里面了。比如,NDIS版本信息,PassThru保存在这个路径的“NdisVersion”键名下,于是我也把一个整数,保存在这个路径的自己定义的一个键名下。

  在驱动的DriverEntry,也通过NdisOpenProtocolConfiguration、NdisReadConfiguration读取自己的参数信息。

  在手工加载PassThru的时候,这个值被写入了,也能正确读取。通过查找注册表,也能见到这个键名。(诡异的是,查找“NdisVersion”找不到)

  电脑重启的时候,这个PassThru就不能正确读取自己保存的数据,不知道原因在哪里。
zhangfresh
驱动牛犊
驱动牛犊
  • 注册日期2008-07-21
  • 最后登录2023-01-09
  • 粉丝1
  • 关注2
  • 积分94分
  • 威望871点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2010-11-17 11:36
搞定了。后来不用普通注册表操作函数写入配置信息,而是也用NdisOpenProtocolConfiguration、NdisWriteConfiguration写入。
开机驱动加载时,可以读到写入的注册表信息。在XP下测试通过。

不过,我们写入的信息,可以在注册表看到。NDIS自己的信息,如“NdisVersion”还是不可见的。
游客

返回顶部