注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

C++创建虚拟驱动器  

2014-07-03 19:30:22|  分类: Windows编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

使用函数DefineDosDevice创建虚拟的驱动器。函数原型如下:

BOOL WINAPI DefineDosDevice(DWORD dwFlags,LPCTSTR lpDeviceName,LPCTSTR lpTargetPath);
其中第一个参数如下:

DDD_RAW_TARGET_PATH(0x00000001):

不改变参数lpTargetPath,否则它会被从一个MS-DOS路径转化为路径。

DDD_REMOVE_DEFINITION(0x00000002):

删除特定设备的特定定义。为了指明哪一个被删除,该函数遍历映射表,在每一个与此设备关联的映射中查找与lpTargetPath 匹配的设备,第一个匹配的被删除,然后函数返回,如果lpTargetPath为NULL或者指向一个NULL字符串,函数会删除第一个与该设备关联的映射,并弹出最近压入的设备,如果没有设备被弹出,则设备名称被删除。如果该值未被指定,则lpTargetPath中的值将会成为设备新的映射名称。

DDD_EXACT_MATCH_ON_REMOVE(0x00000004):

如果该值与DDD_REMOVE_DEFINITION一起,则函数会使用一个精确的匹配来决定哪一个映射被删除,使用该值确保不删除你没有定义的映射。

DDD_NO_BROADCAST_SYSTEM(0x00000008):

不广播消息WM_SETTINGCHANGE. 默认情况下,该消息被广播通知到受改变的Shell和应用程序。

lpDeviceName是映射的驱动器名称,注意这里不需要反斜杠(”\”)。

lpTargetPath是目标路径,可以是一个文件夹的路径。

测试代码如下:

#include "windows.h"

int main()
{
    BOOL ret;
    ret=DefineDosDeviceA(DDD_RAW_TARGET_PATH,"P:","\\GLOBAL??\\D:\\TEST");
    //ret=DefineDosDeviceA(DDD_REMOVE_DEFINITION,"P:",NULL);
    printf("%d",ret);
    return 0;
}

另外还有一个函数是QueryDosDevice,用于查询虚拟磁盘的路径。

  评论这张
 
阅读(450)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016