From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55898) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Urilh-0000Fy-W0 for qemu-devel@nongnu.org; Wed, 26 Jun 2013 01:59:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Urilh-0004tq-1F for qemu-devel@nongnu.org; Wed, 26 Jun 2013 01:59:49 -0400 Received: from mail-bk0-x234.google.com ([2a00:1450:4008:c01::234]:59287) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Urilg-0004tm-Qr for qemu-devel@nongnu.org; Wed, 26 Jun 2013 01:59:48 -0400 Received: by mail-bk0-f52.google.com with SMTP id d7so4656746bkh.39 for ; Tue, 25 Jun 2013 22:59:47 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <51CA834C.6080604@redhat.com> Date: Wed, 26 Jun 2013 07:59:40 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <20130606150618.10486.60669.stgit@hds.com> <20130606150645.10486.23215.stgit@hds.com>, <51CA0874.1000402@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v4 06/10] qemu-ga: Add Windows VSS provider to quiesce applications on fsfreeze List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Tomoki Sekiyama Cc: "libaiqing@huawei.com" , "qemu-devel@nongnu.org" , "stefanha@gmail.com" , "mdroth@linux.vnet.ibm.com" , "lcapitulino@redhat.com" , "vrozenfe@redhat.com" , Seiji Aguchi , "areis@redhat.com" Il 26/06/2013 00:31, Tomoki Sekiyama ha scritto: > From: Paolo Bonzini [paolo.bonzini@gmail.com] on behalf of Paolo Bonzini [pbonzini@redhat.com] >> Il 06/06/2013 17:06, Tomoki Sekiyama ha scritto: >>> +STDAPI VSSCheckOSVersion(void); >>> + >>> +STDAPI COMRegister(void); >>> +STDAPI COMUnregister(void); >>> + >>> +STDAPI DllRegisterServer(void); >>> +STDAPI DllUnregisterServer(void); >> >> Can you explain the difference between COMRegister/COMUnregister and >> DllRegisterServer/DllUnregisterServer (and why the COM+ part need not be >> done by regsvr32)? Also, why does COMUnregister call >> DllUnregisterServer but COMRegister does not call DllRegisterServer? > > COMRegister and COMUnregister are called by`qemu-ga -s install`, > to register/unregister the DLL into/from COM+ application catalogue. > > DllRegisterServer is automatically called inside > pCatalog->InstallComponent() (like regsvr32 does), and register > this DLL as a VSS provider. DllUnregisterServer will do the oposite. > > ICOMAdminCatalog (pCatalog) does not provide a method to uninstall > component, so COMUnregister calls DllUnregisterServer by itself. Understood, thanks. Just one question remains: why is the COM+ part not needed when you invoke regsvr32? Thanks, Paolo >> Also, is it needed to call VSSCheckOSVersion from the requestor? I >> would think that checking VSSAPI.DLL is stronger than checking the >> version, and indeed you do that check too. > > In Windows XP, VSSAPI.DLL exists but it has different functionality > and interfaces from newer Windows. > http://msdn.microsoft.com/en-us/library/windows/desktop/aa384627(v=vs.85).aspx > > It is checking the OS version because this patchset only supports > Windows 2003 or later. > > Thanks, > Tomoki Sekiyama >