I am working on a project that utilizes the Microsoft VSS (Volume Shadow Copy) service to take a snapshot of a selected drive volume. If you don't know what this is, stop reading at this point.
The VSS is a rather complex system that is really designed to be implemented with C based programming. What little documentation there is, is rather obscure. AND I am not a C programmer. I am trying to develop a vb.net or c#.net project that utilizes a C wrapper that follows the rules laid out below and I can create an interface and call the routines I need from the wrapper.
1) Takes a snapshot
2) Grabs the snapshot (\\?\GLOBALDEVICE\etc) and takes all of the data in the snapshot and creates a DISK IMAGE (.img, etc) of all of the data and moves it to another drive. THIS INCLUDES PROTECTED AND LOCKED FILES
3) Imagine what Acronis Trueimage does
4) At a later point, another full OR differential snapshot would be taken to quiesce the data, snapshot the differences and determine what has been changed, and then backup that data as a differential backup.
5) I have gotten a lot of resources (AlphaVSS, Hobocopy) etc, but I just don't have the ability to overcome the issue of file security/permissions and locked files to create the backup.
So, what I need is a set of routines that are written in either vb.net or c# that utilize a C wrapper that calls the appropriate routines to create and backup a FULL DISK. It must be a complete backup that can be restored through a BartPE or WinPE boot disk.
I need someone who is pretty competent in C to utilize the resources available to piece together a set of routines I can call through .NET to perform the above functions.
It must be able to take full and differential backups and store them into a file. File compression option with gzip (or something with similar compression ratio/speed) would be a necessity as well, but as mentioned, it needs to be an option, not a mandatory feature.
Lastly. Pay attention to the fact that we are dealing with operating systems ranging from Windows XP/2003/Vista/Win7/Win2k8, BOTH x86 and x64 must be operable.
It would be nice if we could do Win2000 but it is not a requirement if it is that much more difficult.
## Deliverables
If you have questions please let me know, but I believe I have laid out what I need enough to sufficiently describe my needs to satisfy the end result. I am open for questions or comments though in order to complete this project.
I don't need an interface or anything, I just need vb.net or c#.net routines I can call that will interface with the system. As mentioned, if you are competent in C, there are plenty of resources on Volume Shadow copy and .net implementations on the internet with a simple search and someone here should be able to piece this together pretty easily.