It is even possible to make image backup for servers, that must be online 24 hours each day.
Snapshot handles this. Once Snapshot has been started, you may continue to work, delete anything on the disk, install new programs,...
The created image will in any case reflect the disk status at program start.
When SnapShot gets started, it will take some time to collect information
about the disk to be saved, as disk size, used disk space,...
Then the OS is instructed to write all data from the disk caches.
And then, Snapshot takes the SnapShot.
All you will get in your Disk Image, is, what is at this very moment
on your disk. What's on the disk, is saved; nothing else.
If you would POWER OFF the computer at this moment and make the image from DOS, you would get exactly the same. Because we flushed all data to the disk, WinXX will boot without CHKDSK, because the data on the disk are consistent.
You would loose the changes of any open (unsaved) files, of course, but the original would be existent and valid.
By using WindowsNT Driver technology, Snapshot chains itself between the file system
and the disk driver and will see any request to the disk.
When any WRITE request to data, that are not yet saved, is detected, the data are read first from the disk and saved, before the WRITE request is allowed to proceed.
So the data are completely safe against change; and this allows the user to work, while Snapshot is running, no changes will not be reflected into the image produced. Whatever he does, the image will contain the disk data at start time.
He may work as usual, clean up the disk, install/uninstall Software, or even catch a virus of his choice.
SnapShot even makes some effort to minimize its influence on
other programs.
Snapshot uses about 7MB of memory during Backup, 0 bytes when not activ.
Snapshot runs at low priority, giving the foreground application as many CPU cycles as needed.
As SnapShot uses a huge amount of disk IO (~15 MB/sec for P700), Snapshot would bring down a typical Windows program start to a crawl. So Snapshot watches for any user disk activity and will pause for a short while, so the user application runs at nearly full speed.
SnapShot still makes sure, that no unsaved data are overwritten.
In this case, SnapShot will buffer these data up to a few Megabytes in memory, and
then simply delay the application, until these data have been saved to the
SnapShot destination.
This won't happen often, as applications tend to modify the same data over and over again, like a database's index files. These data will be saved the first time, a change is detected, later requests will proceed at normal speed.