mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
qga-win: Handle VSS_E_PROVIDER_ALREADY_REGISTERED error
This patch handles the case where VSS Provider is already registered, where in such case qga uninstalls the provider and registers it again. Signed-off-by: Sameeh Jubran <sjubran@redhat.com> Signed-off-by: Basil Salman <basil@daynix.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
parent
bb1ce44b15
commit
b2413df833
1 changed files with 11 additions and 0 deletions
|
@ -443,6 +443,17 @@ STDAPI DllRegisterServer(void)
|
||||||
VSS_PROV_SOFTWARE,
|
VSS_PROV_SOFTWARE,
|
||||||
const_cast<WCHAR*>(QGA_PROVIDER_VERSION),
|
const_cast<WCHAR*>(QGA_PROVIDER_VERSION),
|
||||||
g_gProviderVersion);
|
g_gProviderVersion);
|
||||||
|
if (hr == (long int) VSS_E_PROVIDER_ALREADY_REGISTERED) {
|
||||||
|
DllUnregisterServer();
|
||||||
|
hr = pVssAdmin->RegisterProvider(g_gProviderId, CLSID_QGAVSSProvider,
|
||||||
|
const_cast<WCHAR * >
|
||||||
|
(QGA_PROVIDER_LNAME),
|
||||||
|
VSS_PROV_SOFTWARE,
|
||||||
|
const_cast<WCHAR * >
|
||||||
|
(QGA_PROVIDER_VERSION),
|
||||||
|
g_gProviderVersion);
|
||||||
|
}
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
errmsg_dialog(hr, "RegisterProvider failed");
|
errmsg_dialog(hr, "RegisterProvider failed");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue