Puede utilizar la API VSS (Volume Shadow Copy Service, no Visual SourceSafe) para este fin. Si bien es potente, no es exactamente una API fácil de usar: el Overview of Processing a Backup Under VSS debería darle una idea de lo que implica.
Aunque es una API relativamente reciente, el soporte de .NET para VSS es prácticamente inexcusable (inexcusable). No puede llamar a la mayoría de la API a través de Interop, y las funciones del archivo de Framework no funcionarán con el espacio de nombres del kernel que VSS usa para exponer los archivos capturados. Como beneficio adicional, hay problemas terribles de 32/64 bits y XP-vs-Vista, lo que hace que la implementación también sea emocionante (¡el equipo responsable de Microsoft debería estar realmente orgulloso!)
De todos modos, el proyecto AlphaVSS tiene la intención de llevar La funcionalidad de VSS para .NET, y se ve extremadamente prometedora, a pesar de que todavía está en etapa pre-beta. Sin embargo, podría hacer el truco para usted, y es de código abierto (Managed C++).
Para obtener un buen ejemplo de cómo hacer cosas con Win32, consulte HoboCopy. La utilidad es bastante útil por sí misma, y la fuente completa de C++ también está disponible en el SourceForge project page.