阅读:2220回复:4
64位驱动永远是从system32下面拿么?
小弟正在做驱动开发,发现,在32位下,驱动程序可以放在应用程序同一个目录就可以了。OS不会去system32系统目录下面找驱动。
但是换成64位win7后,发现这个定律失效了,只要是我用64位编译过的驱动,OS理都不理我,直接取系统目录下找驱动文件。这个是不是Win7 某个安全特性在起作用?能否关闭? 谢谢 |
|
沙发#
发布于:2013-02-18 09:55
你的驱动是什么驱动?应该是nt式驱动吧。
32位下,驱动程序可以放在应用程序目录,估计是应用程序安装驱动的时候,注册了驱动服务,把sys文件指向应用程序目录的sys文件。你到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services下找找看是不是这样。 64位下,你的应用程序是32位的吗?估计跟这个有关。还有要确保你的驱动已经签名。到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services下,找到你驱动的服务,看看sys指向哪个文件。 |
|
板凳#
发布于:2013-02-18 10:23
回 zhangfresh 的帖子
zhangfresh:你的驱动是什么驱动?应该是nt式驱动吧。 恩,我的驱动不是Kernel 驱动,是UserMode驱动。事实上,我只是想做一个Graphic UserMode驱动的wrap,所以我编译成一样的名字,放在应用程序目录下,这样应用程序会先load我,然后再由我去load真正的driver。 这种方式在32位Win7下,是没有什么问题的。非常成功。 但是在64位模式下,OS永远从system32下面去找需要的dll。我说的64bit 模式,是说我的驱动也是用64位来编译的。如果我的驱动是用32位编译,就没有问题。仅仅当我的驱动是64位模式编译的,就出问题了。OS不会从当前目录里面读取文件。我关闭了数字签名也没有用。 |
|
地板#
发布于:2013-02-19 15:47
UserMode驱动……不懂,我的回答一律作废。
|
|
地下室#
发布于:2013-03-06 20:42
重定位的问题。
|
|