qiaoroger
驱动牛犊
驱动牛犊
  • 注册日期2005-02-03
  • 最后登录2010-03-22
  • 粉丝0
  • 关注0
  • 积分111分
  • 威望92点
  • 贡献值1点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:1798回复:10

FileDisk的两个问题,别烦,帮个忙哈~~

楼主#
更多 发布于:2005-04-09 16:47
1、FileDisk是通过应用层调用DefineDosDevice()来映射盘符和驱动程序的。但是,调用DefineDosDevice()的用户必需要Administrator的权限才能成功啊。普通用户应该怎么去实现呢?

2、当我有资源管理器打开了虚拟盘,此时用DefineDosDevice()去取消虚拟盘会失败,我怎么能做到象U盘那样强行的取消呢??

我是菜鸟,大侠们别吝啬口水啊,帮个忙先。。。 :D :D :D
qiaoroger
驱动牛犊
驱动牛犊
  • 注册日期2005-02-03
  • 最后登录2010-03-22
  • 粉丝0
  • 关注0
  • 积分111分
  • 威望92点
  • 贡献值1点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-10 13:58
兄弟们,如果没时间详细说,给点信息都好啊,让我知道去查点什么,省点时间啊。。。。
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-04-12 13:21
兄弟们,如果没时间详细说,给点信息都好啊,让我知道去查点什么,省点时间啊。。。。

设置挂装点
---内核开发合作或提供基础技术服务QQ:22863668 ---
qiaoroger
驱动牛犊
驱动牛犊
  • 注册日期2005-02-03
  • 最后登录2010-03-22
  • 粉丝0
  • 关注0
  • 积分111分
  • 威望92点
  • 贡献值1点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-12 13:45
[quote]兄弟们,如果没时间详细说,给点信息都好啊,让我知道去查点什么,省点时间啊。。。。

设置挂装点 [/quote]

是SetVolumeMountPoint??/
偶试了下,没成功啊,能详细点不?
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-04-12 18:03
[quote][quote]兄弟们,如果没时间详细说,给点信息都好啊,让我知道去查点什么,省点时间啊。。。。

设置挂装点 [/quote]

是SetVolumeMountPoint??/
偶试了下,没成功啊,能详细点不? [/quote]
MSDN上就有哇
---内核开发合作或提供基础技术服务QQ:22863668 ---
qiaoroger
驱动牛犊
驱动牛犊
  • 注册日期2005-02-03
  • 最后登录2010-03-22
  • 粉丝0
  • 关注0
  • 积分111分
  • 威望92点
  • 贡献值1点
  • 好评度7点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-04-14 19:36
[quote][quote][quote]兄弟们,如果没时间详细说,给点信息都好啊,让我知道去查点什么,省点时间啊。。。。

设置挂装点 [/quote]

是SetVolumeMountPoint??/
偶试了下,没成功啊,能详细点不? [/quote]
MSDN上就有哇 [/quote]

例子是这样的:
   bFlag = GetVolumeNameForVolumeMountPoint(
              argv[2], // input volume mount point or directory
                  Buf, // output volume name buffer
               BUFSIZE // size of volume name buffer
           );

   if (bFlag != TRUE)
   {
      printf( \"Retrieving volume name for %s failed.\\n\", argv[2] );
      return (-2);
   }
   printf( \"Volume name of %s is %s\\n\", argv[2], Buf );

   bFlag = SetVolumeMountPoint(
              argv[1], // mount point
                   Buf // volume to be mounted
           );

现在很困惑啊。假如我要用FileDisk虚拟一个G盘,GetVolumeNameForVolumeMountPoint(“G:\\”,Buf,BufSize )这时候返回错误,因为根本没有G盘啊?如果直接调用SetVolumeMountPoint,那第二个参数要求传如VolumeName,这如何获得?由驱动程序创建?把Symbolic Name建成VolumeName的样子就行了么?\\Volume{GUID}??
拜托大侠明示!
qiaoroger
驱动牛犊
驱动牛犊
  • 注册日期2005-02-03
  • 最后登录2010-03-22
  • 粉丝0
  • 关注0
  • 积分111分
  • 威望92点
  • 贡献值1点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-14 20:59
我创建了\\Volume{GUID}这样的Symbolic Name,在WinObj里也看到了,和C:,D:,的VolumeName一样的格式,但我SetVolumeMountPoint的时候还是出错,郁闷 :mad:
qiaoroger
驱动牛犊
驱动牛犊
  • 注册日期2005-02-03
  • 最后登录2010-03-22
  • 粉丝0
  • 关注0
  • 积分111分
  • 威望92点
  • 贡献值1点
  • 好评度7点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-04-15 16:28
哎,我这菜菜鸟真可怜啊。。。。郁闷
harry_chen
驱动牛犊
驱动牛犊
  • 注册日期2002-07-08
  • 最后登录2007-05-25
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望4点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-06-02 13:04
唉,兄弟!
我们同病相怜那!我现在也要做个虚拟磁盘的东西!你搞好了吗?
可否交流一下经验?
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
jackxin
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2009-06-16
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2005-06-25 05:35
其实你可以使用windows service先加载Driver与Symbol link,然后通过其他的应用程序与Service 来交互可以解决你目前的烦恼;
yuanyuan
驱动大牛
驱动大牛
  • 注册日期2003-01-15
  • 最后登录2010-08-04
  • 粉丝0
  • 关注0
  • 积分1025分
  • 威望300点
  • 贡献值0点
  • 好评度232点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-06-25 12:42
创建一个NT服务,这种程序默认就是以system权限运行的
游客

返回顶部