VirtualBox

Changeset 76067 in vbox


Ignore:
Timestamp:
Dec 8, 2018 12:54:36 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
127307
Message:

VBoxSDS,VBoxSVC,VBoxProxyStub: Kicked out the failed attempt at centralized client watching. bugref:3300

Location:
trunk/src/VBox/Main
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/Makefile.kmk

    r76064 r76067  
    306306 VBoxSDS_INCS = \
    307307        include \
    308         $(VBoxSDS_0_OUTDIR) \
    309         $(VBOX_MAIN_APIWRAPPER_INCS)
     308        $(VBoxSDS_0_OUTDIR)
    310309 VBoxSDS_INCS.win = \
    311310        $(VBoxCOM_0_OUTDIR)
    312  VBoxSDS_LIBS += \
    313         $(PATH_STAGE_LIB)/VBoxAPIWrap$(VBOX_SUFF_LIB)
    314311 VBoxSDS_INTERMEDIATES = \
    315         $(VBOX_MAIN_PREREQS) \
    316         $(VBOX_MAIN_APIWRAPPER_GEN_HDRS)
     312        $(VBOX_MAIN_PREREQS)
    317313 VBoxSDS_SOURCES = \
    318         src-all/Global.cpp \
    319         src-all/AutoCaller.cpp \
    320         src-all/VirtualBoxBase.cpp \
    321         src-all/VirtualBoxErrorInfoImpl.cpp \
    322314        src-global/VirtualBoxSDSImpl.cpp
    323315 VBoxSDS_SOURCES.win = \
    324         src-global/win/VirtualBoxClientListImpl.cpp \
    325316        src-global/win/VBoxSDS.cpp \
    326317        src-global/win/VBoxSDS.rc
     
    12081199        $(PATH_SUB_CURRENT)/src-all/win/VBoxProxyStub.def \
    12091200        $(PATH_SUB_CURRENT)/src-all/win/VBoxProxyStub.rc \
    1210         $(PATH_SUB_CURRENT)/src-all/win/RpcChannelHook.cpp \
    12111201        $(PATH_SUB_CURRENT)/src-all/win/VBoxProxyStub.c
     1202#       $(PATH_SUB_CURRENT)/src-all/win/RpcChannelHook.cpp
    12121203 src-all/win/VBoxProxyStub.rc_DEPS = $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb
    12131204 VBoxProxyStub_VirtualBox_p.c_CFLAGS.x86 = /Gz # Workaround for incorrect ObjectStublessClient* prototypes in SDK v7.1.
     
    12241215        src-all/win/VBoxProxyStub.def \
    12251216        src-all/win/VBoxProxyStubLegacy.rc \
    1226         src-all/win/RpcChannelHook.cpp \
    12271217        src-all/win/VBoxProxyStub.c
     1218#       src-all/win/RpcChannelHook.cpp
    12281219 src-all/win/VBoxProxyStubLegacy.rc_DEPS = $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.tlb
    12291220
     
    12401231        src-all/win/VBoxProxyStub.c \
    12411232        src-all/win/VBoxProxyStub-x86.rc \
    1242         src-all/win/RpcChannelHook.cpp \
    12431233        src-all/win/VBoxProxyStub.def
     1234#       src-all/win/RpcChannelHook.cpp
    12441235  src-all/win/VBoxProxyStub-x86.rc_DEPS = $(VBoxCOM-x86_0_OUTDIR)/VirtualBox-x86.tlb
    12451236 endif
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r75926 r76067  
    2576925769</application>
    2577025770
     25771<if target="midl">
    2577125772<!-- Pay attention! Application uuid of this application is used in midl.xsl
    2577225773     So if you change it then change filter in "interface" and "class" template in midl.xsl too
     
    2577725778  supportsErrorInfo="yes"
    2577825779>
    25779 
    25780 <if target="midl">
    2578125780
    2578225781  <!--
     
    2581925818  <interface
    2582025819    name="IVirtualBoxSDS" extends="$unknown" notdual="yes"
    25821     uuid="787d20ed-faf3-4170-6697-3a2a7de6e086"
     25820    uuid="152265b8-fe7d-4077-9dd6-032bc3f1c5a3"
    2582225821    wsmap="suppress" internal="yes"
    2582325822    reservedMethods="0" reservedAttributes="0"
     
    2585725856      </method>
    2585825857
    25859       <method name="notifyClientsFinished">
    25860           <desc>Notify SDS that clients finished.</desc>
    25861       </method>
    25862 
    2586325858  </interface>
    25864 
    25865     <!--
    25866   // IVirtualBoxClientList
    25867   //////////////////////////////////////////////////////////////////////////
    25868   -->
    25869 
    25870     <interface
    25871       name="IVirtualBoxClientList" extends="$unknown"
    25872       uuid="6e7f09c9-da13-4126-9cc8-9aab81fed413"
    25873       wsmap="suppress"
    25874       reservedMethods="2" reservedAttributes="2"
    25875     >
    25876         <desc>
    25877             The IVirtualBoxClientList interface represents a list of VirtualBox API clients.
    25878         </desc>
    25879 
    25880         <method name="registerClient">
    25881             <desc>Register VirtualBox API Client.</desc>
    25882             <param name="pid" type="long" dir="in">
    25883                 <desc>Process ID of VirtualBox API client.</desc>
    25884             </param>
    25885         </method>
    25886 
    25887         <attribute name="clients" readonly="yes" type="long" dir="out" safearray="yes">
    25888             <desc>List of registered VirtualBox API clients.</desc>
    25889         </attribute>
    25890 
    25891     </interface>
    25892 
    25893 </if> <!-- bird: shouldn't this if-element at leat include the VBoxSDS module, if not the whole system service application? -->
    2589425859
    2589525860<!-- Warning: the name of module should coincide with real windows service name.
     
    2590725872          <interface name="IVirtualBoxSDS" default="yes"/>
    2590825873      </class>
    25909       <class name="VirtualBoxClientList" uuid="b2313c29-07eb-4613-ab27-f86bda7a0cae" namespace="virtualbox.org" >
    25910           <interface name="IVirtualBoxClientList" default="yes" />
    25911       </class>
    2591225874  </module>
    2591325875</application>
     25876</if>
    2591425877
    2591525878</library>
  • trunk/src/VBox/Main/idl/midl.xsl

    r69770 r76067  
    127127    <xsl:text>&#x0A;</xsl:text>
    128128    <!-- forward declarations -->
    129     <xsl:apply-templates select="application/if | application/interface" mode="forward"/>
     129    <xsl:apply-templates select="descendant::application/if   | descendant::application/interface" mode="forward"/>
    130130    <xsl:text>&#x0A;</xsl:text>
    131131    <!-- all enums go first -->
    132     <xsl:apply-templates select="application/enum | application/if[enum]"/>
     132    <xsl:apply-templates select="descendant::application/enum | descendant::application/if[enum]"/>
    133133    <!-- declare the interfaces -->
    134     <xsl:apply-templates select="application/if | application/interface"/>
     134    <xsl:apply-templates select="descendant::application/if   | descendant::application/interface"/>
    135135  </xsl:if>
    136136
     
    153153    <xsl:when test="$g_fGenProxy = 'yes'">
    154154      <!-- reference enums and interfaces -->
    155       <xsl:apply-templates select="application/if | application/interface" mode="forward"/>
    156       <xsl:apply-templates select="application/enum | application/if[enum]" mode="forward"/>
     155      <xsl:apply-templates select="descendant::application/if          | descendant::application/interface" mode="forward"/>
     156      <xsl:apply-templates select="descendant::application/enum        | descendant::application/if[enum]" mode="forward"/>
    157157      <!-- the modules (i.e. everything else) -->
    158       <xsl:apply-templates select="application/module | application/if[module]"/>
     158      <xsl:apply-templates select="descendant::application/module      | descendant::application/if[module]"/>
    159159    </xsl:when>
    160160    <xsl:otherwise>
    161161      <!-- forward declarations -->
    162       <xsl:apply-templates select="application/if | application/interface" mode="forward"/>
     162      <xsl:apply-templates select="descendant::application/if          | descendant::application/interface" mode="forward"/>
    163163      <!-- all enums go first -->
    164       <xsl:apply-templates select="application/enum | application/if[enum]"/>
     164      <xsl:apply-templates select="descendant::application/enum        | descendant::application/if[enum]"/>
    165165      <!-- everything else but result codes and enums -->
    166       <xsl:apply-templates select="  application/interface | application/if[interface]
    167                                    | application/module | application/if[module]"/>
     166      <xsl:apply-templates select="  descendant::application/interface | descendant::application/if[interface]
     167                                   | descendant::application/module    | descendant::application/if[module]"/>
    168168    </xsl:otherwise>
    169169  </xsl:choose>
     
    857857            <!-- enum types -->
    858858            <xsl:when test="
    859               (ancestor::library/application/enum[@name=current()]) or
    860               (ancestor::library/application/if[@target=$self_target]/enum[@name=current()])
     859                 (ancestor::library/application/enum[@name=current()])
     860              or (ancestor::library/if/application/enum[@name=current()])
     861              or (ancestor::library/application/if[@target=$self_target]/enum[@name=current()])
     862              or (ancestor::library/if/application/if[@target=$self_target]/enum[@name=current()])
    861863            ">
    862864              <xsl:value-of select="."/>
     
    864866            <!-- custom interface types -->
    865867            <xsl:when test="
    866               ((ancestor::library/application/interface[@name=current()]) or
    867                (ancestor::library/application/if[@target=$self_target]/interface[@name=current()])
     868              (    (ancestor::library/application/interface[@name=current()])
     869                or (ancestor::library/if/application/interface[@name=current()])
     870                or (ancestor::library/application/if[@target=$self_target]/interface[@name=current()])
     871                or (ancestor::library/if/application/if[@target=$self_target]/interface[@name=current()])
    868872              )
    869873            ">
     
    887891<!-- Filters for switch on/off VBoxSDS definitions -->
    888892
    889 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//module/class" >
     893<xsl:template match="if[@target='midl']/application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//module/class" >
    890894    <xsl:if test="$g_fVBoxWithSDS='yes'" >
    891895        <xsl:call-template name="template_class" />
     
    893897</xsl:template>
    894898
    895 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']/if//interface
     899<xsl:template match="if[@target='midl']/application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']/if//interface
    896900                                | application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//interface" >
    897901    <xsl:if test="$g_fVBoxWithSDS='yes'" >
     
    900904</xsl:template>
    901905
    902 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//interface" mode="forward" >
     906<xsl:template match="if[@target='midl']/application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//interface" mode="forward" >
    903907    <xsl:if test="$g_fVBoxWithSDS='yes'" >
    904908        <xsl:call-template name="template_interface_forward" />
  • trunk/src/VBox/Main/include/RpcChannelHook.h

    r71716 r76067  
    11/* $Id$ */
    22/** @file
    3 * VBox COM Rpc Channel Hook definition
    4 */
     3 * VirtualBox Main - RPC Channel Hook Hack, VBoxProxyStub.
     4 */
    55
    66/*
     
    2121#include <iprt/cdefs.h>
    2222
    23 #ifdef RT_OS_WINDOWS
     23#ifndef RT_OS_WINDOWS
     24# error "Oops"
     25#endif
     26
    2427#include <iprt/win/windows.h>
    2528#include <ObjIdl.h>
    2629
    2730
    28 typedef void *PRPC_CHANNEL_HOOK;
     31RT_C_DECLS_BEGIN
    2932
    30 // {CEDA3E95-A46A-4C41-AA01-EFFD856E455C}
     33/* {CEDA3E95-A46A-4C41-AA01-EFFD856E455C} */
    3134static const GUID RPC_CHANNEL_EXTENSION_GUID =
    3235{ 0xceda3e95, 0xa46a, 0x4c41,{ 0xaa, 0x1, 0xef, 0xfd, 0x85, 0x6e, 0x45, 0x5c } };
    3336
    34 RT_C_DECLS_BEGIN
    35 // C wrapper for using in proxy
     37/** C wrapper for using in proxy (C code). */
    3638void SetupClientRpcChannelHook(void);
     39
    3740RT_C_DECLS_END
    3841
    3942
    40 #if defined(__cplusplus)
     43#ifdef __cplusplus
    4144
    42 /*
    43 * This is RPC channel hook implementation for registering VirtualBox API clients.
    44 * This channel hook instantiated in COM client process by VBoxProxyStub
    45 * We use it to catch a moment when a new VirtualBox object sucessfully instantiated to
    46 * register new API client in a VBoxSDS clients list.
    47 */
     45/**
     46 * This is RPC channel hook implementation for registering VirtualBox API clients.
     47 *
     48 * This channel hook instantiated in COM client process by VBoxProxyStub
     49 * We use it to catch a moment when a new VirtualBox object sucessfully instantiated to
     50 * register new API client in a VBoxSDS clients list.
     51 */
    4852class CRpcChannelHook : public IChannelHook
    4953{
     
    5256
    5357    /* IUnknown Interface methods */
    54     STDMETHODIMP QueryInterface(REFIID riid, void **ppv);
    55     STDMETHODIMP_(ULONG) AddRef(void);
    56     STDMETHODIMP_(ULONG) Release(void);
     58    STDMETHOD(QueryInterface)(REFIID riid, void **ppv);
     59    STDMETHOD_(ULONG, AddRef)(void);
     60    STDMETHOD_(ULONG, Release)(void);
    5761
    5862    /* IChannelHook Interface methods */
    59     STDMETHODIMP_(void) ClientGetSize(REFGUID uExtent, REFIID riid, ULONG *pDataSize);
    60     STDMETHODIMP_(void) ClientFillBuffer(REFGUID uExtent, REFIID riid, ULONG *pDataSize, void *pDataBuffer);
    61     STDMETHODIMP_(void) ClientNotify(REFGUID uExtent, REFIID riid, ULONG cbDataSize, void *pDataBuffer, DWORD lDataRep, HRESULT hrFault);
     63    STDMETHOD_(void, ClientGetSize)(REFGUID uExtent, REFIID riid, ULONG *pDataSize);
     64    STDMETHOD_(void, ClientFillBuffer)(REFGUID uExtent, REFIID riid, ULONG *pDataSize, void *pDataBuffer);
     65    STDMETHOD_(void, ClientNotify)(REFGUID uExtent, REFIID riid, ULONG cbDataSize, void *pDataBuffer, DWORD lDataRep, HRESULT hrFault);
    6266
    63     STDMETHODIMP_(void) ServerNotify(REFGUID uExtent, REFIID riid, ULONG cbDataSize, void *pDataBuffer, DWORD lDataRep);
    64     STDMETHODIMP_(void) ServerGetSize(REFGUID uExtent, REFIID riid, HRESULT hrFault, ULONG *pDataSize);
    65     STDMETHODIMP_(void) ServerFillBuffer(REFGUID uExtent, REFIID riid, ULONG *pDataSize, void *pDataBuffer, HRESULT hrFault);
     67    STDMETHOD_(void, ServerNotify)(REFGUID uExtent, REFIID riid, ULONG cbDataSize, void *pDataBuffer, DWORD lDataRep);
     68    STDMETHOD_(void, ServerGetSize)(REFGUID uExtent, REFIID riid, HRESULT hrFault, ULONG *pDataSize);
     69    STDMETHOD_(void, ServerFillBuffer)(REFGUID uExtent, REFIID riid, ULONG *pDataSize, void *pDataBuffer, HRESULT hrFault);
    6670
    6771protected:
     
    7074
    7175protected:
    72     const GUID m_ChannelHookID;
    73     static volatile bool s_fChannelRegistered;
    74     static volatile bool s_fVBpoxSDSCalledOnce;
    75     static CRpcChannelHook s_RpcChannelHook;
     76    const GUID              m_ChannelHookID;
     77    static volatile bool    s_fChannelRegistered;
     78    static volatile bool    s_fVBpoxSDSCalledOnce;
     79    static CRpcChannelHook  s_RpcChannelHook;
    7680
    7781    /* C wrapper*/
     
    7983};
    8084
     85#endif /* __cplusplus */
    8186
    82 #endif // #if defined(__cplusplus)
    83 
    84 
    85 #endif // #ifdef RT_OS_WINDOWS
    86 
    87 #endif // ____H_RPCCHANNELHOOK
     87#endif
  • trunk/src/VBox/Main/include/VirtualBoxSDSImpl.h

    r76066 r76067  
    7575    STDMETHOD(RegisterVBoxSVC)(IVBoxSVCRegistration *aVBoxSVC, LONG aPid, IUnknown **aExistingVirtualBox);
    7676    STDMETHOD(DeregisterVBoxSVC)(IVBoxSVCRegistration *aVBoxSVC, LONG aPid);
    77     STDMETHOD(NotifyClientsFinished)(); /**< @todo r=bird: Internal within SDS! Make private. */
    7877    /** @} */
    7978
  • trunk/src/VBox/Main/src-all/win/RpcChannelHook.cpp

    r73919 r76067  
    11/* $Id$ */
    22/** @file
    3 * VBox Global COM Class implementation.
    4 */
     3 * VirtualBox Main - RPC Channel Hook Hack, VBoxProxyStub.
     4 */
    55
    66/*
     
    1717
    1818
    19 #include <iprt\assert.h>
    20 #include <iprt\process.h>
    21 #include <iprt\string.h>
     19/*********************************************************************************************************************************
     20*   Header Files                                                                                                                 *
     21*********************************************************************************************************************************/
     22#include <iprt/assert.h>
     23#include <iprt/process.h>
     24#include <iprt/string.h>
    2225#include <iprt/asm.h>
    2326#include "Logging.h"
    2427#include <VBox/com/VirtualBox.h>
    2528
    26 #include <string>
    27 
    2829#include "VirtualBox.h"
    2930#include "RpcChannelHook.h"
     31
    3032
    3133#if defined(RT_OS_WINDOWS) && defined(VBOX_WITH_SDS)
     
    4345{
    4446    if (riid == IID_IUnknown)
    45     {
    46         *ppv = (IUnknown*)this;
    47     }
     47        *ppv = (IUnknown *)this;
    4848    else if (riid == IID_IChannelHook)
    49     {
    50         *ppv = (IChannelHook*)this;
    51     }
     49        *ppv = (IChannelHook *)this;
    5250    else
    5351    {
    54         *ppv = 0;
     52        *ppv = NULL;
    5553        return E_NOINTERFACE;
    5654    }
     55
    5756    this->AddRef();
    5857    return S_OK;
  • trunk/src/VBox/Main/src-all/win/VBoxProxyStub.c

    r71717 r76067  
    13571357                        &LIBID_VirtualBox, "LocalServer32", pwszVBoxDir, pszSdsExe, NULL /*N/A*/);
    13581358
     1359# if 0
    13591360    VbpsRegisterClassName(pState, "VirtualBox.VirtualBoxClientList.1", "VirtualBoxClientList Class", &CLSID_VirtualBoxClientList, NULL);
    13601361    VbpsRegisterClassName(pState, "VirtualBox.VirtualBoxClientList", "VirtualBoxClientList Class", &CLSID_VirtualBoxClientList, ".1");
    13611362    VbpsRegisterClassId(pState, &CLSID_VirtualBoxClientList, "VirtualBoxClientList Class", pszSdsAppId, "VirtualBox.VirtualBoxClientList", ".1",
    13621363        &LIBID_VirtualBox, "LocalServer32", pwszVBoxDir, pszSdsExe, NULL /*N/A*/);
     1364# endif
    13631365#endif
    13641366}
  • trunk/src/VBox/Main/src-global/VirtualBoxSDSImpl.cpp

    r76066 r76067  
    5353     * This is NULL if not set. */
    5454    ComPtr<IVBoxSVCRegistration>    m_ptrTheChosenOne;
    55     ComPtr<IVirtualBoxClientList>   m_ptrClientList;
    5655private:
    5756    /** Reference count to make destruction safe wrt hung callers.
     
    184183                        LogRel(("VirtualBoxSDS::registerVBoxSVC: Seems VBoxSVC instance died.  Dropping it and letting caller take over. (hrc=%Rhrc)\n", hrc));
    185184                        pUserData->m_ptrTheChosenOne.setNull();
    186 
    187                         /* Release the client list and stop client list watcher thread*/
    188                         pUserData->m_ptrClientList.setNull();
    189185                    }
    190186                }
     
    194190                /*
    195191                 * Is the caller the chosen one?
    196                  * The chosen one always have a client list object for monitoring purposes.
    197192                 */
    198193                if (pUserData->m_ptrTheChosenOne.isNull())
     
    200195                    LogRel(("VirtualBoxSDS::registerVBoxSVC: Making aPid=%u (%#x) the chosen one for user %s (%s)!\n",
    201196                            aPid, aPid, pUserData->m_strUserSid.c_str(), pUserData->m_strUsername.c_str()));
    202                     try
    203                     {
    204                         /// @todo r=bird: Enable when design has been corrected.
    205                         ///hrc = pUserData->m_ptrClientList.createLocalObject(CLSID_VirtualBoxClientList);
    206                         hrc = S_OK;
    207                         if (SUCCEEDED(hrc))
    208                         {
    209                             LogFunc(("Created API client list instance in VBoxSDS: hrc=%Rhrc\n", hrc));
    210                             pUserData->m_ptrTheChosenOne = aVBoxSVC;
    211                         }
    212                         else
    213                             LogRel(("VirtualBoxSDS::registerVBoxSVC: Error in creating API client list instance: hrc=%Rhrc\n", hrc));
    214                     }
    215                     catch (...)
    216                     {
    217                         LogRel(("VirtualBoxSDS::registerVBoxSVC: Unexpected exception setting the chosen one!\n"));
    218                         hrc = E_UNEXPECTED;
    219                     }
     197                    pUserData->m_ptrTheChosenOne = aVBoxSVC;
    220198                }
    221199
     
    255233                            pUserData->m_strUserSid.c_str(), pUserData->m_strUsername.c_str()));
    256234                    pUserData->m_ptrTheChosenOne.setNull();
    257                     /* Release the client list and stop client list watcher thread*/
    258                     pUserData->m_ptrClientList.setNull();
    259235                }
    260236                else
     
    283259
    284260
    285 STDMETHODIMP VirtualBoxSDS::NotifyClientsFinished()
    286 {
    287     LogRelFlowThisFuncEnter();
    288 
    289     int vrc = RTCritSectRwEnterShared(&m_MapCritSect);
    290     if (RT_SUCCESS(vrc))
    291     {
    292 /** @todo r=bird: Why notify all VBoxSVC instances?  That makes zero sense!   */
    293         for (UserDataMap_T::iterator it = m_UserDataMap.begin(); it != m_UserDataMap.end(); ++it)
    294         {
    295             VBoxSDSPerUserData *pUserData = it->second;
    296             if (pUserData && pUserData->m_ptrTheChosenOne)
    297             {
    298                 /*
    299                  * Notify VBoxSVC about finishing all API clients it should free
    300                  * references to VBoxSDS and clean up itself
    301                  */
    302                 LogRelFunc(("Notify VBoxSVC that all clients finished\n"));
    303                 if (pUserData->m_ptrClientList.isNotNull())
    304                     pUserData->m_ptrClientList.setNull();
    305 
    306                 pUserData->m_ptrTheChosenOne->NotifyClientsFinished();
    307             }
    308         }
    309         RTCritSectRwLeaveShared(&m_MapCritSect);
    310     }
    311 
    312     LogRelFlowThisFuncLeave();
    313     return S_OK;
    314 }
    315 
    316 // private methods
    317 ///////////////////////////////////////////////////////////////////////////////
     261/*********************************************************************************************************************************
     262*   Internal Methods                                                                                                             *
     263*********************************************************************************************************************************/
    318264
    319265/*static*/ bool VirtualBoxSDS::i_getClientUserSid(com::Utf8Str *a_pStrSid, com::Utf8Str *a_pStrUsername)
  • trunk/src/VBox/Main/src-global/win/VBoxSDS.cpp

    r76065 r76067  
    8787
    8888#include "VirtualBoxSDSImpl.h"
    89 #include "VirtualBoxClientListImpl.h"
    9089#include "Logging.h"
    9190
     
    926925            BEGIN_OBJECT_MAP(s_aObjectMap)
    927926                OBJECT_ENTRY(CLSID_VirtualBoxSDS, VirtualBoxSDS)
    928                 OBJECT_ENTRY(CLSID_VirtualBoxClientList, VirtualBoxClientList)
    929927            END_OBJECT_MAP()
    930928            hrcExit = pServiceModule->init(s_aObjectMap, hInstance, &LIBID_VirtualBox,
  • trunk/src/VBox/Main/src-server/win/svcmain.cpp

    r76066 r76067  
    9898
    9999
    100 #ifdef VBOX_WITH_SDS
     100#if 0 //def VBOX_WITH_SDS
    101101
    102102BOOL CALLBACK CloseWindowProc(_In_ HWND   hWnd, _In_ LPARAM /* lParam */)
     
    691691                         g_pModule->bActivity, g_pModule->GetLockCount()));
    692692
    693 #ifdef VBOX_WITH_SDS
     693#if 0 //def VBOX_WITH_SDS
    694694                    // On Windows 7 our clients doesn't receive right sequence of Session End events
    695695                    // So we send them all WM_QUIT to forcible close them.
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette