阅读:1484回复:8
请教:应用程序中如何才能装载不同的驱动程序?
我有一个用文件系统驱动程序监控磁盘读写的应用程序可以正常运行。但是当我把其中的sys文件替换成自己的驱动程序时,StartService()和CreateFile()两个函数不能正确返回。错误代码是2(The system cannot find the file specified)和183(Cannot create a file when that file already exists)。但我的驱动文件明明在那个目录下请教各位大大我该怎么办呀?
|
|
沙发#
发布于:2003-08-04 15:22
为啥要替换
不一样当然会出问题 :D |
|
|
板凳#
发布于:2003-08-04 15:38
因为我要修改一些功能,当然要替换啦。虫虫快告诉我该怎么做吧!
|
|
地板#
发布于:2003-08-04 16:03
因为我要修改一些功能,当然要替换啦。虫虫快告诉我该怎么做吧! 你改了什么,能不能详细说说。 StartService()和CreateFile()两个函数调用是有要求的。 |
|
|
地下室#
发布于:2003-08-04 16:43
程序中StartService的用法如下:
schService = OpenService( SchSCManager, DriverName, SERVICE_ALL_ACCESS ); if ( schService == NULL ) return FALSE; ret = StartService( schService, 0, NULL ) CreateFile部分如下: wsprintf( completeDeviceName, TEXT(\"\\\\\\\\.\\\\Global\\\\%s\"), DriverName ); hDevice = CreateFile( completeDeviceName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); 我的DriverName已经改成了自己的Driver,但返回值hDevice总是-1,头都要大了。 |
|
5楼#
发布于:2003-08-04 16:52
createfile用的这个名称是要和低层驱动创建的符号名一致的
到你的驱动中看看drivername合适不。 驱动用这个函数创建符号名: IoCreateSymbolicLink |
|
|
6楼#
发布于:2003-08-04 18:09
我查过了名字也没错。
|
|
7楼#
发布于:2003-08-06 09:58
有把原来的驱动停止吗?
|
|
8楼#
发布于:2003-08-06 16:17
现在好了,谢谢!
|
|