Windows C++ 使用虚拟磁盘服务 (VDS)让磁盘脱机、联机

这篇博客介绍了如何在Windows C++环境下利用虚拟磁盘服务(VDS)来实现磁盘的脱机和联机功能。文章详细讲解了两种方法,包括使用DeviceIoControl发送IOCTL_DISK_SET_DISK_ATTRIBUTES命令和通过VDS服务来操作。内容还涉及了所需头文件、接口以及COM组件的概念,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

Windows C++ 使用虚拟磁盘服务 (VDS)让磁盘脱机、联机

关于VDS功能介绍以及代码示例可以微软官网,VDS的功能有很多、比如创建分区、删除分区等等,具体功能查看官方文档和vds.h 头文件,这里仅仅介绍磁盘的脱机、联机
VDS功能介绍

针对于磁盘的脱机有两种方法

1.使用DeviceIoControl使磁盘脱机
发送IOCTL_DISK_SET_DISK_ATTRIBUTES命令,设置磁盘脱机属性,也很简单,具体使用方法看官网资料IOCTL_DISK_SET_DISK_ATTRIBUTESSET_DISK_ATTRIBUTES

2.使用VDS服务使磁盘脱机、联机
需要的头文件

#include <vds.h>
#include <stdio.h>
#include <InitGuid.h> 

实现函数
UIN64 iDisk 参数 是磁盘号 也就是 0 1 2等等,用于操作哪个磁盘的联机。

#define _SafeRelease(x) {
     if (NULL != x) {
      x->Release(); x = NULL; } }
DEFINE_GUID(CLSID_VdsLoader,
	0X9C38ED61, 0xD565, 0x4728, 0xAE, 0xEE, 0xC8, 0x09, 0x52, 0xF0, 0xEC, 0xDE);
static HRESULT DiskOnlie(UINT64 iDisk) {
   
	HRESULT hResult = S_OK;
	IVdsService			*pService = NULL;
	IVdsServiceLoader	*pLoader = NULL;
	IUnknown            *pUnknown = NULL;
	hResult = CoInitialize(NULL);

	do {
   
		hResult = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值