阅读:1798回复:10
FileDisk的两个问题,别烦,帮个忙哈~~
1、FileDisk是通过应用层调用DefineDosDevice()来映射盘符和驱动程序的。但是,调用DefineDosDevice()的用户必需要Administrator的权限才能成功啊。普通用户应该怎么去实现呢?
2、当我有资源管理器打开了虚拟盘,此时用DefineDosDevice()去取消虚拟盘会失败,我怎么能做到象U盘那样强行的取消呢?? 我是菜鸟,大侠们别吝啬口水啊,帮个忙先。。。 :D :D :D |
|
沙发#
发布于:2005-04-10 13:58
兄弟们,如果没时间详细说,给点信息都好啊,让我知道去查点什么,省点时间啊。。。。
|
|
驱动老牛
|
板凳#
发布于:2005-04-12 13:21
兄弟们,如果没时间详细说,给点信息都好啊,让我知道去查点什么,省点时间啊。。。。 设置挂装点 |
|
地板#
发布于:2005-04-12 13:45
[quote]兄弟们,如果没时间详细说,给点信息都好啊,让我知道去查点什么,省点时间啊。。。。 设置挂装点 [/quote] 是SetVolumeMountPoint??/ 偶试了下,没成功啊,能详细点不? |
|
驱动老牛
|
地下室#
发布于:2005-04-12 18:03
[quote][quote]兄弟们,如果没时间详细说,给点信息都好啊,让我知道去查点什么,省点时间啊。。。。 设置挂装点 [/quote] 是SetVolumeMountPoint??/ 偶试了下,没成功啊,能详细点不? [/quote] MSDN上就有哇 |
|
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}?? 拜托大侠明示! |
|
6楼#
发布于:2005-04-14 20:59
我创建了\\Volume{GUID}这样的Symbolic Name,在WinObj里也看到了,和C:,D:,的VolumeName一样的格式,但我SetVolumeMountPoint的时候还是出错,郁闷 :mad:
|
|
7楼#
发布于:2005-04-15 16:28
哎,我这菜菜鸟真可怜啊。。。。郁闷
|
|
8楼#
发布于:2005-06-02 13:04
唉,兄弟!
我们同病相怜那!我现在也要做个虚拟磁盘的东西!你搞好了吗? 可否交流一下经验? |
|
|
9楼#
发布于:2005-06-25 05:35
其实你可以使用windows service先加载Driver与Symbol link,然后通过其他的应用程序与Service 来交互可以解决你目前的烦恼;
|
|
10楼#
发布于:2005-06-25 12:42
创建一个NT服务,这种程序默认就是以system权限运行的
|
|