VirtualBox

Changeset 76065 in vbox for trunk/src


Ignore:
Timestamp:
Dec 7, 2018 9:27:24 PM (6 years ago)
Author:
vboxsync
Message:

VBoxSDS: nits

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/include/VirtualBoxSDSImpl.h

    r71160 r76065  
    7272
    7373    // IVirtualBoxSDS methods
    74     STDMETHODIMP_(HRESULT) RegisterVBoxSVC(IVBoxSVCRegistration *aVBoxSVC, LONG aPid, IUnknown **aExistingVirtualBox);
    75     STDMETHODIMP_(HRESULT) DeregisterVBoxSVC(IVBoxSVCRegistration *aVBoxSVC, LONG aPid);
    76     STDMETHODIMP_(HRESULT) NotifyClientsFinished();
     74    STDMETHOD(RegisterVBoxSVC)(IVBoxSVCRegistration *aVBoxSVC, LONG aPid, IUnknown **aExistingVirtualBox);
     75    STDMETHOD(DeregisterVBoxSVC)(IVBoxSVCRegistration *aVBoxSVC, LONG aPid);
     76    STDMETHOD(NotifyClientsFinished)();
    7777
    7878
  • trunk/src/VBox/Main/src-global/VirtualBoxSDSImpl.cpp

    r71159 r76065  
    147147
    148148/* SDS plan B interfaces: */
    149 STDMETHODIMP_(HRESULT) VirtualBoxSDS::RegisterVBoxSVC(IVBoxSVCRegistration *aVBoxSVC, LONG aPid, IUnknown **aExistingVirtualBox)
    150 {
    151     LogRel(("VirtualBoxSDS::registerVBoxSVC: aVBoxSVC=%p aPid=%u\n", (IVBoxSVCRegistration *)aVBoxSVC, aPid));
     149STDMETHODIMP VirtualBoxSDS::RegisterVBoxSVC(IVBoxSVCRegistration *aVBoxSVC, LONG aPid, IUnknown **aExistingVirtualBox)
     150{
     151    LogRel(("VirtualBoxSDS::registerVBoxSVC: aVBoxSVC=%p aPid=%u (%#x)\n", (IVBoxSVCRegistration *)aVBoxSVC, aPid, aPid));
    152152    HRESULT hrc;
    153153    if (   RT_VALID_PTR(aVBoxSVC)
     
    164164            if (pUserData)
    165165            {
     166                /*
     167                 * If there already is a chosen one, check that it is still around,
     168                 * replace it with the caller if no response.
     169                 */
    166170                if (pUserData->m_ptrTheChosenOne.isNotNull())
    167171                {
     
    179183                        LogRel(("VirtualBoxSDS::registerVBoxSVC: Seems VBoxSVC instance died.  Dropping it and letting caller take over.\n"));
    180184                        pUserData->m_ptrTheChosenOne.setNull();
     185
    181186                        /* Release the client list and stop client list watcher thread*/
    182187                        pUserData->m_ptrClientList.setNull();
     
    186191                    hrc = S_OK;
    187192
     193                /*
     194                 * Is the caller the chosen one?
     195                 * The chosen one always have a client list object for monitoring purposes.
     196                 */
    188197                if (pUserData->m_ptrTheChosenOne.isNull())
    189198                {
    190                     LogRel(("VirtualBoxSDS::registerVBoxSVC: Making aPid=%u the chosen one for user %s (%s)!\n",
    191                             aPid, pUserData->m_strUserSid.c_str(), pUserData->m_strUsername.c_str()));
     199                    LogRel(("VirtualBoxSDS::registerVBoxSVC: Making aPid=%u (%#x) the chosen one for user %s (%s)!\n",
     200                            aPid, aPid, pUserData->m_strUserSid.c_str(), pUserData->m_strUsername.c_str()));
    192201                    try
    193202                    {
    194                         pUserData->m_ptrTheChosenOne = aVBoxSVC;
    195                         /*
    196                         * Create instance of ClientList
    197                         */
    198                         HRESULT hrc = CoCreateInstance(CLSID_VirtualBoxClientList, NULL, CLSCTX_LOCAL_SERVER,
    199                             IID_IVirtualBoxClientList,
    200                             (void **)pUserData->m_ptrClientList.asOutParam());
     203#if 1
     204                        hrc = pUserData->m_ptrClientList.createLocalObject(CLSID_VirtualBoxClientList);
     205#else
     206                        hrc = CoCreateInstance(CLSID_VirtualBoxClientList, NULL, CLSCTX_LOCAL_SERVER,
     207                                               IID_IVirtualBoxClientList,
     208                                               (void **)pUserData->m_ptrClientList.asOutParam());
     209#endif
    201210                        if (SUCCEEDED(hrc))
    202211                        {
    203                             LogFunc(("Created API client list instance in VBoxSDS : hr=%Rhrf\n", hrc));
     212                            LogFunc(("Created API client list instance in VBoxSDS: hrc=%Rhrc\n", hrc));
     213                            pUserData->m_ptrTheChosenOne = aVBoxSVC;
    204214                        }
    205215                        else
    206                         {
    207                             LogFunc(("Error in creating API client list instance: hr=%Rhrf\n", hrc));
    208                         }
    209 
    210                         hrc = S_OK;
     216                            LogRel(("VirtualBoxSDS::registerVBoxSVC: Error in creating API client list instance: hrc=%Rhrc\n", hrc));
    211217                    }
    212218                    catch (...)
    213219                    {
    214                         LogRel(("VirtualBoxSDS::registerVBoxSVC: unexpected exception setting the chosen one.\n"));
    215                         hrc = E_FAIL;
     220                        LogRel(("VirtualBoxSDS::registerVBoxSVC: Unexpected exception setting the chosen one!\n"));
     221                        hrc = E_UNEXPECTED;
    216222                    }
    217223                }
     
    232238}
    233239
    234 STDMETHODIMP_(HRESULT) VirtualBoxSDS::DeregisterVBoxSVC(IVBoxSVCRegistration *aVBoxSVC, LONG aPid)
     240STDMETHODIMP VirtualBoxSDS::DeregisterVBoxSVC(IVBoxSVCRegistration *aVBoxSVC, LONG aPid)
    235241{
    236242    LogRel(("VirtualBoxSDS::deregisterVBoxSVC: aVBoxSVC=%p aPid=%u\n", (IVBoxSVCRegistration *)aVBoxSVC, aPid));
     
    246252            if (pUserData)
    247253            {
    248                 if (   (IVBoxSVCRegistration *)aVBoxSVC
    249                     == (IVBoxSVCRegistration *)pUserData->m_ptrTheChosenOne)
     254                if (aVBoxSVC == (IVBoxSVCRegistration *)pUserData->m_ptrTheChosenOne)
    250255                {
    251256                    LogRel(("VirtualBoxSDS::deregisterVBoxSVC: It's the chosen one for %s (%s)!\n",
     
    281286
    282287
    283 STDMETHODIMP_(HRESULT) VirtualBoxSDS::NotifyClientsFinished()
     288STDMETHODIMP VirtualBoxSDS::NotifyClientsFinished()
    284289{
    285290    LogRelFlowThisFuncEnter();
     
    345350                        fRet = true;
    346351                    }
    347                     catch (std::bad_alloc)
     352                    catch (std::bad_alloc &)
    348353                    {
    349354                        LogRel(("VirtualBoxSDS::i_GetClientUserSID: std::bad_alloc setting rstrSid.\n"));
     
    372377                                a_pStrUsername->append(Utf8Str(wszUsername));
    373378                            }
    374                             catch (std::bad_alloc)
     379                            catch (std::bad_alloc &)
    375380                            {
    376381                                LogRel(("VirtualBoxSDS::i_GetClientUserSID: std::bad_alloc setting rStrUsername.\n"));
     
    458463            pUserData = new VBoxSDSPerUserData(a_rStrUserSid, a_rStrUsername);
    459464        }
    460         catch (std::bad_alloc)
     465        catch (std::bad_alloc &)
    461466        {
    462467            pUserData = NULL;
     
    482487                        pUserData->i_retain();
    483488                    }
    484                     catch (std::bad_alloc)
     489                    catch (std::bad_alloc &)
    485490                    {
    486491                        pUserData = NULL;
  • trunk/src/VBox/Main/src-global/win/VBoxSDS.cpp

    r73358 r76065  
    1919/** @page pg_VBoxSDS    VBoxSDS - Per user CLSID_VirtualBox coordinater
    2020 *
    21  * VBoxSDS is short for VirtualBox System Directory Service (SDS).  It's purpose
    22  * is to make sure there only one CLSID_VirtualBox object running for each user
    23  * uisng VirtualBox on a Windows host system.
     21 * VBoxSDS is short for VirtualBox System Directory Service (SDS).  Its purpose
     22 * is to make sure there is only one CLSID_VirtualBox object running for each
     23 * user using VirtualBox on a Windows host system.
    2424 *
    2525 *
     
    3434 * level too.
    3535 *
    36  * VBoxSVC is a service affected by this issue.  Using VirtualBox accross logins
     36 * VBoxSVC is a service affected by this issue.  Using VirtualBox across logins
    3737 * or between user elevation levels was impossible to do simultaneously.  This
    3838 * was confusing and illogical to the user.
     
    103103#include <VBox/com/microatl.h>
    104104
    105 #define _ATL_FREE_THREADED
     105#define _ATL_FREE_THREADED /** @todo r=bird: WTF? */
    106106
    107107/**
     
    188188
    189189private:
    190     void serviceMain( DWORD , LPTSTR* ) throw()
     190    void serviceMain(DWORD, LPTSTR *) throw()
    191191    {
    192192        LogFunc(("Enter into serviceMain\n"));
     
    940940                     * Do registration work and quit.
    941941                     */
    942                     // The VBoxProxyStub should do all work for COM registration
     942                    /// @todo The VBoxProxyStub should do all work for COM registration
    943943                    if (fUnregister)
    944944                        hrcExit = pServiceModule->unregisterService();
Note: See TracChangeset for help on using the changeset viewer.

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