官网链接 :https://www.microsoft.com/en-us/download/details.aspx?id=23490
备用链接:https://download.csdn.net/download/qq_39107008/86268823
2. 工程环境搭建
配置依赖项参考:
参考微软文档
vss sdk解压目录中的TestApps\betest项目借鉴

别人链接代码(应该是有问题): http://cn.voidcc.com/question/p-tymlbrfv-bc.html
#include <stdio.h>
#include <windows.h>
#include <winbase.h>
#include <iostream>
#include <Vss.h>
#include <VsWriter.h>
#include <VsBackup.h>
using namespace std;
int main()
{
//定义需要快照卷
WCHAR wszVolumes[2048] = L"F:\\";
bool bCoInitializeSucceeded = false;
try
{
HRESULT hr = S_OK;
CoInitializeEx(NULL, COINIT_MULTITHREADED);
// Initialize COM security
CoInitializeSecurity
(
NULL, // IN PSECURITY_DESCRIPTOR pSecDesc,
-1, // IN LONG cAuthSvc,
NULL, // IN SOLE_AUTHENTICATION_SERVICE *asAuthSvc,
NULL, // IN void *pReserved1,
RPC_C_AUTHN_LEVEL_CONNECT, // IN DWORD dwAuthnLevel,
RPC_C_IMP_LEVEL_IMPERSONATE, // IN DWORD dwImpLevel,
NULL, // IN void *pAuthList,
EOAC_NONE, // IN DWORD dwCapabilities,
NULL // IN void *pReserved3
);
bCoInitializeSucceeded = true;
IVssAsync* pAsync;
IVssBackupComponents* pvbc;
CreateVssBackupComponents(&pvbc);
pvbc->InitializeForBackup();
pvbc->SetBackupState(true, false, VSS_BT_FULL, true);
pvbc->GatherWriterMetadata(&pAsync);
VSS_ID idSet, idSnap;
pvbc->StartSnapshotSet(&idSet);
pvbc->AddToSnapshotSet(wszVolumes, GUID_NULL, &idSnap);
pvbc->PrepareForBackup(&pAsync);
HRESULT hrResult;
INT nPercentDone = 0;
pvbc->DoSnapshotSet(&pAsync);
pAsync->Wait();
pAsync->QueryStatus(&hrResult, &nPercentDone);
return 0;
}
catch (HRESULT hrParse)
{
return -1;
}
}

