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
わかりました、それは正しい方法のようですが、コピー スレッドはコードの最後の行でフリーズし、それ以上進みません。
ありがとう、J
編集:で停止する新しいメソッドを表示するように更新されましたGetSnapshotProperties()