我手动移动驱动文件到drivers目录是没有问题的。
然后程序里面用MoveFileEx,标志位MOVEFILE_REPLACE_EXISTING | MOVEFILE_DELAY_UNTIL_REBOOT
然后我用ExitWindowsEx控制重启。
首先要明确的是,重启之后MoveFileEx是成功的(一个一个文件对比过),并不是讨论MoveFileEx的用法问题。
问题是驱动文件貌似不起作用,然后我再重启一遍就成功了(一共重启了两回,驱动才真正起作用了)。请问这个问题一般是什么引起的。
可能性:手动重启跟ExitWindowsEx重启有区别?驱动文件的启动的问题?

解决方案 »

  1.   

    MoveFileEx  只是将目标文件和源文件路径写在注册表里面。windows内核在启动的时候会去读这个地方。
    如果这个地方有值的话就替换掉。你的驱动是在开机的时候启动的吗?
      

  2.   

    确实我只让文件移动过去  并没有启动 不过驱动不是windows启动的吗??
    如果需要自己启动  怎么启动?例如我现在把驱动文件g.sys移动到system32/drivers目录下面了,然后怎么启动??
      

  3.   

    哦  弄懂了  复制到驱动目录的时候,用copefile就可以了。启动是别的模块负责。