VirtualBox

忽略:
時間撮記:
2015-2-2 下午09:17:31 (10 年 以前)
作者:
vboxsync
訊息:

Main: Fix i_configMediumAttachment inconsistency for USB storage devices

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Main/src-client/ConsoleImpl.cpp

    r53767 r54060  
    36753675    AssertReturn(enmVMState == VMSTATE_SUSPENDED, VERR_INVALID_STATE);
    36763676
    3677     /* Determine the base path for the device instance. */
    3678     PCFGMNODE pCtlInst;
    3679     if (strcmp(pcszDevice, "Msd"))
    3680         pCtlInst = CFGMR3GetChildF(CFGMR3GetRootU(pUVM), "Devices/%s/%u/", pcszDevice, uInstance);
    3681     else
    3682         pCtlInst = CFGMR3GetChildF(CFGMR3GetRootU(pUVM), "USB/%s/", pcszDevice, uInstance);
    3683     AssertReturn(pCtlInst, VERR_INTERNAL_ERROR);
    3684 
    3685     PCFGMNODE pLunL0 = NULL;
    3686     int rc = pThis->i_configMediumAttachment(pCtlInst,
    3687                                              pcszDevice,
     3677    int rc = pThis->i_configMediumAttachment(pcszDevice,
    36883678                                             uInstance,
    36893679                                             enmBus,
     
    37013691                                             pUVM,
    37023692                                             NULL /* paLedDevType */,
    3703                                              &pLunL0);
    3704     /* Dump the changed LUN if possible, dump the complete device otherwise */
    3705     CFGMR3Dump(pLunL0 ? pLunL0 : pCtlInst);
    3706 
     3693                                             NULL /* ppLunL0 */);
    37073694    LogFlowFunc(("Returning %Rrc\n", rc));
    37083695    return rc;
     
    38633850    AssertReturn(enmVMState == VMSTATE_SUSPENDED, VERR_INVALID_STATE);
    38643851
    3865     /*
    3866      * Determine the base path for the device instance. USB Msd devices are handled different
    3867      * because the PDM USB API requires a differnet CFGM tree when attaching a new USB device.
    3868      */
    3869     PCFGMNODE pCtlInst;
    3870 
    3871     if (enmBus == StorageBus_USB)
    3872         pCtlInst = CFGMR3CreateTree(pUVM);
    3873     else
    3874         pCtlInst = CFGMR3GetChildF(CFGMR3GetRootU(pUVM), "Devices/%s/%u/", pcszDevice, uInstance);
    3875 
    3876     AssertReturn(pCtlInst, VERR_INTERNAL_ERROR);
    3877 
    3878     PCFGMNODE pLunL0 = NULL;
    3879     int rc = pThis->i_configMediumAttachment(pCtlInst,
    3880                                              pcszDevice,
     3852    int rc = pThis->i_configMediumAttachment(pcszDevice,
    38813853                                             uInstance,
    38823854                                             enmBus,
     
    38943866                                             pUVM,
    38953867                                             NULL /* paLedDevType */,
    3896                                              &pLunL0);
    3897     /* Dump the changed LUN if possible, dump the complete device otherwise */
    3898     if (enmBus != StorageBus_USB)
    3899         CFGMR3Dump(pLunL0 ? pLunL0 : pCtlInst);
    3900 
     3868                                             NULL);
    39013869    LogFlowFunc(("Returning %Rrc\n", rc));
    39023870    return rc;
     
    97029670        return VINF_SUCCESS;
    97039671
    9704     /* Determine the base path for the device instance. */
    9705     PCFGMNODE pCtlInst;
    9706 
    9707     if (enmBus == StorageBus_USB)
    9708         pCtlInst = CFGMR3GetChildF(CFGMR3GetRootU(pUVM), "USB/%s/", pcszDevice);
    9709     else
    9710         pCtlInst = CFGMR3GetChildF(CFGMR3GetRootU(pUVM), "Devices/%s/%u/", pcszDevice, uInstance);
    9711 
    9712     AssertReturn(pCtlInst, VERR_INTERNAL_ERROR);
    9713 
    97149672    /* Update the device instance configuration. */
    9715     PCFGMNODE pLunL0 = NULL;
    9716     int rc = pThis->i_configMediumAttachment(pCtlInst,
    9717                                              pcszDevice,
     9673    int rc = pThis->i_configMediumAttachment(pcszDevice,
    97189674                                             uInstance,
    97199675                                             enmBus,
     
    97319687                                             pUVM,
    97329688                                             NULL /* paLedDevType */,
    9733                                              &pLunL0);
    9734     /* Dump the changed LUN if possible, dump the complete device otherwise */
    9735     CFGMR3Dump(pLunL0 ? pLunL0 : pCtlInst);
     9689                                             NULL /* ppLunL0)*/);
    97369690    if (RT_FAILURE(rc))
    97379691    {
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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