Sie können zu diesem Zweck die VSS-API (Volume Shadow Copy Service, nicht Visual SourceSafe) verwenden. Obwohl es leistungsfähig ist, ist dies nicht gerade eine einfach zu bedienende API: Die Overview of Processing a Backup Under VSS sollte Ihnen eine Idee geben, was involviert ist.
Obwohl es eine relativ neue API ist, ist .NET-Unterstützung für VSS ziemlich (und unentschuldbar) nicht existent. Sie können die meisten APIs nicht über Interop aufrufen, und die Framework-Dateifunktionen funktionieren nicht mit dem Kernel-Namespace, den VSS zum Freigeben der Snapshot-Dateien verwendet. Als Bonus gibt es horrende 32/64-Bit und XP-vs-Vista Probleme, so dass Bereitstellung spannend wie gut (die verantwortliche Team bei Microsoft sollte wirklich stolz sein!)
Wie dem auch sei, das AlphaVSS Projekt voll zu bringen beabsichtigt VSS-Funktionalität zu .NET, und sieht sehr vielversprechend aus, obwohl es noch in der Pre-Beta-Phase ist. Es kann jedoch nur den Trick für Sie tun, und es ist Open Source (Managed C++).
Für ein gutes Beispiel, wie man Dinge mit Win32 macht, siehe HoboCopy. Das Dienstprogramm ist allein sehr nützlich, und eine vollständige C++ - Quelle ist ebenfalls von der SourceForge project page verfügbar.