int VMMDev::hgcmHostCall(const char *pszServiceName, uint32_t u32Function,
                         uint32_t cParms, PVBOXHGCMSVCPARM paParms)
{
    if (!hgcmIsActive())
        return VERR_INVALID_STATE;
    return HGCMHostCall (pszServiceName, u32Function, cParms, paParms);
}
int VMMDev::hgcmLoadService(const char *pszServiceLibrary, const char *pszServiceName)
{
    if (!hgcmIsActive())
        return VERR_INVALID_STATE;

    return HGCMHostLoad(pszServiceLibrary, pszServiceName);
}
Example #3
0
int VMMDev::hgcmHostFastCallAsync(HGCMCVSHANDLE hSvc, uint32_t function, PVBOXHGCMSVCPARM pParm,
                                  PHGCMHOSTFASTCALLCB pfnCompletion, void *pvCompletion)
{
    if (!hgcmIsActive())
        return VERR_INVALID_STATE;
    return HGCMHostFastCallAsync(hSvc, function, pParm, pfnCompletion, pvCompletion);
}
VMMDev::~VMMDev()
{
#ifdef VBOX_WITH_HGCM
    if (hgcmIsActive())
    {
        ASMAtomicWriteBool(&m_fHGCMActive, false);
        HGCMHostShutdown();
    }
#endif /* VBOX_WITH_HGCM */
    RTSemEventDestroy (mCredentialsEvent);
    if (mpDrv)
        mpDrv->pVMMDev = NULL;
    mpDrv = NULL;
}
int VMMDev::hgcmHostSvcHandleDestroy (HGCMCVSHANDLE hSvc)
{
    if (!hgcmIsActive())
        return VERR_INVALID_STATE;
    return HGCMHostSvcHandleDestroy(hSvc);
}
int VMMDev::hgcmHostSvcHandleCreate (const char *pszServiceName, HGCMCVSHANDLE * phSvc)
{
    if (!hgcmIsActive())
        return VERR_INVALID_STATE;
    return HGCMHostSvcHandleCreate(pszServiceName, phSvc);
}