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); }
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); }