Windows C++ 使用虚拟磁盘服务 (VDS)让磁盘脱机、联机
关于VDS功能介绍以及代码示例可以微软官网,VDS的功能有很多、比如创建分区、删除分区等等,具体功能查看官方文档和vds.h 头文件,这里仅仅介绍磁盘的脱机、联机
VDS功能介绍
针对于磁盘的脱机有两种方法
1.使用DeviceIoControl使磁盘脱机
发送IOCTL_DISK_SET_DISK_ATTRIBUTES命令,设置磁盘脱机属性,也很简单,具体使用方法看官网资料IOCTL_DISK_SET_DISK_ATTRIBUTES、SET_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 =