本文整理汇总了C++中VMMDev类的典型用法代码示例。如果您正苦于以下问题:C++ VMMDev类的具体用法?C++ VMMDev怎么用?C++ VMMDev使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了VMMDev类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: autoCaller
STDMETHODIMP Guest::SetCredentials(IN_BSTR aUserName, IN_BSTR aPassword,
IN_BSTR aDomain, BOOL aAllowInteractiveLogon)
{
AutoCaller autoCaller(this);
if (FAILED(autoCaller.rc())) return autoCaller.rc();
/* forward the information to the VMM device */
VMMDev *pVMMDev = mParent->getVMMDev();
if (pVMMDev)
{
PPDMIVMMDEVPORT pVMMDevPort = pVMMDev->getVMMDevPort();
if (pVMMDevPort)
{
uint32_t u32Flags = VMMDEV_SETCREDENTIALS_GUESTLOGON;
if (!aAllowInteractiveLogon)
u32Flags = VMMDEV_SETCREDENTIALS_NOLOCALLOGON;
pVMMDevPort->pfnSetCredentials(pVMMDevPort,
Utf8Str(aUserName).c_str(),
Utf8Str(aPassword).c_str(),
Utf8Str(aDomain).c_str(),
u32Flags);
return S_OK;
}
}
return setError(VBOX_E_VM_ERROR,
tr("VMM device is not available (is the VM running?)"));
}
开发者ID:LastRitter,项目名称:vbox-haiku,代码行数:29,代码来源:GuestImpl.cpp
示例2: Assert
int GuestDnD::hostCall(uint32_t u32Function, uint32_t cParms, PVBOXHGCMSVCPARM paParms) const
{
Assert(!m_pGuest.isNull());
ComObjPtr<Console> pConsole = m_pGuest->i_getConsole();
/* Forward the information to the VMM device. */
Assert(!pConsole.isNull());
VMMDev *pVMMDev = pConsole->i_getVMMDev();
if (!pVMMDev)
return VERR_COM_OBJECT_NOT_FOUND;
return pVMMDev->hgcmHostCall("VBoxDragAndDropSvc", u32Function, cParms, paParms);
}
开发者ID:Klanly,项目名称:virtualbox-org-svn-vbox-trunk,代码行数:13,代码来源:GuestDnDPrivate.cpp
示例3: if
HRESULT Guest::setCredentials(const com::Utf8Str &aUserName, const com::Utf8Str &aPassword,
const com::Utf8Str &aDomain, BOOL aAllowInteractiveLogon)
{
/* Check for magic domain names which are used to pass encryption keys to the disk. */
if (Utf8Str(aDomain) == "@@disk")
return mParent->i_setDiskEncryptionKeys(aPassword);
else if (Utf8Str(aDomain) == "@@mem")
{
/** @todo */
return E_NOTIMPL;
}
else
{
/* forward the information to the VMM device */
VMMDev *pVMMDev = mParent->i_getVMMDev();
if (pVMMDev)
{
PPDMIVMMDEVPORT pVMMDevPort = pVMMDev->getVMMDevPort();
if (pVMMDevPort)
{
uint32_t u32Flags = VMMDEV_SETCREDENTIALS_GUESTLOGON;
if (!aAllowInteractiveLogon)
u32Flags = VMMDEV_SETCREDENTIALS_NOLOCALLOGON;
pVMMDevPort->pfnSetCredentials(pVMMDevPort,
aUserName.c_str(),
aPassword.c_str(),
aDomain.c_str(),
u32Flags);
return S_OK;
}
}
}
return setError(VBOX_E_VM_ERROR,
tr("VMM device is not available (is the VM running?)"));
}
开发者ID:sobomax,项目名称:virtualbox_64bit_edd,代码行数:37,代码来源:GuestImpl.cpp
示例4: LogRelFlowFunc
int Display::i_videoAccelEnable(bool fEnable, VBVAMEMORY *pVbvaMemory, PPDMIDISPLAYPORT pUpPort)
{
int rc = VINF_SUCCESS;
VIDEOACCEL *pVideoAccel = &mVideoAccelLegacy;
/* Called each time the guest wants to use acceleration,
* or when the VGA device disables acceleration,
* or when restoring the saved state with accel enabled.
*
* VGA device disables acceleration on each video mode change
* and on reset.
*
* Guest enabled acceleration at will. And it has to enable
* acceleration after a mode change.
*/
LogRelFlowFunc(("mfVideoAccelEnabled = %d, fEnable = %d, pVbvaMemory = %p\n",
pVideoAccel->fVideoAccelEnabled, fEnable, pVbvaMemory));
/* Strictly check parameters. Callers must not pass anything in the case. */
Assert((fEnable && pVbvaMemory) || (!fEnable && pVbvaMemory == NULL));
if (!i_VideoAccelAllowed ())
return VERR_NOT_SUPPORTED;
/* Check that current status is not being changed */
if (pVideoAccel->fVideoAccelEnabled == fEnable)
return rc;
if (pVideoAccel->fVideoAccelEnabled)
{
/* Process any pending orders and empty the VBVA ring buffer. */
i_videoAccelFlush (pUpPort);
}
if (!fEnable && pVideoAccel->pVbvaMemory)
pVideoAccel->pVbvaMemory->fu32ModeFlags &= ~VBVA_F_MODE_ENABLED;
if (fEnable)
{
/* Process any pending VGA device changes, resize. */
pUpPort->pfnUpdateDisplayAll(pUpPort, /* fFailOnResize = */ false);
}
/* Protect the videoaccel state transition. */
RTCritSectEnter(&mVideoAccelLock);
if (fEnable)
{
/* Initialize the hardware memory. */
i_vbvaSetMemoryFlags(pVbvaMemory, true, mfVideoAccelVRDP,
mfu32SupportedOrders, maFramebuffers, mcMonitors);
pVbvaMemory->off32Data = 0;
pVbvaMemory->off32Free = 0;
memset(pVbvaMemory->aRecords, 0, sizeof(pVbvaMemory->aRecords));
pVbvaMemory->indexRecordFirst = 0;
pVbvaMemory->indexRecordFree = 0;
pVideoAccel->pVbvaMemory = pVbvaMemory;
pVideoAccel->fVideoAccelEnabled = true;
LogRel(("VBVA: Enabled.\n"));
}
else
{
pVideoAccel->pVbvaMemory = NULL;
pVideoAccel->fVideoAccelEnabled = false;
LogRel(("VBVA: Disabled.\n"));
}
RTCritSectLeave(&mVideoAccelLock);
if (!fEnable)
{
pUpPort->pfnUpdateDisplayAll(pUpPort, /* fFailOnResize = */ false);
}
/* Notify the VMMDev, which saves VBVA status in the saved state,
* and needs to know current status.
*/
VMMDev *pVMMDev = mParent->i_getVMMDev();
if (pVMMDev)
{
PPDMIVMMDEVPORT pVMMDevPort = pVMMDev->getVMMDevPort();
if (pVMMDevPort)
pVMMDevPort->pfnVBVAChange(pVMMDevPort, fEnable);
}
LogRelFlowFunc(("%Rrc.\n", rc));
return rc;
}
开发者ID:miguelinux,项目名称:vbox,代码行数:93,代码来源:DisplayImplLegacy.cpp
注:本文中的VMMDev类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论