SnapBack sbotman Interface API
The sbotman API has a very simple interface consisting of 7 functions.
IOCTL_INFORM_DEVICES
Identify the drives that are to be time frozen and those to be ignored.
IOCTL_PREINIT
Initialise the data structures used to freeze disk images. This allocates a requested area of disk which will be used to cache any disk sector changes.
IOCTL_TURNON_OTM
Starts the time freeze for the identifed drives. From this point until the freeze is released all disk writes on the required drives will be monitored and copies of the required original disk sectors will be copied to the cache disk area until released.
IOCTL_TURNOFF_OTM
Halts the time freeze process and releases all memory resources used by the driver.
Zeros the disk cache.
IOCTL_GET_STATISTICS
Returns statistics regarding the performance of the driver. This consists of the number of disk read writes in progress, number of writes pending a backup of the original, amounts of cache memory in use etc.
IOCTL_MONITOR_DEVICES
Set devices to be monitored by sbotman. This identifies which of the physical drives are to be monitored by the driver. At the start of the backup this function is called to inform the driver to maintain a table of modifications to the identified drives. As the backup of each drive is completed this function should be called to cancel monitoring of the drive.
IOCTL_REVERT_BUFFER
Passes a pointer to a memory block of data read from the drive currently being backed up, with identifiers for the size and sector start. The driver identifies any sectors in the block that have changed since the backup started and overwrites the appropriate part of the memory block with the copy taken. The driver then releases the copy held.
