阅读:2465回复:1
微软作弊?同一个注册表子项里面,NDIS自带的键可以读出内容,我自设的不行
电脑开机加载PassThru时,硬盘跟注册表一般都没准备好,这时读取文件和注册表一般都会失败。
在BindAdapterHandler函数中,有个参数SystemSpecific1,是一个注册表路径的字符串。PassThru通过NdisOpenProtocolConfiguration之后,用NdisReadConfiguration就可以读出注册表内容,说明这个地方的注册表初始化好了。 为了让PassThru可以加载工作参数,我把参数也写在SystemSpecific1里面了。比如,NDIS版本信息,PassThru保存在这个路径的“NdisVersion”键名下,于是我也把一个整数,保存在这个路径的自己定义的一个键名下。 在驱动的DriverEntry,也通过NdisOpenProtocolConfiguration、NdisReadConfiguration读取自己的参数信息。 在手工加载PassThru的时候,这个值被写入了,也能正确读取。通过查找注册表,也能见到这个键名。(诡异的是,查找“NdisVersion”找不到) 电脑重启的时候,这个PassThru就不能正确读取自己保存的数据,不知道原因在哪里。 |
|
沙发#
发布于:2010-11-17 11:36
搞定了。后来不用普通注册表操作函数写入配置信息,而是也用NdisOpenProtocolConfiguration、NdisWriteConfiguration写入。
开机驱动加载时,可以读到写入的注册表信息。在XP下测试通过。 不过,我们写入的信息,可以在注册表看到。NDIS自己的信息,如“NdisVersion”还是不可见的。 |
|