From nobody Fri May 3 09:51:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1490183101609787.5162334346599; Wed, 22 Mar 2017 04:45:01 -0700 (PDT) Received: from localhost ([::1]:50292 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cqehG-0003Bc-J1 for importer@patchew.org; Wed, 22 Mar 2017 07:44:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38791) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cqegV-0002tn-Vy for qemu-devel@nongnu.org; Wed, 22 Mar 2017 07:44:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cqegR-0006Vg-As for qemu-devel@nongnu.org; Wed, 22 Mar 2017 07:44:12 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:35968) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cqegR-0006VF-2B for qemu-devel@nongnu.org; Wed, 22 Mar 2017 07:44:07 -0400 Received: by mail-wr0-x244.google.com with SMTP id l37so26288536wrc.3 for ; Wed, 22 Mar 2017 04:44:06 -0700 (PDT) Received: from bark.daynix ([141.226.163.173]) by smtp.gmail.com with ESMTPSA id w4sm40795wmg.29.2017.03.22.04.44.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Mar 2017 04:44:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daynix-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=oISPIdGluh5/F5oTJdt4JbH0Sq0Gy6tVJWSzo+q/TmA=; b=j+dV0ECdMO4TUolGnTXCoEUMEd2OnLlJXI2BSJOGO5HXz3mOeZIhw0uF5k7gLAE5tM D61oQZM9wIU6iOMkudtxWJwzA/MMD5Y2mDnrIyhmxDBL3759NRCCS9vXacGlZF8kJqXj sXnVGS6e5HqZjWNtqxGCaPcM6jR7VYHFMrcgUZ5J05dYaAynOHs5750nJGKf/MyVG3Ff xUBBOA4iBvnldnQ5KIdaSwjFjn4sIToBnb3D1WHhf44b0Lr9LWFmWZc0j1rhCqOlMd6I FvmnRlimpTLQn+rGbBB7rXZLeH0m6QC5SQAzL1WQoq/i7joX94lR08G77gfmIRbs5zlD 7+dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=oISPIdGluh5/F5oTJdt4JbH0Sq0Gy6tVJWSzo+q/TmA=; b=C7rYrHEIjAcyNkyS/ZqiggvuKWoijnL+gp8XS0XYjkBBnKKUOOytfntgNqLY/LWDU2 XwbSS3TQFyJXMtgiqvPgyLAfXQgjWSm96N4DObGKoIfQn04okqBqL/jMDzGWhW+NqZM4 P4M2YlgdYBBjR7uoFSj1FnZeMsK7HfyfabI/vOT/vr0rg3umj5UTHXXj0k2BaUqGqBFu 4TNK+ybcUZT4OGJ3z56V87HwUOyyN2AeHbtvJ/dZjalw8uPYp8cDc91wIx1/4abIZRn1 pGf7/4t21bPaYxfewq/i9LS1LRxxhL6Ait35hhEDx+bdZ2Fvh9oWe0MCdlwnAfu8QDF1 Xw4g== X-Gm-Message-State: AFeK/H0wbUPTRaNFnwS937KXSMBUyHw79ngbxlTGvnNf1jsgvTlyBuJM5GE5bufq9n6nVA== X-Received: by 10.223.182.167 with SMTP id j39mr33289479wre.152.1490183045670; Wed, 22 Mar 2017 04:44:05 -0700 (PDT) From: Sameeh Jubran To: qemu-devel@nongnu.org, Michael Roth Date: Wed, 22 Mar 2017 13:43:59 +0200 Message-Id: <20170322114359.3455-1-sameeh@daynix.com> X-Mailer: git-send-email 2.9.3 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [PATCH qemu-ga] qemu-ga: Make QGA VSS provider service run only when needed X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yan Vugenfirer Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Currently the service runs in background on boot even though it is not needed and once it is running it never stops. The service needs to be running only during freeze operation and it should be stopped after executing thaw. Signed-off-by: Sameeh Jubran --- qga/vss-win32/install.cpp | 28 ++++++++++++++++++++++++++-- qga/vss-win32/requester.cpp | 2 ++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp index f4160a3..f41fcdf 100644 --- a/qga/vss-win32/install.cpp +++ b/qga/vss-win32/install.cpp @@ -14,7 +14,7 @@ =20 #include "vss-common.h" #include -#include +#include "install.h" #include #include #include @@ -276,7 +276,7 @@ STDAPI COMRegister(void) =20 chk(pCatalog->CreateServiceForApplication( _bstr_t(QGA_PROVIDER_LNAME), _bstr_t(QGA_PROVIDER_LNAME), - _bstr_t(L"SERVICE_AUTO_START"), _bstr_t(L"SERVICE_ERROR_NORMAL= "), + _bstr_t(L"SERVICE_DEMAND_START"), _bstr_t(L"SERVICE_ERROR_NORM= AL"), _bstr_t(L""), _bstr_t(L".\\localsystem"), _bstr_t(L""), FALSE)= ); chk(pCatalog->InstallComponent(_bstr_t(QGA_PROVIDER_LNAME), _bstr_t(dllPath), _bstr_t(tlbPath), @@ -461,3 +461,27 @@ namespace _com_util return bstr; } } + +/* Stop QGA VSS provider service from COM+ Application Admin Catalog */ + +STDAPI StopService(void) +{ + HRESULT hr; + COMInitializer initializer; + COMPointer pUnknown; + COMPointer pCatalog; + + int count =3D 0; + + chk(QGAProviderFind(QGAProviderCount, (void *)&count)); + if (count) { + chk(CoCreateInstance(CLSID_COMAdminCatalog, NULL, CLSCTX_INPROC_SE= RVER, + IID_IUnknown, (void **)pUnknown.replace())); + chk(pUnknown->QueryInterface(IID_ICOMAdminCatalog2, + (void **)pCatalog.replace())); + chk(pCatalog->ShutdownApplication(_bstr_t(QGA_PROVIDER_LNAME))); + } + +out: + return hr; +} diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp index 272e71b..27308ad 100644 --- a/qga/vss-win32/requester.cpp +++ b/qga/vss-win32/requester.cpp @@ -13,6 +13,7 @@ #include "qemu/osdep.h" #include "vss-common.h" #include "requester.h" +#include "install.h" #include #include =20 @@ -501,4 +502,5 @@ void requester_thaw(int *num_vols, ErrorSet *errset) requester_cleanup(); =20 CoUninitialize(); + StopService(); } --=20 2.9.3