lark
驱动小牛
驱动小牛
  • 注册日期2002-04-12
  • 最后登录2004-03-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1484回复:8

请教:应用程序中如何才能装载不同的驱动程序?

楼主#
更多 发布于:2003-08-04 14:40
我有一个用文件系统驱动程序监控磁盘读写的应用程序可以正常运行。但是当我把其中的sys文件替换成自己的驱动程序时,StartService()和CreateFile()两个函数不能正确返回。错误代码是2(The system cannot find the file specified)和183(Cannot create a file when that file already exists)。但我的驱动文件明明在那个目录下请教各位大大我该怎么办呀?
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-04 15:22
为啥要替换
不一样当然会出问题 :D
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
lark
驱动小牛
驱动小牛
  • 注册日期2002-04-12
  • 最后登录2004-03-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-04 15:38
因为我要修改一些功能,当然要替换啦。虫虫快告诉我该怎么做吧!
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-04 16:03
因为我要修改一些功能,当然要替换啦。虫虫快告诉我该怎么做吧!


你改了什么,能不能详细说说。
StartService()和CreateFile()两个函数调用是有要求的。
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
lark
驱动小牛
驱动小牛
  • 注册日期2002-04-12
  • 最后登录2004-03-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于: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,头都要大了。
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-08-04 16:52
createfile用的这个名称是要和低层驱动创建的符号名一致的

到你的驱动中看看drivername合适不。

驱动用这个函数创建符号名:
IoCreateSymbolicLink
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
lark
驱动小牛
驱动小牛
  • 注册日期2002-04-12
  • 最后登录2004-03-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-08-04 18:09
我查过了名字也没错。
sztest
驱动牛犊
驱动牛犊
  • 注册日期2003-06-15
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-08-06 09:58
有把原来的驱动停止吗?
lark
驱动小牛
驱动小牛
  • 注册日期2002-04-12
  • 最后登录2004-03-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-08-06 16:17
现在好了,谢谢!
游客

返回顶部