windows环境下的虚拟硬盘实现

king05800 2018-06-06 10:32:16
想做一个虚拟硬盘的功能。主要就是可以自定义生成一个文件,然后将这个文件映射成一块硬盘,盘符随机分配。
实际上就是类似用c++实现diskpart的功能:(生成一个10M的vhd,挂载后、分配一个盘符)
create vdisk file=d:\kdr\sdfsdf.vhd maximum=10 type=fixed
select vdisk file=d:\kdr\sdfsdf.vhd
attach vdisk
create partition primary
assign letter=r

因为想做成一个C++的小应用程序,不调用cmd命令,不知道有没有大神知道怎么才能实现?
...全文
1241 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
有虞先生 2021-06-26
  • 打赏
  • 举报
回复

向临时目录写两个文件,一个VBS,一个INI,Shell这个VBS,然后用VBS调用INI。INI就是你的脚本内容,VBS为:

Set WS = CreateObject("WScript.Shell")
WS.Run "diskpart /s X:\临时目录\你的INI文件",0
Set WS = Nothing

赵4老师 2018-06-06
  • 打赏
  • 举报
回复
百度搜相关关键字。 为什么不使用WinISO和Daemon软件呢?
  • 打赏
  • 举报
回复
用CreateFile、DeviceIoControl似乎也可以,不过没有验证过
  • 打赏
  • 举报
回复
COM编程,获取一个IVdsAdvancedDisk接口,然后就可以建立分区、删除分区、赋驱动器字符等等
king05800 2018-06-06
  • 打赏
  • 举报
回复
实在找不到了。。只能前面用api完成挂载后,用diskpart完成分区、分盘符。全都都用diskpart完成的话,也可以,但是中间的过程以及异常结束都无法完美处理。唉。。
king05800 2018-06-06
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
[quote=引用 3 楼 DelphiGuy 的回复:] CreateVirtualDisk(...
https://msdn.microsoft.com/zh-cn/library/windows/desktop/dd323659.aspx[/quote] vhd的相关API我试了, 有create、open、attach等函数,创建了虚拟硬盘,也可以挂载成功,但是,,,没有创建分区、分配盘符的API!!不知道挂载完接下来该怎么办
赵4老师 2018-06-06
  • 打赏
  • 举报
回复
引用 3 楼 DelphiGuy 的回复:
CreateVirtualDisk(...
https://msdn.microsoft.com/zh-cn/library/windows/desktop/dd323659.aspx
  • 打赏
  • 举报
回复
CreateVirtualDisk(...
king05800 2018-06-06
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
百度搜相关关键字。 为什么不使用WinISO和Daemon软件呢?
百度搜了好多。我要做的是一个软件中的一个功能特性,dokan、vhd api都试了,都不太理想。所以想看看有没有别的c/c++的实现方法。

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧