C ++中的Windows VSS(卷影复制)
|
我需要一些使VSS在C ++中工作的帮助。我的基本目的是扫描文件夹中的更改文件(按更改日期),然后使用VSS将其备份到另一台设备。该文档尚不清楚(至少对我而言),我该如何做到这一点,而且我找不到任何合适的示例。
我的过程应该像这样工作:
扫描文件夹并创建修改文件列表。
创建VSS快照并复制文件。
VSS快照被丢弃或释放(或任何其他方式)。
这是我到目前为止的内容(为简便起见,删除了错误处理):
VSS_SNAPSHOT_PROP snapshotProperties;
::CoInitialize(NULL);
::CreateVssBackupComponents(&m_pBackupComponents);
m_pBackupComponents->InitializeForBackup();
m_pBackupComponents->StartSnapshotSet(&m_SnapshotSetId);
m_pBackupComponents->AddToSnapshotSet(wszVolumePathName, GUID_NULL, &snapshotId);
m_pBackupComponents->SetBackupState(TRUE, FALSE, VSS_BT_FULL, FALSE);
m_pBackupComponents->PrepareForBackup(&pPrepareForBackupResults);
pPrepareForBackupResults->Wait();
m_pBackupComponents->DoSnapshotSet(&pDoSnapshotSetResults);
m_pBackupComponents->GetSnapshotProperties(snapshotId, &snapshotProperties); <-- Never gets beyond here
好的,这似乎是正确的方法,但是复制线程冻结在代码的最后一行,并且再也没有得到进一步的解决。
谢谢,
Ĵ
编辑:更新以显示在which1处停止的新方法
没有找到相关结果
已邀请:
2 个回复
断跑胺弄萎
一旦此功能成功完成,您就可以获取快照属性。
卧沫