Best Regards, Konstantin Kostiuk.
On Tue, Jun 17, 2025 at 8:47 PM Elizabeth Ashurov <eashu...@redhat.com> wrote: > This commit improves the QGA VSS provider installation flow > by attempting to unregister the VSS provider if it's already > found during installation. This allows for a retry of installation > even if a previous unregistration failed or was not performed. > Please add: This will prevent inconsistencies between QGA and QGA-VSS versions. Before this commit, QGA can use QGA-VSS from the previous installation. > > Signed-off-by: Elizabeth Ashurov <eashu...@redhat.com> > --- > qga/vss-win32/install.cpp | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp > index 5cea5bcf74..a136d46050 100644 > --- a/qga/vss-win32/install.cpp > +++ b/qga/vss-win32/install.cpp > @@ -263,6 +263,7 @@ STDAPI COMRegister(void) > qga_debug_begin; > > HRESULT hr; > + HRESULT unregisterHr; > extra HRESULT is redundant; you can reuse existing one > COMInitializer initializer; > COMPointer<IUnknown> pUnknown; > COMPointer<ICOMAdminCatalog2> pCatalog; > @@ -287,9 +288,13 @@ STDAPI COMRegister(void) > > chk(QGAProviderFind(QGAProviderCount, (void *)&count)); > if (count) { > - errmsg(E_ABORT, "QGA VSS Provider is already installed"); > - qga_debug_end; > - return E_ABORT; > + qga_debug("QGA VSS Provider is already installed. Attempting to > unregister first."); > + unregisterHr = COMUnregister(); > + if (FAILED(unregisterHr)) { > + errmsg(unregisterHr, "Failed to unregister existing QGA VSS > Provider. Aborting installation."); > + qga_debug_end; > + return E_ABORT; > .git/rebase-apply/patch:29: trailing whitespace. return E_ABORT; warning: 1 line adds whitespace errors. please fix > + } > } > > chk(CoCreateInstance(CLSID_COMAdminCatalog, NULL, > CLSCTX_INPROC_SERVER, > -- > 2.49.0 > >