阅读:2270回复:25
编程实现驱动程序的自动加载
请问如何编程实现自己写的驱动程序的自动加载?请高手指教
|
|
沙发#
发布于:2003-01-11 11:25
用SCM,Service Control Manager
|
|
板凳#
发布于:2003-01-11 20:29
我知道用SCM,我把驱动程序拷贝到了system32下,然后startservice的时候报告找不到驱动程序,但用monitor启动一下后,驱动程序就可以用我自己写的代码启动了,请问这是什么原因呀?我都被弄胡涂了
|
|
地板#
发布于:2003-01-12 14:24
服务的项目在注册表里维护,关于这个注册表的项目你可以用CreateService添加也可以直接导入或修改注册表,这样你才可以在后面StartService,StopService,也可以用DeleteService删除,不过这种方式就适用于NT Kernel Driver。
|
|
地下室#
发布于:2003-01-12 15:25
能详细点说明应该添加什么键值吗?我是初学者,不太懂,请高人指教
|
|
5楼#
发布于:2003-01-12 18:07
给你看个例子吧:
[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\FileDisk] \"ErrorControl\"=dword:00000001 \"Start\"=dword:00000003 \"Type\"=dword:00000001 这个是filedisk的,导入这些个键值或者调用CreateService都可以添加服务,全部在程序中实现且退出程序就卸载驱动不留痕迹就用CreateService + DeleteService MSDN里有的 |
|
6楼#
发布于:2003-01-12 18:25
http://www.driverdevelop.com/forum/viewthread.php?tid=4055
嗯...原来讨论过 |
|
7楼#
发布于:2003-01-12 22:53
我试了一下filedisk的,不知道为什么报了一个错误ERROR_SERVICE_DISABLED,请问是我的那个服务被禁止了还是我的注册表写的不对呀?
|
|
8楼#
发布于:2003-01-12 22:58
你要有驱动文件并且在winnt\\system32\\drivers目录里才行,
另外也可以用imagepath键值的 这里有原汁原味的filedisk http://www.acc.umu.se/~bosse/ |
|
9楼#
发布于:2003-01-12 23:02
我是拷贝到/winnt/system32/driver下了,但不知道为什么还是报那个错误,
|
|
10楼#
发布于:2003-01-12 23:03
还有我修改了imagepath到指定的目录,还是报那个错误,
|
|
11楼#
发布于:2003-01-12 23:09
那你用net start filedisk可以启动服务么?
|
|
12楼#
发布于:2003-01-12 23:14
不行,报的还是那个错误,服务禁用或关联的设备没有启动,为什么会这样呀?
|
|
13楼#
发布于:2003-01-12 23:18
是不是2000系统服务管理的事呀?
非常感谢你这么热心的解答我的问题,真的很感动 |
|
14楼#
发布于:2003-01-12 23:25
没什么的,正好在线,呵呵
要正确启动就要两条:服务项目正确(3:DEMAND_START),驱动文件就位,你该不会是用的驱动有问题吧,编译一个checked版本用debugView之类的软件跟踪一下DbgPrint看看? |
|
15楼#
发布于:2003-01-12 23:34
驱动应该没有问题,在两台机器上试过了,一台通过,而另一台通不过,注册表的值是我通过成功的那台导出的,我试这拷贝驱动到system32/driver下,或指定imagepath的路径,均没有成功,我想驱动应该没有问题
|
|
16楼#
发布于:2003-01-12 23:39
还有什么叫服务项目正确呀?我不太懂
|
|
17楼#
发布于:2003-01-12 23:40
分特,两台机器环境不一样?都是administrator权限登录么?呵呵
|
|
18楼#
发布于:2003-01-12 23:44
当然,两台机器都是管理员权限的
|
|
19楼#
发布于:2003-01-12 23:48
如果确认两台机器用的同样的*.sys,注册表里的内容也完全一致的话那就不好说了 :P
|
|
上一页
下一页