A C++ application to do the following tasks:
1. Create a clone of an entire hard drive, sector by sector, and save the clone as a single file.
2. Check if a hard drive was changed since last clone.
3. If a hard drive was changed, create a "patch" file which will include only the bytes that were changed since last clone, allowing the application to generate a updated drive image using the old clone and the patch file. Obviously the patch file should be small and therfor easily backed up.
4. Mount a given clone file into a drive letter.
5. Unmount a mounted drive.
6. Run in the background, shown in the icon tray, monitoring a given drive and cloing it (or creating a patch) when it is changed.
7. Keep clone files either in a predefined path or online.
No external DLL, only pure Win32 C++ please.