qemu-ga: vss-win32: Install VSS provider COM+ application service
commitbca4bf1028b332f55502bc7f50345fa5ea1c4f40
authorTomoki Sekiyama <tomoki.sekiyama@hds.com>
Fri, 1 Nov 2013 21:47:25 +0000 (1 17:47 -0400)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Fri, 22 Nov 2013 21:14:05 +0000 (22 15:14 -0600)
tree765e170fae457c3ffc287765efdc5776c4f0c85a
parent607bb022f2a44797cbf40e85e84da4134e2f0e01
qemu-ga: vss-win32: Install VSS provider COM+ application service

Currently, qemu-ga for Windows fails to execute guset-fsfreeze-freeze when
no user is logging in to Windows, with an error message:
  {"error":{"class":"GenericError",
            "desc":"failed to add C:\\ to snapshotset:  (error: 8004230f)"}}

To enable guest-fsfreeze-freeze/thaw without logging in users, this installs
a service to execute qemu-ga VSS provider COM+ application that has full
access privileges to the local system. The service will automatically be
removed when the COM+ application is deregistered.

This patch replaces ICOMAdminCatalog interface with ICOMAdminCatalog2
interface that contains CreateServiceForApplication() method in addition.

Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@hds.com>
Reviewed-by: Gal Hammer <ghammer@redhat.com>
Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
Tested-by: Yan Vugenfirer <yvugenfi@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
qga/vss-win32/install.cpp