Hi Marc-André,
Can you please review this patch set?
Best Regards,
Konstantin Kostiuk.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/775
The problem, VSS backup type VSS-FULL (the only available VSS backup type currently) can break other backups that use VSS-FULL(for example, Bareos-Fullbackup).
Fix, add other backup types.
Implementation, put the desired backup type number inside Regkey value HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\QEMU Guest Agent VSS Provider\VssOption, so that the program can query the desired backup type.
VSS backup types:
number type
1 VSS_BT_FULL
2 VSS_BT_INCREMENTAL
3 VSS_BT_DIFFERENTIAL
4 VSS_BT_LOG
5 VSS_BT_COPY
for more information about the different backup types https://learn.microsoft.com/en-us/windows/win32/vss/vss-backup-state
Additionally, the program would work as before with VSS-FULL in cases where VssOption doesn't exist, or VssOption value isn't a known backup type.
The patch series looks ok (just minor stylistic changes could be made), but I do not fully understand the way qga-vss.dll works in details for freeze/thaw.
My understanding is that FIFREEZE do not exist on win32, so we call VSS to tell (some) apps to flush/freeze pretending a backup is going on, then we get notified on completion by our own provider (CommitSnapshots) and wait there for thaw (1 min while VM is suspended?).
Kfir Manor (3):
add VssOption to installer
query VSS backup type
requester_freeze changes
qga/installer/qemu-ga.wxs | 4 ++++
qga/vss-win32/requester.cpp | 41 ++++++++++++++++++++++++++++++++++++-
qga/vss-win32/vss-handles.h | 3 +++
3 files changed, 47 insertions(+), 1 deletion(-)
--
2.38.1