From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48294) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Urblq-0007Fw-VS for qemu-devel@nongnu.org; Tue, 25 Jun 2013 18:31:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Urblo-0003Au-9A for qemu-devel@nongnu.org; Tue, 25 Jun 2013 18:31:30 -0400 Received: from usindpps04.hds.com ([207.126.252.17]:38314) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Urblo-0003Al-1B for qemu-devel@nongnu.org; Tue, 25 Jun 2013 18:31:28 -0400 From: Tomoki Sekiyama Date: Tue, 25 Jun 2013 22:31:15 +0000 Message-ID: References: <20130606150618.10486.60669.stgit@hds.com> <20130606150645.10486.23215.stgit@hds.com>, <51CA0874.1000402@redhat.com> In-Reply-To: <51CA0874.1000402@redhat.com> Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 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: Paolo Bonzini Cc: "libaiqing@huawei.com" , "mdroth@linux.vnet.ibm.com" , "stefanha@gmail.com" , "qemu-devel@nongnu.org" , "lcapitulino@redhat.com" , "vrozenfe@redhat.com" , Seiji Aguchi , "areis@redhat.com" From: Paolo Bonzini [paolo.bonzini@gmail.com] on behalf of Paolo Bonzini [p= bonzini@redhat.com]=0A= > Il 06/06/2013 17:06, Tomoki Sekiyama ha scritto:=0A= >> +STDAPI VSSCheckOSVersion(void);=0A= >> +=0A= >> +STDAPI COMRegister(void);=0A= >> +STDAPI COMUnregister(void);=0A= >> +=0A= >> +STDAPI DllRegisterServer(void);=0A= >> +STDAPI DllUnregisterServer(void);=0A= >=0A= > Can you explain the difference between COMRegister/COMUnregister and=0A= > DllRegisterServer/DllUnregisterServer (and why the COM+ part need not be= =0A= > done by regsvr32)? Also, why does COMUnregister call=0A= > DllUnregisterServer but COMRegister does not call DllRegisterServer?=0A= =0A= COMRegister and COMUnregister are called by`qemu-ga -s install`,=0A= to register/unregister the DLL into/from COM+ application catalogue.=0A= =0A= DllRegisterServer is automatically called inside=0A= pCatalog->InstallComponent() (like regsvr32 does), and register=0A= this DLL as a VSS provider. DllUnregisterServer will do the oposite.=0A= =0A= ICOMAdminCatalog (pCatalog) does not provide a method to uninstall=0A= component, so COMUnregister calls DllUnregisterServer by itself.=0A= =0A= > Also, is it needed to call VSSCheckOSVersion from the requestor? I=0A= > would think that checking VSSAPI.DLL is stronger than checking the=0A= > version, and indeed you do that check too.=0A= =0A= In Windows XP, VSSAPI.DLL exists but it has different functionality=0A= and interfaces from newer Windows. =0A= http://msdn.microsoft.com/en-us/library/windows/desktop/aa384627(v=3Dvs.85)= .aspx=0A= =0A= It is checking the OS version because this patchset only supports=0A= Windows 2003 or later.=0A= =0A= Thanks,=0A= Tomoki Sekiyama=