Мне нужна помощь, чтобы заставить 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
Хорошо, это кажется правильным методом, однако поток копирования зависает на последней строке кода и больше не идет.
Спасибо, Дж.
РЕДАКТИРОВАТЬ: обновлено, чтобы показать новый метод, который останавливается на GetSnapshotProperties()