Changeset 101459 in vbox for trunk/src/VBox/Main/src-client/ConsoleImplConfigX86.cpp
- Timestamp:
- Oct 17, 2023 8:26:12 AM (20 months ago)
- svn:sync-xref-src-repo-rev:
- 159528
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-client/ConsoleImplConfigX86.cpp
r101458 r101459 47 47 #include "DisplayImpl.h" 48 48 #include "NvramStoreImpl.h" 49 #ifdef VBOX_WITH_SHARED_CLIPBOARD50 # include "GuestShClPrivate.h"51 #endif52 #ifdef VBOX_WITH_DRAG_AND_DROP53 # include "GuestImpl.h"54 # include "GuestDnDPrivate.h"55 #endif56 49 #include "PlatformImpl.h" 57 50 #include "VMMDev.h" … … 95 88 #include <VBox/vmm/gcm.h> 96 89 #include <VBox/version.h> 97 #ifdef VBOX_WITH_SHARED_CLIPBOARD98 # include <VBox/HostServices/VBoxClipboardSvc.h>99 #endif100 90 #ifdef VBOX_WITH_GUEST_PROPS 101 91 # include <VBox/HostServices/GuestPropertySvc.h> … … 472 462 { 473 463 RT_NOREF(pVM /* when everything is disabled */); 474 VMMDev *pVMMDev = m_pVMMDev; Assert(pVMMDev);475 464 ComPtr<IMachine> pMachine = i_machine(); 476 465 … … 2679 2668 } 2680 2669 2681 /* 2682 * VMM Device 2683 */ 2684 InsertConfigNode(pDevices, "VMMDev", &pDev); 2685 InsertConfigNode(pDev, "0", &pInst); 2686 InsertConfigNode(pInst, "Config", &pCfg); 2687 InsertConfigInteger(pInst, "Trusted", 1); /* boolean */ 2688 hrc = pBusMgr->assignPCIDevice("VMMDev", pInst); H(); 2689 2690 Bstr hwVersion; 2691 hrc = pMachine->COMGETTER(HardwareVersion)(hwVersion.asOutParam()); H(); 2692 if (hwVersion.compare(Bstr("1").raw()) == 0) /* <= 2.0.x */ 2693 InsertConfigInteger(pCfg, "HeapEnabled", 0); 2694 Bstr snapshotFolder; 2695 hrc = pMachine->COMGETTER(SnapshotFolder)(snapshotFolder.asOutParam()); H(); 2696 InsertConfigString(pCfg, "GuestCoreDumpDir", snapshotFolder); 2697 2698 /* the VMM device's Main driver */ 2699 InsertConfigNode(pInst, "LUN#0", &pLunL0); 2700 InsertConfigString(pLunL0, "Driver", "HGCM"); 2701 InsertConfigNode(pLunL0, "Config", &pCfg); 2702 2703 /* 2704 * Attach the status driver. 2705 */ 2706 i_attachStatusDriver(pInst, DeviceType_SharedFolder); 2670 vrc = i_configVmmDev(pMachine, pBusMgr, pDevices); VRC(); 2707 2671 2708 2672 /* … … 2712 2676 vrc = i_configAudioCtrl(virtualBox, pMachine, pBusMgr, pDevices, 2713 2677 fOsXGuest, &fAudioEnabled); VRC(); 2714 2715 #ifdef VBOX_WITH_SHARED_CLIPBOARD2716 /*2717 * Shared Clipboard.2718 */2719 {2720 ClipboardMode_T enmClipboardMode = ClipboardMode_Disabled;2721 hrc = pMachine->COMGETTER(ClipboardMode)(&enmClipboardMode); H();2722 # ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS2723 BOOL fFileTransfersEnabled;2724 hrc = pMachine->COMGETTER(ClipboardFileTransfersEnabled)(&fFileTransfersEnabled); H();2725 #endif2726 2727 /* Load the service */2728 vrc = pVMMDev->hgcmLoadService("VBoxSharedClipboard", "VBoxSharedClipboard");2729 if (RT_SUCCESS(vrc))2730 {2731 LogRel(("Shared Clipboard: Service loaded\n"));2732 2733 /* Set initial clipboard mode. */2734 vrc = i_changeClipboardMode(enmClipboardMode);2735 AssertLogRelMsg(RT_SUCCESS(vrc), ("Shared Clipboard: Failed to set initial clipboard mode (%d): vrc=%Rrc\n",2736 enmClipboardMode, vrc));2737 2738 /* Setup the service. */2739 VBOXHGCMSVCPARM parm;2740 HGCMSvcSetU32(&parm, !i_useHostClipboard());2741 vrc = pVMMDev->hgcmHostCall("VBoxSharedClipboard", VBOX_SHCL_HOST_FN_SET_HEADLESS, 1, &parm);2742 AssertLogRelMsg(RT_SUCCESS(vrc), ("Shared Clipboard: Failed to set initial headless mode (%RTbool): vrc=%Rrc\n",2743 !i_useHostClipboard(), vrc));2744 2745 # ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS2746 vrc = i_changeClipboardFileTransferMode(RT_BOOL(fFileTransfersEnabled));2747 AssertLogRelMsg(RT_SUCCESS(vrc), ("Shared Clipboard: Failed to set initial file transfer mode (%u): vrc=%Rrc\n",2748 fFileTransfersEnabled, vrc));2749 # endif2750 GuestShCl::createInstance(this /* pConsole */);2751 vrc = HGCMHostRegisterServiceExtension(&m_hHgcmSvcExtShCl, "VBoxSharedClipboard",2752 &GuestShCl::hgcmDispatcher,2753 GuestShClInst());2754 if (RT_FAILURE(vrc))2755 Log(("Cannot register VBoxSharedClipboard extension, vrc=%Rrc\n", vrc));2756 }2757 else2758 LogRel(("Shared Clipboard: Not available, vrc=%Rrc\n", vrc));2759 vrc = VINF_SUCCESS; /* None of the potential failures above are fatal. */2760 }2761 #endif /* VBOX_WITH_SHARED_CLIPBOARD */2762 2763 /*2764 * HGCM HostChannel.2765 */2766 {2767 Bstr value;2768 hrc = pMachine->GetExtraData(Bstr("HGCM/HostChannel").raw(),2769 value.asOutParam());2770 2771 if ( hrc == S_OK2772 && value == "1")2773 {2774 vrc = pVMMDev->hgcmLoadService("VBoxHostChannel", "VBoxHostChannel");2775 if (RT_FAILURE(vrc))2776 {2777 LogRel(("VBoxHostChannel is not available, vrc=%Rrc\n", vrc));2778 /* That is not a fatal failure. */2779 vrc = VINF_SUCCESS;2780 }2781 }2782 }2783 2784 #ifdef VBOX_WITH_DRAG_AND_DROP2785 /*2786 * Drag and Drop.2787 */2788 {2789 DnDMode_T enmMode = DnDMode_Disabled;2790 hrc = pMachine->COMGETTER(DnDMode)(&enmMode); H();2791 2792 /* Load the service */2793 vrc = pVMMDev->hgcmLoadService("VBoxDragAndDropSvc", "VBoxDragAndDropSvc");2794 if (RT_FAILURE(vrc))2795 {2796 LogRel(("Drag and drop service is not available, vrc=%Rrc\n", vrc));2797 /* That is not a fatal failure. */2798 vrc = VINF_SUCCESS;2799 }2800 else2801 {2802 vrc = HGCMHostRegisterServiceExtension(&m_hHgcmSvcExtDragAndDrop, "VBoxDragAndDropSvc",2803 &GuestDnD::notifyDnDDispatcher,2804 GuestDnDInst());2805 if (RT_FAILURE(vrc))2806 Log(("Cannot register VBoxDragAndDropSvc extension, vrc=%Rrc\n", vrc));2807 else2808 {2809 LogRel(("Drag and drop service loaded\n"));2810 vrc = i_changeDnDMode(enmMode);2811 }2812 }2813 }2814 #endif /* VBOX_WITH_DRAG_AND_DROP */2815 2678 2816 2679 #if defined(VBOX_WITH_TPM)
Note:
See TracChangeset
for help on using the changeset viewer.