VirtualBox

Changeset 44948 in vbox


Ignore:
Timestamp:
Mar 7, 2013 10:36:42 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
84157
Message:

Main/SystemProperties+Machine: new config setting for default VM frontend.
Frontend/VirtualBox+VBoxManage: changes to use the default VM frontend when starting a VM, other minor cleanups
Main/xml/*.xsd: attempt to bring the XML schema close to reality
doc/manual: document the new possibilities, and fix a few long standing inaccuracies

Location:
trunk
Files:
7 deleted
16 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/doc/manual/en_US/SDKRef.xml

    r44649 r44948  
    15431543        </screen>
    15441544
    1545         <para>Code above demonstartes cross-platform access to array properties
     1545        <para>Code above demonstrates cross-platform access to array properties
    15461546        (certain limitations prevent one from using
    15471547        <computeroutput>vbox.machines</computeroutput> to access a list of
     
    35303530      <itemizedlist>
    35313531        <listitem>
     3532          <para>For <xref linkend="IMachine__launchVMProcess"
     3533          xreflabel="IMachine::launchVMProcess()"/> the meaning of the
     3534          <computeroutput>type</computeroutput> parameter has changed slightly.
     3535          Empty string now means that the per-VM or global default frontend
     3536          is launched. Most callers of this method should use the empty string
     3537          now, unless they really want to override the default and launch a
     3538          particular frontend.</para>
     3539        </listitem>
     3540
     3541        <listitem>
    35323542          <para>Medium management APIs were changed as follows:<itemizedlist>
    35333543
    35343544            <listitem>
    35353545              <para>The type of attribute
    3536               <computeroutput>IMedium::variant</computeroutput>
     3546              <xref linkend="IMedium__variant" xreflabel="IMedium::variant()"/>
    35373547              changed from <computeroutput>unsigned long</computeroutput>
    35383548              to <computeroutput>safe-array MediumVariant</computeroutput>.
     
    35733583        <listitem>
    35743584          <para>The type of attribute
    3575           <computeroutput>IMediumFormat::capabilities</computeroutput>
     3585          <xref linkend="IMediumFormat__capabilities"
     3586          xreflabel="IMediumFormat::capabilities()"/>
    35763587          changed from <computeroutput>unsigned long</computeroutput>
    35773588          to <computeroutput>safe-array MediumFormatCapabilities</computeroutput>.
  • trunk/doc/manual/en_US/user_VBoxManage.xml

    r44844 r44948  
    713713                        the values that guest sees i.e. the values avalable under guest Device Manager.</para>
    714714          </listitem>
     715
     716          <listitem>
     717            <para><computeroutput>--defaultfrontend
     718            default|&lt;name&gt;</computeroutput>: This allows you to specify
     719            the default frontend which will be used when starting this VM; see
     720            <xref linkend="vboxmanage-startvm" /> for details.</para>
     721          </listitem>
    715722        </itemizedlist></para>
    716723    </sect2>
     
    923930
    924931    <sect2 id="vboxmanage-modifyvm-other">
    925       <title>Serial port, audio, clipboard, remote desktop and USB
    926       settings</title>
     932      <title>Serial port, audio, clipboard and USB settings</title>
    927933
    928934      <para>The following other hardware settings are available through
     
    13451351    "Powered off" or "Saved" states.</para>
    13461352
    1347     <note>
    1348       <para>This is provided for backwards compatibility only. We recommend to
    1349       start virtual machines directly by running the respective front-end, as
    1350       you might otherwise miss important error and state information that
    1351       VirtualBox may display on the console. This is especially important for
    1352       front-ends other than <computeroutput>VirtualBox</computeroutput>, our
    1353       graphical user interface, because those cannot display error messages in
    1354       a popup window. See <xref linkend="vboxheadless" /> for more
    1355       information.</para>
    1356     </note>
    1357 
    13581353    <para>The optional <computeroutput>--type</computeroutput> specifier
    1359     determines whether the machine will be started in a window (GUI mode,
    1360     which is the default) or whether the output should go through
    1361     <computeroutput>VBoxHeadless</computeroutput>, with VRDE enabled or not;
    1362     see <xref linkend="vboxheadless" /> for more information. The list of
    1363     types is subject to change, and it's not guaranteed that all types are
    1364     accepted by any product variant.</para>
     1354    determines whether the machine will be started in a window or whether the
     1355    output should go through <computeroutput>VBoxHeadless</computeroutput>,
     1356    with VRDE enabled or not; see <xref linkend="vboxheadless" /> for more
     1357    information. The list of types is subject to change, and it's not
     1358    guaranteed that all types are accepted by any product variant.</para>
     1359
     1360    <para>The global or per-VM default value for the VM frontend type will be
     1361    taken if the type is not explicitly specified. If none of these are set,
     1362    the GUI variant will be started.</para>
    13651363
    13661364    <para>The following values are allowed:</para>
     
    13821380        </glossdef>
    13831381      </glossentry>
     1382
     1383      <glossentry>
     1384        <glossterm>sdl</glossterm>
     1385
     1386        <glossdef>
     1387          <para>Starts a VM with a minimal GUI and limited features.</para>
     1388        </glossdef>
     1389      </glossentry>
    13841390    </glosslist>
     1391
     1392    <note>
     1393      <para>If you experience problems with starting virtual machines with
     1394      particular frontends and there is no conclusive error information,
     1395      consider starting virtual machines directly by running the respective
     1396      front-end, as this can give additional error information.</para>
     1397    </note>
    13851398  </sect1>
    13861399
     
    24682481
    24692482        <glossentry>
    2470           <glossterm>vrdelibrary</glossterm>
     2483          <glossterm>vrdeextpack</glossterm>
    24712484
    24722485          <glossdef>
     
    24772490
    24782491        <glossentry>
    2479           <glossterm>hwvirtexenabled</glossterm>
    2480 
    2481           <glossdef>
    2482             <para>This selects whether or not hardware virtualization support
    2483             is enabled by default.</para>
     2492          <glossterm>loghistorycount</glossterm>
     2493
     2494          <glossdef>
     2495            <para>This selects how many rotated (old) VM logs are kept.</para>
     2496          </glossdef>
     2497        </glossentry>
     2498
     2499        <glossentry>
     2500          <glossterm>autostartdbpath</glossterm>
     2501
     2502          <glossdef>
     2503            <para>This selects the path to the autostart database. See
     2504            <xref linkend="autostart" />.</para>
     2505          </glossdef>
     2506        </glossentry>
     2507
     2508        <glossentry>
     2509          <glossterm>defaultfrontend</glossterm>
     2510
     2511          <glossdef>
     2512            <para>This selects the global default VM frontend setting. See
     2513            <xref linkend="vboxmanage-startvm" />.</para>
    24842514          </glossdef>
    24852515        </glossentry>
  • trunk/include/VBox/settings.h

    r44191 r44948  
    1818
    1919/*
    20  * Copyright (C) 2007-2012 Oracle Corporation
     20 * Copyright (C) 2007-2013 Oracle Corporation
    2121 *
    2222 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    234234    com::Utf8Str            strAutostartDatabasePath;
    235235    com::Utf8Str            strDefaultAdditionsISO;
     236    com::Utf8Str            strDefaultFrontend;
    236237    uint32_t                ulLogHistoryCount;
    237238};
     
    815816    IOSettings          ioSettings;             // requires settings version 1.10 (VirtualBox 3.2)
    816817    HostPCIDeviceAttachmentList pciAttachments; // requires settings version 1.12 (VirtualBox 4.1)
     818
     819    com::Utf8Str        strDefaultFrontend;     // requires settings version 1.14 (VirtualBox 4.3)
    817820};
    818821
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp

    r44191 r44948  
    55
    66/*
    7  * Copyright (C) 2006-2012 Oracle Corporation
     7 * Copyright (C) 2006-2013 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    368368                     "                                             acpishutdown]\n"
    369369#endif
     370                     "                            [--defaultfrontend default|<name]\n"
    370371                     "\n");
    371372    }
     
    624625                     "                            autostartdbpath null|<folder> |\n"
    625626                     "                            loghistorycount <value>\n"
     627                     "                            defaultfrontend default|<name>\n"
    626628                     "\n", SEP);
    627629
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp

    r44028 r44948  
    55
    66/*
    7  * Copyright (C) 2006-2012 Oracle Corporation
     7 * Copyright (C) 2006-2013 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    713713    SHOW_BOOLEAN_PROP(    machine,  AutostartEnabled,           "autostart-enabled",        "Autostart Enabled");
    714714    SHOW_ULONG_PROP(      machine,  AutostartDelay,             "autostart-delay",          "Autostart Delay", "");
     715    SHOW_STRING_PROP(     machine,  DefaultFrontend,            "defaultfrontend",          "Default Frontend");
    715716
    716717/** @todo Convert the remainder of the function to SHOW_XXX macros and add error
     
    15661567            RTPrintf("draganddrop=\"%s\"\n", psz);
    15671568        else
    1568             RTPrintf("Drag'n'drop Mode:  %s\n", psz);
     1569            RTPrintf("Drag'n'drop Mode: %s\n", psz);
     1570    }
     1571
     1572    {
     1573        SessionState_T sessState;
     1574        rc = machine->COMGETTER(SessionState)(&sessState);
     1575        if (SUCCEEDED(rc) && sessState != SessionState_Unlocked)
     1576        {
     1577            Bstr sessType;
     1578            rc = machine->COMGETTER(SessionType)(sessType.asOutParam());
     1579            if (SUCCEEDED(rc) && !sessType.isEmpty())
     1580            {
     1581                if (details == VMINFO_MACHINEREADABLE)
     1582                    RTPrintf("SessionType=\"%ls\"\n", sessType.raw());
     1583                else
     1584                    RTPrintf("Session type:    %ls\n", sessType.raw());
     1585            }
     1586        }
    15691587    }
    15701588
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageMisc.cpp

    r43041 r44948  
    55
    66/*
    7  * Copyright (C) 2006-2012 Oracle Corporation
     7 * Copyright (C) 2006-2013 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    486486    HRESULT rc = S_OK;
    487487    std::list<const char *> VMs;
    488     Bstr sessionType = "gui";
     488    Bstr sessionType;
    489489
    490490    static const RTGETOPTDEF s_aStartVMOptions[] =
     
    871871            CHECK_ERROR(systemProperties, COMSETTER(AutostartDatabasePath)(Bstr(a->argv[1]).raw()));
    872872    }
     873    else if (!strcmp(a->argv[0], "defaultfrontend"))
     874    {
     875        Bstr bstrDefaultFrontend(a->argv[1]);
     876        if (!strcmp(a->argv[1], "default"))
     877            bstrDefaultFrontend.setNull();
     878        CHECK_ERROR(systemProperties, COMSETTER(DefaultFrontend)(bstrDefaultFrontend.raw()));
     879    }
    873880    else
    874881        return errorSyntax(USAGE_SETPROPERTY, "Invalid parameter '%s'", a->argv[0]);
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp

    r44528 r44948  
    197197    MODIFYVM_VCP_HEIGHT,
    198198#endif
    199     MODIFYVM_CHIPSET
     199    MODIFYVM_CHIPSET,
     200    MODIFYVM_DEFAULTFRONTEND
    200201};
    201202
     
    352353    { "--usbcardreader",            MODIFYVM_USBCARDREADER,             RTGETOPT_REQ_BOOL_ONOFF },
    353354#endif
     355    { "--defaultfrontend",          MODIFYVM_DEFAULTFRONTEND,           RTGETOPT_REQ_STRING },
    354356};
    355357
     
    15461548
    15471549                CHECK_ERROR(nic, COMGETTER(NATEngine)(engine.asOutParam()));
    1548                 if (RTStrCmp(ValueUnion.psz,"default") == 0)
     1550                if (RTStrCmp(ValueUnion.psz, "default") == 0)
    15491551                {
    15501552                    aliasMode = 0;
     
    25142516#endif /* VBOX_WITH_USB_CARDREADER */
    25152517
     2518            case MODIFYVM_DEFAULTFRONTEND:
     2519            {
     2520                Bstr bstr(ValueUnion.psz);
     2521                if (bstr == "default")
     2522                    bstr = Bstr::Empty;
     2523                CHECK_ERROR(machine, COMSETTER(DefaultFrontend)(bstr.raw()));
     2524                break;
     2525            }
     2526
    25162527            default:
    25172528            {
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp

    r44710 r44948  
    49634963        env.append(QString("XAUTHORITY=%1\n").arg(xauth));
    49644964#endif
    4965     const QString strType = fHeadless ? "headless" : "GUI/Qt";
     4965    const QString strType = fHeadless ? "headless" : "";
    49664966
    49674967    CProgress progress = machine.LaunchVMProcess(session, strType, env);
  • trunk/src/VBox/Main/Makefile.kmk

    r44824 r44948  
    433433
    434434#
    435 # Embed XML Schema files to VBoxSVC
    436 #
    437 VBOX_XML_SCHEMA_COMMON        = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-common.xsd
    438 VBOX_XML_SCHEMA.darwin        = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-macosx.xsd
    439 VBOX_XML_SCHEMA.linux         = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-linux.xsd
    440 VBOX_XML_SCHEMA.freebsd       = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-freebsd.xsd
    441 VBOX_XML_SCHEMA.win           = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-windows.xsd
    442 VBOX_XML_SCHEMA.os2           = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-os2.xsd
    443 VBOX_XML_SCHEMA.solaris       = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-solaris.xsd
    444 
    445 VBOX_XML_CONVERTER_TEMPLATE   = $(VBOX_PATH_MAIN_SRC)/xml/SettingsConverter.xsl
    446 
    447 $$(VBoxSVC_0_OUTDIR)/xml_VirtualBox_settings_xsd.h: $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_BIN2C)
    448         $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
    449         $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_xsd $< $@
    450 
    451 $$(VBoxSVC_0_OUTDIR)/xml_VirtualBox_settings_common_xsd.h: $(VBOX_XML_SCHEMA_COMMON) $(VBOX_BIN2C)
    452         $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
    453         $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_common_xsd $< $@
    454 
    455 $$(VBoxSVC_0_OUTDIR)/xml_SettingsConverter_xsl.h: $(VBOX_XML_CONVERTER_TEMPLATE) $(VBOX_BIN2C)
    456         $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
    457         $(QUIET)$(VBOX_BIN2C) _xml_SettingsConverter_xsl $< $@
    458 
    459 $(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
     435# Embed some constraints from XML Schema file into VBoxSVC
     436#
     437VBOX_XML_SCHEMA = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings.xsd
     438
     439$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA) | $$(dir $$@)
    460440        $(call MSG_GENERATE,SchemaDefs,$@,$<)
    461         $(QUIET)$(VBOX_XSLTPROC)  --stringparam mode declare -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
    462 
    463 $(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
     441        $(QUIET)$(VBOX_XSLTPROC)  --stringparam mode declare -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA)
     442
     443$(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA) | $$(dir $$@)
    464444        $(call MSG_GENERATE,SchemaDefs,$@,$<)
    465         $(QUIET)$(VBOX_XSLTPROC)  --stringparam mode define  -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
     445        $(QUIET)$(VBOX_XSLTPROC)  --stringparam mode define  -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA)
     446
     447testvalidsettings: $(VBOX_XML_SCHEMA)
     448        xmllint --schema $< --noout $(HOME)/.VirtualBox/VirtualBox.xml
     449        xmllint --schema $< --noout $(HOME)/.VirtualBox/Machines/*/*.xml
     450        xmllint --schema $< --noout $(HOME)/.VirtualBox/Machines/*/*.vbox
     451        xmllint --schema $< --noout $(HOME)/VirtualBox\ VMs/*/*.vbox
    466452
    467453OTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r44935 r44948  
    394394  <enum
    395395    name="SettingsVersion"
    396     uuid="52bd6f5f-1adb-4493-975d-581a9c4b803f"
     396    uuid="d5b15ca7-3de7-46b2-a63a-ddcce42bfa3f"
    397397    >
    398398    <desc>
     
    500500          Machine changes: tracing config, groups, autostart;
    501501          NetworkAdapter changes: unit for bandwidth group limits.
     502      -->
     503    </const>
     504    <const name="v1_14"     value="16">
     505      <desc>Settings version "1.14", written by VirtualBox 4.3.x.</desc>
     506      <!--
     507          Machine changes: default frontend.
    502508      -->
    503509    </const>
     
    37933799  <interface
    37943800    name="IMachine" extends="$unknown"
    3795     uuid="22781af3-1c96-4126-9edf-67a020e0e858"
     3801    uuid="381e3f31-2b27-45b7-818a-30609ade86b3"
    37963802    wsmap="managed"
    37973803    >
     
    45044510    </attribute>
    45054511
     4512    <attribute name="defaultFrontend" type="wstring">
     4513      <desc>
     4514        Selects which VM frontend should be used by default when launching
     4515        this VM through the <link to="IMachine::launchVMProcess" /> method.
     4516        Empty or @c null strings do not define a particular default, it is up
     4517        to <link to="IMachine::launchVMProcess" /> to select one. See the
     4518        description of <link to="IMachine::launchVMProcess" />  for the valid
     4519        frontend types.
     4520
     4521        This per-VM setting overrides the default defined by
     4522        <link to="ISystemProperties::defaultFrontend" /> attribute, and is
     4523        overridden by a frontend type passed to
     4524        <link to="IMachine::launchVMProcess" />.
     4525      </desc>
     4526    </attribute>
     4527
    45064528    <method name="lockMachine">
    45074529      <desc>
     
    47004722              used in any way), and the @a progress return value will be always
    47014723              @c null. The operation completes immediately.</li>
     4724            <li><tt>""</tt>: use the per-VM default frontend if set, otherwise
     4725              the global default defined in the system properties. If neither
     4726              are set, the API will launch a <tt>"gui"</tt> session, which may
     4727              fail if there is no windowing environment available. See
     4728              <link to="IMachine::defaultFrontend"/> and
     4729              <link to="ISystemProperties::defaultFrontend"/>.</li>
    47024730          </ul>
    47034731        </desc>
     
    82318259    name="ISystemProperties"
    82328260    extends="$unknown"
    8233     uuid="1d7aca29-97f0-4287-9874-a60ec4f80ea6"
     8261    uuid="413ea94c-efd9-491e-81fc-5df0c4d864bb"
    82348262    wsmap="managed"
    82358263    >
     
    84928520        The path to the default Guest Additions ISO image. Can be empty if
    84938521        the location is not known in this installation.
     8522      </desc>
     8523    </attribute>
     8524
     8525    <attribute name="defaultFrontend" type="wstring">
     8526      <desc>
     8527        Selects which VM frontend should be used by default when launching
     8528        a VM through the <link to="IMachine::launchVMProcess" /> method.
     8529        Empty or @c null strings do not define a particular default, it is up
     8530        to <link to="IMachine::launchVMProcess" /> to select one. See the
     8531        description of <link to="IMachine::launchVMProcess" /> for the valid
     8532        frontend types.
     8533
     8534        This global setting is overridden by the per-VM attribute
     8535        <link to="IMachine::defaultFrontend" /> or a frontend type
     8536        passed to <link to="IMachine::launchVMProcess" />.
    84948537      </desc>
    84958538    </attribute>
  • trunk/src/VBox/Main/include/MachineImpl.h

    r44191 r44948  
    55
    66/*
    7  * Copyright (C) 2006-2012 Oracle Corporation
     7 * Copyright (C) 2006-2013 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    250250        ~HWData();
    251251
    252         Bstr                 mHWVersion;
    253         Guid                 mHardwareUUID;   /**< If Null, use mData.mUuid. */
    254         ULONG                mMemorySize;
    255         ULONG                mMemoryBalloonSize;
    256         BOOL                 mPageFusionEnabled;
    257         ULONG                mVRAMSize;
    258         ULONG                mVideoCaptureWidth;
    259         ULONG                mVideoCaptureHeight;
    260         Bstr                 mVideoCaptureFile;
    261         BOOL                 mVideoCaptureEnabled;
    262         ULONG                mMonitorCount;
    263         BOOL                 mHWVirtExEnabled;
    264         BOOL                 mHWVirtExExclusive;
    265         BOOL                 mHWVirtExNestedPagingEnabled;
    266         BOOL                 mHWVirtExLargePagesEnabled;
    267         BOOL                 mHWVirtExVPIDEnabled;
    268         BOOL                 mHWVirtExForceEnabled;
    269         BOOL                 mAccelerate2DVideoEnabled;
    270         BOOL                 mPAEEnabled;
    271         BOOL                 mSyntheticCpu;
    272         ULONG                mCPUCount;
    273         BOOL                 mCPUHotPlugEnabled;
    274         ULONG                mCpuExecutionCap;
    275         BOOL                 mAccelerate3DEnabled;
    276         BOOL                 mHPETEnabled;
    277 
    278         BOOL                 mCPUAttached[SchemaDefs::MaxCPUCount];
    279 
    280         settings::CpuIdLeaf  mCpuIdStdLeafs[11];
    281         settings::CpuIdLeaf  mCpuIdExtLeafs[11];
    282 
    283         DeviceType_T         mBootOrder[SchemaDefs::MaxBootPosition];
     252        Bstr                mHWVersion;
     253        Guid                mHardwareUUID;  /**< If Null, use mData.mUuid. */
     254        ULONG               mMemorySize;
     255        ULONG               mMemoryBalloonSize;
     256        BOOL                mPageFusionEnabled;
     257        ULONG               mVRAMSize;
     258        ULONG               mVideoCaptureWidth;
     259        ULONG               mVideoCaptureHeight;
     260        Bstr                mVideoCaptureFile;
     261        BOOL                mVideoCaptureEnabled;
     262        ULONG               mMonitorCount;
     263        BOOL                mHWVirtExEnabled;
     264        BOOL                mHWVirtExExclusive;
     265        BOOL                mHWVirtExNestedPagingEnabled;
     266        BOOL                mHWVirtExLargePagesEnabled;
     267        BOOL                mHWVirtExVPIDEnabled;
     268        BOOL                mHWVirtExForceEnabled;
     269        BOOL                mAccelerate2DVideoEnabled;
     270        BOOL                mPAEEnabled;
     271        BOOL                mSyntheticCpu;
     272        ULONG               mCPUCount;
     273        BOOL                mCPUHotPlugEnabled;
     274        ULONG               mCpuExecutionCap;
     275        BOOL                mAccelerate3DEnabled;
     276        BOOL                mHPETEnabled;
     277
     278        BOOL                mCPUAttached[SchemaDefs::MaxCPUCount];
     279
     280        settings::CpuIdLeaf mCpuIdStdLeafs[11];
     281        settings::CpuIdLeaf mCpuIdExtLeafs[11];
     282
     283        DeviceType_T        mBootOrder[SchemaDefs::MaxBootPosition];
    284284
    285285        typedef std::list<ComObjPtr<SharedFolder> > SharedFolderList;
    286         SharedFolderList     mSharedFolders;
    287 
    288         ClipboardMode_T      mClipboardMode;
    289         DragAndDropMode_T    mDragAndDropMode;
     286        SharedFolderList    mSharedFolders;
     287
     288        ClipboardMode_T     mClipboardMode;
     289        DragAndDropMode_T   mDragAndDropMode;
    290290
    291291        typedef std::map<Utf8Str, GuestProperty> GuestPropertyMap;
    292         GuestPropertyMap     mGuestProperties;
    293         Utf8Str              mGuestPropertyNotificationPatterns;
    294 
    295         FirmwareType_T       mFirmwareType;
    296         KeyboardHIDType_T    mKeyboardHIDType;
    297         PointingHIDType_T    mPointingHIDType;
    298         ChipsetType_T        mChipsetType;
    299         BOOL                 mEmulatedUSBWebcamEnabled;
    300         BOOL                 mEmulatedUSBCardReaderEnabled;
    301 
    302         BOOL                 mIOCacheEnabled;
    303         ULONG                mIOCacheSize;
     292        GuestPropertyMap    mGuestProperties;
     293        Utf8Str             mGuestPropertyNotificationPatterns;
     294
     295        FirmwareType_T      mFirmwareType;
     296        KeyboardHIDType_T   mKeyboardHIDType;
     297        PointingHIDType_T   mPointingHIDType;
     298        ChipsetType_T       mChipsetType;
     299        BOOL                mEmulatedUSBWebcamEnabled;
     300        BOOL                mEmulatedUSBCardReaderEnabled;
     301
     302        BOOL                mIOCacheEnabled;
     303        ULONG               mIOCacheSize;
    304304
    305305        typedef std::list<ComObjPtr<PCIDeviceAttachment> > PCIDeviceAssignmentList;
    306306        PCIDeviceAssignmentList mPCIDeviceAssignments;
    307307
    308         settings::Debugging  mDebugging;
    309         settings::Autostart  mAutostart;
     308        settings::Debugging mDebugging;
     309        settings::Autostart mAutostart;
     310
     311        Utf8Str             mDefaultFrontend;
    310312    };
    311313
    312314    /**
    313    *  Hard disk and other media data.
     315     *  Hard disk and other media data.
    314316     *
    315317     *  The usage policy is the same as for HWData, but a separate structure
     
    505507    STDMETHOD(COMGETTER(AutostopType))(AutostopType_T *penmAutostopType);
    506508    STDMETHOD(COMSETTER(AutostopType))(AutostopType_T enmAutostopType);
     509    STDMETHOD(COMGETTER(DefaultFrontend))(BSTR *aDefaultFrontend);
     510    STDMETHOD(COMSETTER(DefaultFrontend))(IN_BSTR aDefaultFrontend);
    507511
    508512    // IMachine methods
  • trunk/src/VBox/Main/include/SystemPropertiesImpl.h

    r42748 r44948  
    77
    88/*
    9  * Copyright (C) 2006-2012 Oracle Corporation
     9 * Copyright (C) 2006-2013 Oracle Corporation
    1010 *
    1111 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    9696    STDMETHOD(COMGETTER(DefaultAdditionsISO))(BSTR *aDefaultAdditionsISO);
    9797    STDMETHOD(COMSETTER(DefaultAdditionsISO))(IN_BSTR aDefaultAdditionsISO);
     98    STDMETHOD(COMGETTER(DefaultFrontend))(BSTR *aDefaultFrontend);
     99    STDMETHOD(COMSETTER(DefaultFrontend))(IN_BSTR aDefaultFrontend);
    98100
    99101    STDMETHOD(GetMaxNetworkAdapters)(ChipsetType_T aChipset, ULONG *aMaxInstances);
     
    130132    HRESULT setAutostartDatabasePath(const Utf8Str &aPath);
    131133    HRESULT setDefaultAdditionsISO(const Utf8Str &aPath);
     134    HRESULT setDefaultFrontend(const Utf8Str &aPath);
    132135
    133136    VirtualBox * const  mParent;
  • trunk/src/VBox/Main/src-server/MachineImpl.cpp

    r44814 r44948  
    10041004
    10051005    if (test.isValid())
    1006         return setError(E_INVALIDARG,  tr("A machine cannot have a UUID as its name"));
     1006        return setError(E_INVALIDARG, tr("A machine cannot have a UUID as its name"));
    10071007
    10081008    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     
    35673567 */
    35683568STDMETHODIMP Machine::LaunchVMProcess(ISession *aSession,
    3569                                       IN_BSTR aType,
     3569                                      IN_BSTR aFrontend,
    35703570                                      IN_BSTR aEnvironment,
    35713571                                      IProgress **aProgress)
    35723572{
    3573     CheckComArgStrNotEmptyOrNull(aType);
    3574     Utf8Str strType(aType);
     3573    CheckComArgStr(aFrontend);
     3574    Utf8Str strFrontend(aFrontend);
    35753575    Utf8Str strEnvironment(aEnvironment);
    35763576    /* "emergencystop" doesn't need the session, so skip the checks/interface
     
    35783578     * special API method would be even more effort, and would require explicit
    35793579     * support by every API client. It's better to hide the feature a bit. */
    3580     if (strType != "emergencystop")
     3580    if (strFrontend != "emergencystop")
    35813581        CheckComArgNotNull(aSession);
    35823582    CheckComArgOutPointerValid(aProgress);
     
    35853585    if (FAILED(autoCaller.rc())) return autoCaller.rc();
    35863586
    3587     ComPtr<IInternalSessionControl> control;
    35883587    HRESULT rc = S_OK;
    3589 
    3590     if (strType != "emergencystop")
     3588    if (strFrontend.isEmpty())
     3589    {
     3590        Bstr bstrFrontend;
     3591        rc = COMGETTER(DefaultFrontend)(bstrFrontend.asOutParam());
     3592        if (FAILED(rc))
     3593            return rc;
     3594        strFrontend = bstrFrontend;
     3595        if (strFrontend.isEmpty())
     3596        {
     3597            ComPtr<ISystemProperties> systemProperties;
     3598            rc = mParent->COMGETTER(SystemProperties)(systemProperties.asOutParam());
     3599            if (FAILED(rc))
     3600                return rc;
     3601            rc = systemProperties->COMGETTER(DefaultFrontend)(bstrFrontend.asOutParam());
     3602            if (FAILED(rc))
     3603                return rc;
     3604            strFrontend = bstrFrontend;
     3605        }
     3606        /* paranoia - emergencystop is not a valid default */
     3607        if (strFrontend == "emergencystop")
     3608            strFrontend = Utf8Str::Empty;
     3609    }
     3610
     3611    if (strFrontend != "emergencystop")
    35913612    {
    35923613        /* check the session state */
     
    36013622
    36023623        /* get the IInternalSessionControl interface */
    3603         control = aSession;
     3624        ComPtr<IInternalSessionControl> control(aSession);
    36043625        ComAssertMsgRet(!control.isNull(),
    36053626                        ("No IInternalSessionControl interface"),
    36063627                        E_INVALIDARG);
    3607     }
    3608 
    3609     /* get the teleporter enable state for the progress object init. */
    3610     BOOL fTeleporterEnabled;
    3611     rc = COMGETTER(TeleporterEnabled)(&fTeleporterEnabled);
    3612     if (FAILED(rc))
    3613         return rc;
    3614 
    3615     /* create a progress object */
    3616     if (strType != "emergencystop")
    3617     {
     3628
     3629        /* get the teleporter enable state for the progress object init. */
     3630        BOOL fTeleporterEnabled;
     3631        rc = COMGETTER(TeleporterEnabled)(&fTeleporterEnabled);
     3632        if (FAILED(rc))
     3633            return rc;
     3634
     3635        /* create a progress object */
    36183636        ComObjPtr<ProgressProxy> progress;
    36193637        progress.createObject();
     
    36233641                            TRUE /* aCancelable */,
    36243642                            fTeleporterEnabled ? 20 : 10 /* uTotalOperationsWeight */,
    3625                             BstrFmt(tr("Creating process for virtual machine \"%s\" (%s)"), mUserData->s.strName.c_str(), strType.c_str()).raw(),
     3643                            BstrFmt(tr("Creating process for virtual machine \"%s\" (%s)"), mUserData->s.strName.c_str(), strFrontend.c_str()).raw(),
    36263644                            2 /* uFirstOperationWeight */,
    36273645                            fTeleporterEnabled ? 3 : 1 /* cOtherProgressObjectOperations */);
     
    36293647        if (SUCCEEDED(rc))
    36303648        {
    3631             rc = launchVMProcess(control, strType, strEnvironment, progress);
     3649            rc = launchVMProcess(control, strFrontend, strEnvironment, progress);
    36323650            if (SUCCEEDED(rc))
    36333651            {
     
    69686986}
    69696987
     6988STDMETHODIMP Machine::COMGETTER(DefaultFrontend)(BSTR *aDefaultFrontend)
     6989{
     6990    CheckComArgOutPointerValid(aDefaultFrontend);
     6991    AutoCaller autoCaller(this);
     6992    HRESULT hrc = autoCaller.rc();
     6993    if (SUCCEEDED(hrc))
     6994    {
     6995        AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
     6996        mHWData->mDefaultFrontend.cloneTo(aDefaultFrontend);
     6997    }
     6998    return hrc;
     6999}
     7000
     7001STDMETHODIMP Machine::COMSETTER(DefaultFrontend)(IN_BSTR aDefaultFrontend)
     7002{
     7003    CheckComArgStr(aDefaultFrontend);
     7004    AutoCaller autoCaller(this);
     7005    HRESULT hrc = autoCaller.rc();
     7006    if (SUCCEEDED(hrc))
     7007    {
     7008        AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     7009        hrc = checkStateDependency(MutableOrSavedStateDep);
     7010        if (SUCCEEDED(hrc))
     7011        {
     7012            hrc = mHWData.backupEx();
     7013            if (SUCCEEDED(hrc))
     7014            {
     7015                setModified(IsModified_MachineData);
     7016                mHWData->mDefaultFrontend = aDefaultFrontend;
     7017            }
     7018        }
     7019    }
     7020    return hrc;
     7021}
     7022
    69707023
    69717024STDMETHODIMP Machine::CloneTo(IMachine *pTarget, CloneMode_T mode, ComSafeArrayIn(CloneOptions_T, options), IProgress **pProgress)
     
    72187271 */
    72197272HRESULT Machine::launchVMProcess(IInternalSessionControl *aControl,
    7220                                  const Utf8Str &strType,
     7273                                 const Utf8Str &strFrontend,
    72217274                                 const Utf8Str &strEnvironment,
    72227275                                 ProgressProxy *aProgress)
     
    73147367    /* Qt is default */
    73157368#ifdef VBOX_WITH_QTGUI
    7316     if (strType == "gui" || strType == "GUI/Qt")
     7369    if (strFrontend == "gui" || strFrontend == "GUI/Qt" || strFrontend == "")
    73177370    {
    73187371# ifdef RT_OS_DARWIN /* Avoid Launch Services confusing this with the selector by using a helper app. */
     
    73367389
    73377390#ifdef VBOX_WITH_VBOXSDL
    7338     if (strType == "sdl" || strType == "GUI/SDL")
     7391    if (strFrontend == "sdl" || strFrontend == "GUI/SDL")
    73397392    {
    73407393        const char VBoxSDL_exe[] = "VBoxSDL" HOSTSUFF_EXE;
     
    73547407
    73557408#ifdef VBOX_WITH_HEADLESS
    7356     if (   strType == "headless"
    7357         || strType == "capture"
    7358         || strType == "vrdp" /* Deprecated. Same as headless. */
     7409    if (   strFrontend == "headless"
     7410        || strFrontend == "capture"
     7411        || strFrontend == "vrdp" /* Deprecated. Same as headless. */
    73597412       )
    73607413    {
     
    73777430                                       0, /* For "--capture". */
    73787431                                       0 };
    7379         if (strType == "capture")
     7432        if (strFrontend == "capture")
    73807433        {
    73817434            unsigned pos = RT_ELEMENTS(args) - 2;
     
    73987451        RTEnvDestroy(env);
    73997452        return setError(E_INVALIDARG,
    7400                         tr("Invalid session type: '%s'"),
    7401                         strType.c_str());
     7453                        tr("Invalid frontend name: '%s'"),
     7454                        strFrontend.c_str());
    74027455    }
    74037456
     
    74407493    mData->mSession.mPID = pid;
    74417494    mData->mSession.mState = SessionState_Spawning;
    7442     mData->mSession.mType = strType;
     7495    mData->mSession.mType = strFrontend;
    74437496
    74447497    LogFlowThisFuncLeave();
     
    87188771
    87198772        mHWData->mAutostart = *pAutostart;
     8773
     8774        /* default frontend */
     8775        mHWData->mDefaultFrontend = data.strDefaultFrontend;
    87208776    }
    87218777    catch(std::bad_alloc &)
     
    99229978        *pDbg = mHWData->mDebugging;
    99239979        *pAutostart = mHWData->mAutostart;
     9980
     9981        data.strDefaultFrontend = mHWData->mDefaultFrontend;
    99249982    }
    99259983    catch(std::bad_alloc &)
  • trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp

    r43518 r44948  
    55
    66/*
    7  * Copyright (C) 2006-2012 Oracle Corporation
     7 * Copyright (C) 2006-2013 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    992992}
    993993
     994STDMETHODIMP SystemProperties::COMGETTER(DefaultFrontend)(BSTR *aDefaultFrontend)
     995{
     996    CheckComArgOutPointerValid(aDefaultFrontend);
     997
     998    AutoCaller autoCaller(this);
     999    if (FAILED(autoCaller.rc())) return autoCaller.rc();
     1000
     1001    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
     1002    m->strDefaultFrontend.cloneTo(aDefaultFrontend);
     1003
     1004    return S_OK;
     1005}
     1006
     1007STDMETHODIMP SystemProperties::COMSETTER(DefaultFrontend)(IN_BSTR aDefaultFrontend)
     1008{
     1009    AutoCaller autoCaller(this);
     1010    if (FAILED(autoCaller.rc())) return autoCaller.rc();
     1011
     1012    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     1013    if (m->strDefaultFrontend == Utf8Str(aDefaultFrontend))
     1014        return S_OK;
     1015    HRESULT rc = setDefaultFrontend(aDefaultFrontend);
     1016    alock.release();
     1017
     1018    if (SUCCEEDED(rc))
     1019    {
     1020        // VirtualBox::saveSettings() needs vbox write lock
     1021        AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
     1022        rc = mParent->saveSettings();
     1023    }
     1024
     1025    return rc;
     1026}
     1027
    9941028// public methods only for internal purposes
    9951029/////////////////////////////////////////////////////////////////////////////
     
    10301064        (void)setDefaultAdditionsISO(data.strDefaultAdditionsISO);
    10311065    }
     1066
     1067    rc = setDefaultFrontend(data.strDefaultFrontend);
     1068    if (FAILED(rc)) return rc;
    10321069
    10331070    return S_OK;
     
    12831320    return S_OK;
    12841321}
     1322
     1323HRESULT SystemProperties::setDefaultFrontend(const Utf8Str &aDefaultFrontend)
     1324{
     1325    m->strDefaultFrontend = aDefaultFrontend;
     1326
     1327    return S_OK;
     1328}
  • trunk/src/VBox/Main/xml/SchemaDefs.xsl

    r44528 r44948  
    169169    <xsl:with-param name="member" select="'        MaxGuestMonitors'"/>
    170170    <xsl:with-param name="select" select="
    171       xsd:complexType[@name='TDisplay']/xsd:attribute[@name='monitorCount']//xsd:maxInclusive/@value
     171      xsd:simpleType[@name='TMonitorCount']//xsd:maxInclusive/@value
    172172    "/>
    173173  </xsl:call-template>
  • trunk/src/VBox/Main/xml/Settings.cpp

    r44873 r44948  
    845845            break;
    846846
     847        case SettingsVersion_v1_14:
     848            pcszVersion = "1.14";
     849            break;
     850
    847851        case SettingsVersion_Future:
    848852            // can be set if this code runs on XML files that were created by a future version of VBox;
    849853            // in that case, downgrade to current version when writing since we can't write future versions...
    850             pcszVersion = "1.13";
    851             m->sv = SettingsVersion_v1_13;
     854            pcszVersion = "1.14";
     855            m->sv = SettingsVersion_v1_14;
    852856            break;
    853857
     
    12971301                        pelmGlobalChild->getAttributeValue("LogHistoryCount", systemProperties.ulLogHistoryCount);
    12981302                        pelmGlobalChild->getAttributeValue("autostartDatabasePath", systemProperties.strAutostartDatabasePath);
     1303                        pelmGlobalChild->getAttributeValue("defaultFrontend", systemProperties.strDefaultFrontend);
    12991304                    }
    13001305                    else if (pelmGlobalChild->nameEquals("ExtraData"))
     
    14091414    if (systemProperties.strAutostartDatabasePath.length())
    14101415        pelmSysProps->setAttribute("autostartDatabasePath", systemProperties.strAutostartDatabasePath);
     1416    if (systemProperties.strDefaultFrontend.length())
     1417        pelmSysProps->setAttribute("defaultFrontend", systemProperties.strDefaultFrontend);
    14111418
    14121419    buildUSBDeviceFilters(*pelmGlobal->createChild("USBDeviceFilters"),
     
    17041711                  && (ioSettings                == h.ioSettings)
    17051712                  && (pciAttachments            == h.pciAttachments)
     1713                  && (strDefaultFrontend        == h.strDefaultFrontend)
    17061714                )
    17071715            );
     
    28852893            {
    28862894                pelmWebcam->getAttributeValue("enabled", hw.fEmulatedUSBWebcam);
     2895            }
     2896        }
     2897        else if (pelmHwChild->nameEquals("Frontend"))
     2898        {
     2899            const xml::ElementNode *pelmDefault;
     2900
     2901            if ((pelmDefault = pelmHwChild->findChildElement("Default")))
     2902            {
     2903                pelmDefault->getAttributeValue("type", hw.strDefaultFrontend);
    28872904            }
    28882905        }
     
    42064223    }
    42074224
     4225    if (   m->sv >= SettingsVersion_v1_14
     4226        && !hw.strDefaultFrontend.isEmpty())
     4227    {
     4228        xml::ElementNode *pelmFrontend = pelmHardware->createChild("Frontend");
     4229        xml::ElementNode *pelmDefault = pelmFrontend->createChild("Default");
     4230        pelmDefault->setAttribute("type", hw.strDefaultFrontend);
     4231    }
     4232
    42084233    xml::ElementNode *pelmGuest = pelmHardware->createChild("Guest");
    42094234    pelmGuest->setAttribute("memoryBalloonSize", hw.ulMemoryBalloonSize);
     
    48654890void MachineConfigFile::bumpSettingsVersionIfNeeded()
    48664891{
     4892    if (m->sv < SettingsVersion_v1_14)
     4893    {
     4894        // VirtualBox 4.3 adds default frontend setting.
     4895        if (!hardwareMachine.strDefaultFrontend.isEmpty())
     4896            m->sv = SettingsVersion_v1_14;
     4897    }
     4898
    48674899    if (m->sv < SettingsVersion_v1_13)
    48684900    {
  • trunk/src/VBox/Main/xml/VirtualBox-settings.xsd

    r44875 r44948  
    77 *  Common definitions
    88
    9     Copyright (C) 2004-2012 Oracle Corporation
     9    Copyright (C) 2004-2013 Oracle Corporation
    1010
    1111    This file is part of VirtualBox Open Source Edition (OSE), as
     
    2929  <xsd:documentation xml:lang="en">
    3030    Oracle VM VirtualBox Settings Schema (common definitions).
    31     Copyright (c) 2004-2012 Oracle Corporation
     31    Copyright (c) 2004-2013 Oracle Corporation
    3232  </xsd:documentation>
    3333</xsd:annotation>
     
    7878</xsd:simpleType>
    7979
     80<xsd:simpleType name="TUInt16Hex">
     81  <xsd:restriction base="xsd:string">
     82    <xsd:pattern value="0x[A-Fa-f0-9]{1,4}"/>
     83  </xsd:restriction>
     84</xsd:simpleType>
     85
     86<xsd:simpleType name="TUInt16HexNoBase">
     87  <xsd:restriction base="xsd:string">
     88    <xsd:pattern value="[A-Fa-f0-9]{1,4}"/>
     89  </xsd:restriction>
     90</xsd:simpleType>
     91
    8092<xsd:simpleType name="TUInt32Hex">
    8193  <xsd:restriction base="xsd:string">
     
    93105  <xsd:restriction base="xsd:string">
    94106    <xsd:pattern value=".+"/>
    95   </xsd:restriction>
    96 </xsd:simpleType>
    97 
    98 <xsd:simpleType name="TDiskType">
    99   <xsd:restriction base="xsd:token">
    100     <xsd:enumeration value="HD"/>
    101     <xsd:enumeration value="DVD"/>
    102     <xsd:enumeration value="FD"/>
    103107  </xsd:restriction>
    104108</xsd:simpleType>
     
    114118</xsd:simpleType>
    115119
     120<xsd:simpleType name="TMediumDeviceType">
     121  <xsd:restriction base="TDeviceType">
     122    <xsd:enumeration value="Floppy"/>
     123    <xsd:enumeration value="DVD"/>
     124    <xsd:enumeration value="HardDisk"/>
     125  </xsd:restriction>
     126</xsd:simpleType>
     127
     128<xsd:simpleType name="TMediumType">
     129  <xsd:restriction base="xsd:string">
     130    <xsd:enumeration value="Normal"/>
     131    <xsd:enumeration value="Immutable"/>
     132    <xsd:enumeration value="Writethrough"/>
     133    <xsd:enumeration value="Shareable"/>
     134    <xsd:enumeration value="Readonly"/>
     135    <xsd:enumeration value="MultiAttach"/>
     136  </xsd:restriction>
     137</xsd:simpleType>
     138
     139<xsd:simpleType name="TMonitorCount">
     140  <xsd:restriction base="xsd:unsignedInt">
     141    <xsd:minInclusive value="1"/>
     142    <!-- This should be in sync with VBOX_VIDEO_MAX_SCREENS in VBoxVideoVBE.h -->
     143    <xsd:maxInclusive value="64"/>
     144  </xsd:restriction>
     145</xsd:simpleType>
     146
    116147<xsd:simpleType name="TUSBDeviceFilterAction">
    117148  <xsd:restriction base="xsd:token">
     
    138169<xsd:simpleType name="TAuthType">
    139170  <xsd:restriction base="xsd:string">
     171    <xsd:enumeration value="null"/> <!-- deprecated -->
    140172    <xsd:enumeration value="Null"/>
    141173    <xsd:enumeration value="Guest"/>
     
    168200    <xsd:enumeration value="MenuOnly"/>
    169201    <xsd:enumeration value="MessageAndMenu"/>
     202    <xsd:enumeration value="messageandmenu"/> <!-- deprecated -->
     203  </xsd:restriction>
     204</xsd:simpleType>
     205
     206<xsd:simpleType name="TLocalOrUTC">
     207  <xsd:restriction base="xsd:token">
     208    <xsd:enumeration value="local"/>
     209    <xsd:enumeration value="UTC"/>
    170210  </xsd:restriction>
    171211</xsd:simpleType>
     
    186226    <xsd:enumeration value="GuestToHost"/>
    187227    <xsd:enumeration value="Bidirectional"/>
     228  </xsd:restriction>
     229</xsd:simpleType>
     230
     231<xsd:simpleType name="TBandwidthGroupType">
     232  <xsd:restriction base="xsd:string">
     233    <xsd:enumeration value="Disk"/>
     234    <xsd:enumeration value="Network"/>
    188235  </xsd:restriction>
    189236</xsd:simpleType>
     
    211258</xsd:complexType>
    212259
     260<xsd:complexType name="TProperty">
     261  <xsd:attribute name="name" type="xsd:token" use="required"/>
     262  <xsd:attribute name="value" type="xsd:string" use="required"/>
     263</xsd:complexType>
     264
    213265<xsd:complexType name="THardDiskBase">
    214266  <xsd:sequence>
    215267    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
    216     <xsd:element name="Property" minOccurs="0" maxOccurs="unbounded">
    217       <xsd:complexType>
    218         <xsd:attribute name="name" type="xsd:token" use="required"/>
    219         <xsd:attribute name="value" type="xsd:string" use="required"/>
    220       </xsd:complexType>
    221     </xsd:element>
     268    <xsd:element name="Property" type="TProperty" minOccurs="0" maxOccurs="unbounded"/>
    222269    <xsd:element name="HardDisk" type="TDiffHardDisk" minOccurs="0" maxOccurs="unbounded"/>
    223270  </xsd:sequence>
     
    238285  <xsd:complexContent>
    239286    <xsd:extension base="THardDiskBase">
    240       <xsd:attribute name="type" use="required">
    241         <xsd:simpleType>
    242           <xsd:restriction base="xsd:string">
    243             <xsd:enumeration value="Normal"/>
    244             <xsd:enumeration value="Immutable"/>
    245             <xsd:enumeration value="Writethrough"/>
    246             <xsd:enumeration value="Shareable"/>
    247             <xsd:enumeration value="Readonly"/>
    248             <xsd:enumeration value="MultiAttach"/>
    249           </xsd:restriction>
    250         </xsd:simpleType>
    251       </xsd:attribute>
     287      <xsd:attribute name="type" type="TMediumType" use="required"/>
    252288    </xsd:extension>
    253289  </xsd:complexContent>
     
    260296  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
    261297  <xsd:attribute name="location" type="TLocalFile" use="required"/>
     298  <xsd:attribute name="type" type="TMediumType"/>
    262299</xsd:complexType>
    263300
     
    301338  <xsd:attribute name="HWVirtExEnabled" type="xsd:boolean"/>
    302339  <xsd:attribute name="LogHistoryCount" type="xsd:unsignedInt" default="3"/>
     340  <xsd:attribute name="defaultVRDEExtPack" type="xsd:string"/>
    303341</xsd:complexType>
    304342
     
    312350    </xsd:element>
    313351  </xsd:sequence>
     352</xsd:complexType>
     353
     354<xsd:complexType name="TMediaRegistry">
     355  <xsd:all>
     356    <xsd:element name="HardDisks" minOccurs="0">
     357      <xsd:complexType>
     358        <xsd:sequence>
     359          <xsd:element name="HardDisk" type="THardDisk" minOccurs="0" maxOccurs="unbounded"/>
     360        </xsd:sequence>
     361      </xsd:complexType>
     362    </xsd:element>
     363    <xsd:element name="DVDImages" minOccurs="0">
     364      <xsd:complexType>
     365        <xsd:sequence>
     366          <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
     367        </xsd:sequence>
     368      </xsd:complexType>
     369    </xsd:element>
     370    <xsd:element name="FloppyImages" minOccurs="0">
     371      <xsd:complexType>
     372        <xsd:sequence>
     373          <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
     374        </xsd:sequence>
     375      </xsd:complexType>
     376    </xsd:element>
     377  </xsd:all>
    314378</xsd:complexType>
    315379
     
    328392      </xsd:complexType>
    329393    </xsd:element>
    330     <xsd:element name="MediaRegistry">
    331       <xsd:complexType>
    332         <xsd:all>
    333           <xsd:element name="HardDisks" minOccurs="0">
    334             <xsd:complexType>
    335               <xsd:sequence>
    336                 <xsd:element name="HardDisk" type="THardDisk" minOccurs="0" maxOccurs="unbounded"/>
    337               </xsd:sequence>
    338             </xsd:complexType>
    339           </xsd:element>
    340           <xsd:element name="DVDImages" minOccurs="0">
    341             <xsd:complexType>
    342               <xsd:sequence>
    343                 <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
    344               </xsd:sequence>
    345             </xsd:complexType>
    346           </xsd:element>
    347           <xsd:element name="FloppyImages" minOccurs="0">
    348             <xsd:complexType>
    349               <xsd:sequence>
    350                 <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
    351               </xsd:sequence>
    352             </xsd:complexType>
    353           </xsd:element>
    354         </xsd:all>
    355       </xsd:complexType>
    356     </xsd:element>
     394    <xsd:element name="MediaRegistry" type="TMediaRegistry"/>
    357395    <xsd:element name="NetserviceRegistry" minOccurs="0" maxOccurs="1">
    358396      <xsd:complexType>
     
    402440</xsd:complexType>
    403441
     442<xsd:complexType name="THardwareVirtExLargePages">
     443  <xsd:attribute name="enabled" type="xsd:boolean"/>
     444</xsd:complexType>
     445
     446<xsd:complexType name="THardwareVirtForce">
     447  <xsd:attribute name="enabled" type="xsd:boolean"/>
     448</xsd:complexType>
     449
    404450<xsd:simpleType name="TCPUCount">
    405451  <xsd:restriction base="xsd:unsignedInt">
     
    430476    <xsd:element name="HardwareVirtExVPID" type="THWVirtExVPIDType" minOccurs="0"/>
    431477    <xsd:element name="PAE" type="TPAEType" minOccurs="0"/>
     478    <xsd:element name="HardwareVirtExLargePages" type="THardwareVirtExLargePages" minOccurs="0"/>
     479    <xsd:element name="HardwareVirtForce" type="THardwareVirtForce" minOccurs="0"/>
    432480    <xsd:element name="SyntheticCpu" type="TSyntheticCpuType" minOccurs="0"/>
    433481    <xsd:element name="CpuIdTree" type="TCpuIdTree" minOccurs="0">
     
    439487  </xsd:sequence>
    440488  <xsd:attribute name="count" type="TCPUCount" default="1"/>
     489  <xsd:attribute name="hotplug" type="xsd:boolean" default="false"/>
    441490</xsd:complexType>
    442491
     
    460509
    461510<xsd:complexType name="TDisplay">
    462   <xsd:element name="VideoRecording">
    463     <xsd:complexType>
    464       <xsd:attribute name="enabled" type="xsd:boolean"/>
    465       <xsd:attribute name="file" type="xsd:string"/>
    466       <xsd:attribute name="horzRes" use="required">
    467         <xsd:simpleType>
    468           <xsd:restriction base="xsd:unsignedInt">
    469             <xsd:minInclusive value="4"/>
    470             <xsd:maxInclusive value="2097152"/>
    471            </xsd:restriction>
    472          </xsd:simpleType>
    473       </xsd:attribute>
    474       <xsd:attribute name="vertRes" type="xsd:unsignedInt"/>
    475     </xsd:complexType>
    476   </xsd:element>
    477511  <xsd:attribute name="VRAMSize" use="required">
    478512    <xsd:simpleType>
     
    483517    </xsd:simpleType>
    484518  </xsd:attribute>
    485   <!-- This should be in sync with VBOX_VIDEO_MAX_SCREENS in VBoxVideoVBE.h -->
    486   <xsd:attribute name="monitorCount" default="1">
    487     <xsd:simpleType>
    488       <xsd:restriction base="xsd:unsignedInt">
    489         <xsd:maxInclusive value="64"/>
    490       </xsd:restriction>
    491     </xsd:simpleType>
    492   </xsd:attribute>
     519  <xsd:attribute name="monitorCount" type="TMonitorCount" default="1"/>
     520  <xsd:attribute name="MonitorCount" type="TMonitorCount"/> <!-- deprecated -->
    493521  <xsd:attribute name="accelerate3D" type="xsd:boolean" default="false"/>
    494522  <xsd:attribute name="accelerate2DVideo" type="xsd:boolean" default="false"/>
    495523</xsd:complexType>
    496524
     525<xsd:complexType name="TVideoRecording">
     526  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     527  <xsd:attribute name="file" type="xsd:string"/>
     528  <xsd:attribute name="horzRes">
     529    <xsd:simpleType>
     530      <xsd:restriction base="xsd:unsignedInt">
     531        <xsd:minInclusive value="4"/>
     532        <xsd:maxInclusive value="2097152"/>
     533       </xsd:restriction>
     534     </xsd:simpleType>
     535  </xsd:attribute>
     536  <xsd:attribute name="vertRes" type="xsd:unsignedInt"/>
     537</xsd:complexType>
     538
     539<xsd:complexType name="TVRDEProperties">
     540  <xsd:sequence>
     541    <xsd:element name="Property" type="TProperty" minOccurs="0" maxOccurs="unbounded"/>
     542  </xsd:sequence>
     543</xsd:complexType>
     544
     545<xsd:complexType name="TVideoChannel">
     546  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     547  <xsd:attribute name="quality" type="xsd:unsignedByte" default="75"/>
     548</xsd:complexType>
     549
    497550<xsd:complexType name="TRemoteDisplay">
     551  <xsd:sequence>
     552    <xsd:element name="VideoChannel" type="TVideoChannel" minOccurs="0"/> <!-- deprecated -->
     553    <xsd:choice minOccurs="0">
     554      <xsd:element name="VRDEProperties" type="TVRDEProperties"/>
     555    </xsd:choice>
     556  </xsd:sequence>
    498557  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
     558  <xsd:attribute name="port" type="xsd:string" default="3389"/> <!-- deprecated -->
    499559  <xsd:attribute name="authType" type="TAuthType" default="Null"/>
    500560  <xsd:attribute name="authTimeout" type="xsd:unsignedInt" default="5000"/>
     
    530590    <xsd:element name="TimeOffset" minOccurs="0">
    531591      <xsd:complexType>
    532           <xsd:attribute name="value" type="xsd:integer" default="0"/>
     592        <xsd:attribute name="value" type="xsd:integer" default="0"/>
    533593      </xsd:complexType>
    534594    </xsd:element>
    535595    <xsd:element name="PXEDebug" minOccurs="0">
    536596      <xsd:complexType>
    537           <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     597        <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     598      </xsd:complexType>
     599    </xsd:element>
     600    <xsd:element name="IDEController" minOccurs="0"> <!-- deprecated -->
     601      <xsd:complexType>
     602        <xsd:attribute name="type">
     603          <xsd:simpleType>
     604            <xsd:restriction base="xsd:token">
     605            <xsd:enumeration value="PIIX3"/>
     606            <xsd:enumeration value="PIIX4"/>
     607            <xsd:enumeration value="ICH6"/>
     608            </xsd:restriction>
     609          </xsd:simpleType>
     610        </xsd:attribute>
    538611      </xsd:complexType>
    539612    </xsd:element>
     
    546619    <xsd:element name="HostDrive" type="THostDrive"/>
    547620  </xsd:choice>
    548   <xsd:attribute name="type" use="required">
    549     <xsd:simpleType>
    550       <xsd:restriction base="xsd:token">
    551         <xsd:enumeration value="HardDisk"/>
    552         <xsd:enumeration value="CD/DVD"/>
    553       </xsd:restriction>
    554     </xsd:simpleType>
    555   </xsd:attribute>
    556   <xsd:attribute name="port" type="xsd:unsignedInt" use="required"/>
     621  <xsd:attribute name="type" type="TMediumDeviceType"/>
     622  <xsd:attribute name="port" type="xsd:unsignedInt" default="0"/>
    557623  <xsd:attribute name="device" type="xsd:unsignedInt" default="0"/>
     624  <xsd:attribute name="passthrough" type="xsd:boolean" default="false"/>
     625  <xsd:attribute name="tempeject" type="xsd:boolean" default="false"/>
     626  <xsd:attribute name="nonrotational" type="xsd:boolean" default="false"/>
     627  <xsd:attribute name="discard" type="xsd:boolean" default="false"/>
    558628</xsd:complexType>
    559629
     
    574644      <xsd:enumeration value="ICH6"/>
    575645      <xsd:enumeration value="LsiLogicSas"/>
     646      <xsd:enumeration value="I82078"/>
    576647      </xsd:restriction>
    577648    </xsd:simpleType>
    578649  </xsd:attribute>
    579650  <xsd:attribute name="PortCount"   type="xsd:unsignedInt" use="required"/>
    580   <xsd:attribute name="bootable"    type="xsd:boolean"     use="optional"/>
     651  <xsd:attribute name="useHostIOCache" type="xsd:boolean"  use="optional" default="true"/>
     652  <xsd:attribute name="Bootable"    type="xsd:boolean"     use="optional"/>
    581653  <xsd:attribute name="PCIBus"      type="xsd:unsignedInt" use="optional"/>
    582654  <xsd:attribute name="PCIDevice"   type="xsd:unsignedInt" use="optional"/>
     
    588660</xsd:complexType>
    589661
     662<xsd:complexType name="TSATAController"> <!-- deprecated -->
     663  <xsd:sequence>
     664    <xsd:element name="AttachedDevice" type="TStorageControllerDevice"
     665                 minOccurs="0" maxOccurs="unbounded"/>
     666  </xsd:sequence>
     667  <xsd:attribute name="enabled"     type="xsd:boolean"     default="false"/>
     668  <xsd:attribute name="PortCount"   type="xsd:unsignedInt" use="required"/>
     669  <xsd:attribute name="IDE0MasterEmulationPort" type="xsd:unsignedInt" use="optional"/>
     670  <xsd:attribute name="IDE0SlaveEmulationPort"  type="xsd:unsignedInt" use="optional"/>
     671  <xsd:attribute name="IDE1MasterEmulationPort" type="xsd:unsignedInt" use="optional"/>
     672  <xsd:attribute name="IDE1SlaveEmulationPort"  type="xsd:unsignedInt" use="optional"/>
     673</xsd:complexType>
     674
    590675<xsd:complexType name="TStorageControllers">
    591676  <xsd:sequence>
    592677    <xsd:element name="StorageController" type="TStorageController"
     678                 minOccurs="0" maxOccurs="unbounded"/>
     679  </xsd:sequence>
     680</xsd:complexType>
     681
     682<xsd:complexType name="THardDiskAttachment">
     683  <xsd:attribute name="hardDisk" type="TNonNullUUID"/>
     684  <xsd:attribute name="bus" default="IDE">
     685    <xsd:simpleType>
     686      <xsd:restriction base="xsd:token">
     687        <xsd:enumeration value="IDE"/>
     688        <xsd:enumeration value="SATA"/>
     689      </xsd:restriction>
     690    </xsd:simpleType>
     691  </xsd:attribute>
     692  <xsd:attribute name="channel" type="xsd:unsignedInt" default="0"/>
     693  <xsd:attribute name="device" type="xsd:unsignedInt" default="0"/>
     694</xsd:complexType>
     695
     696<xsd:complexType name="THardDiskAttachments"> <!-- deprecated -->
     697  <xsd:sequence>
     698    <xsd:element name="HardDiskAttachment" type="THardDiskAttachment"
    593699                 minOccurs="0" maxOccurs="unbounded"/>
    594700  </xsd:sequence>
     
    620726</xsd:complexType>
    621727
    622 <xsd:complexType name="TAudioAdapterBase">
     728<xsd:complexType name="TAudioAdapter">
    623729  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
    624730  <xsd:attribute name="controller" default="AC97">
     
    627733        <xsd:enumeration value="AC97"/>
    628734        <xsd:enumeration value="SB16"/>
    629       </xsd:restriction>
    630     </xsd:simpleType>
    631   </xsd:attribute>
     735        <xsd:enumeration value="HDA"/>
     736      </xsd:restriction>
     737    </xsd:simpleType>
     738  </xsd:attribute>
     739  <xsd:attribute name="driver" use="required">
     740    <xsd:simpleType>
     741      <xsd:restriction base="xsd:token">
     742        <xsd:enumeration value="null"/> <!-- deprecated -->
     743        <xsd:enumeration value="Null"/> <!-- all platforms -->
     744        <xsd:enumeration value="OSS"/> <!-- Linux, Solaris, FreeBSD -->
     745        <xsd:enumeration value="ALSA"/> <!-- Linux, FreeBSD -->
     746        <xsd:enumeration value="Pulse"/> <!-- Linux -->
     747        <xsd:enumeration value="CoreAudio"/> <!-- Mac OS X -->
     748        <xsd:enumeration value="MMPM"/> <!-- OS/2 -->
     749        <xsd:enumeration value="SolAudio"/> <!-- Solaris -->
     750        <xsd:enumeration value="WinMM"/> <!-- Windows -->
     751        <xsd:enumeration value="DirectSound"/> <!-- Windows -->
     752      </xsd:restriction>
     753    </xsd:simpleType>
     754  </xsd:attribute>
     755</xsd:complexType>
     756
     757<xsd:complexType name="TNetNAT">
     758  <xsd:choice minOccurs="0" maxOccurs="unbounded">
     759    <xsd:element name="DNS" minOccurs="0">
     760      <xsd:complexType>
     761        <xsd:attribute name="pass-domain" type="xsd:boolean" default="true"/>
     762        <xsd:attribute name="use-proxy" type="xsd:boolean" default="false"/>
     763        <xsd:attribute name="use-host-resolver" type="xsd:boolean" default="false"/>
     764      </xsd:complexType>
     765    </xsd:element>
     766    <xsd:element name="Alias" minOccurs="0">
     767      <xsd:complexType>
     768        <xsd:attribute name="logging" type="xsd:boolean" default="false"/>
     769        <xsd:attribute name="proxy-only" type="xsd:boolean" default="false"/>
     770        <xsd:attribute name="use-same-ports" type="xsd:boolean" default="false"/>
     771      </xsd:complexType>
     772    </xsd:element>
     773    <xsd:element name="TFTP" minOccurs="0">
     774      <xsd:complexType>
     775        <xsd:attribute name="prefix" type="xsd:string"/>
     776        <xsd:attribute name="boot-file" type="xsd:string"/>
     777        <xsd:attribute name="next-server" type="xsd:string"/>
     778      </xsd:complexType>
     779    </xsd:element>
     780    <xsd:element name="Forwarding" minOccurs="0" maxOccurs="unbounded">
     781      <xsd:complexType>
     782        <xsd:attribute name="name" type="xsd:string"/>
     783        <xsd:attribute name="proto" type="xsd:unsignedInt"/>
     784        <xsd:attribute name="hostip" type="xsd:string"/>
     785        <xsd:attribute name="hostport" type="xsd:unsignedInt"/>
     786        <xsd:attribute name="guestip" type="xsd:string"/>
     787        <xsd:attribute name="guestport" type="xsd:unsignedInt"/>
     788      </xsd:complexType>
     789    </xsd:element>
     790  </xsd:choice>
     791  <xsd:attribute name="network" type="xsd:string"/>
     792  <xsd:attribute name="hostip" type="xsd:string"/>
     793  <xsd:attribute name="mtu" type="xsd:unsignedInt"/>
     794  <xsd:attribute name="sockrcv" type="xsd:unsignedInt"/>
     795  <xsd:attribute name="socksnd" type="xsd:unsignedInt"/>
     796  <xsd:attribute name="tcprcv" type="xsd:unsignedInt"/>
     797  <xsd:attribute name="tcpsnd" type="xsd:unsignedInt"/>
     798</xsd:complexType>
     799
     800<xsd:complexType name="TNetBridged">
     801  <xsd:attribute name="name" type="xsd:string" use="required"/>
     802</xsd:complexType>
     803
     804<xsd:complexType name="TNetInternal">
     805  <xsd:attribute name="name" type="xsd:string" use="required"/>
     806</xsd:complexType>
     807
     808<xsd:complexType name="TNetHostOnly">
     809  <xsd:attribute name="name" type="xsd:string" use="required"/>
     810</xsd:complexType>
     811
     812<xsd:complexType name="TNetGeneric">
     813  <xsd:sequence>
     814    <xsd:element name="Property" type="TProperty" minOccurs="0" maxOccurs="unbounded"/>
     815  </xsd:sequence>
     816  <xsd:attribute name="driver" type="xsd:string" use="required"/>
     817</xsd:complexType>
     818
     819<xsd:complexType name="TNetworkConfig">
     820  <xsd:choice maxOccurs="2">
     821    <xsd:choice minOccurs="0">
     822      <xsd:element name="NAT" type="TNetNAT"/>
     823      <xsd:element name="HostInterface" type="TNetBridged"/>
     824      <xsd:element name="BridgedInterface" type="TNetBridged"/>
     825      <xsd:element name="InternalNetwork" type="TNetInternal"/>
     826      <xsd:element name="HostOnlyInterface" type="TNetHostOnly"/>
     827      <xsd:element name="GenericInterface" type="TNetGeneric"/>
     828    </xsd:choice>
     829    <xsd:element name="DisabledModes">
     830      <xsd:complexType>
     831        <xsd:all>
     832          <xsd:element name="NAT" type="TNetNAT" minOccurs="0"/>
     833          <xsd:element name="HostInterface" type="TNetBridged" minOccurs="0"/>
     834          <xsd:element name="BridgedInterface" type="TNetBridged" minOccurs="0"/>
     835          <xsd:element name="InternalNetwork" type="TNetInternal" minOccurs="0"/>
     836          <xsd:element name="HostOnlyInterface" type="TNetHostOnly" minOccurs="0"/>
     837          <xsd:element name="GenericInterface" type="TNetGeneric" minOccurs="0"/>
     838        </xsd:all>
     839      </xsd:complexType>
     840    </xsd:element>
     841  </xsd:choice>
    632842</xsd:complexType>
    633843
    634844<xsd:complexType name="TNetworkAdapter">
    635   <xsd:choice minOccurs="0">
    636     <xsd:element name="NAT">
    637       <xsd:complexType>
    638         <xsd:attribute name="network" type="xsd:string"/>
    639       </xsd:complexType>
    640       <xsd:complexType>
    641         <xsd:attribute name="hostip" type="xsd:string"/>
    642       </xsd:complexType>
    643       <xsd:complexType>
    644         <xsd:attribute name="mtu" type="xsd:unsignedInt"/>
    645       </xsd:complexType>
    646       <xsd:complexType>
    647         <xsd:attribute name="sockrcv" type="xsd:unsignedInt"/>
    648       </xsd:complexType>
    649       <xsd:complexType>
    650         <xsd:attribute name="socksnd" type="xsd:unsignedInt"/>
    651       </xsd:complexType>
    652       <xsd:complexType>
    653         <xsd:attribute name="tcprcv" type="xsd:unsignedInt"/>
    654       </xsd:complexType>
    655       <xsd:complexType>
    656         <xsd:attribute name="tcpsnd" type="xsd:unsignedInt"/>
    657       </xsd:complexType>
    658       <xsd:element name="DNS">
    659         <xsd:complexType>
    660           <xsd:attribute name="pass-domain" type="xsd:boolean"/>
    661         </xsd:complexType>
    662         <xsd:complexType>
    663           <xsd:attribute name="use-proxy" type="xsd:boolean"/>
    664         </xsd:complexType>
    665         <xsd:complexType>
    666           <xsd:attribute name="use-host-resolver" type="xsd:boolean"/>
    667         </xsd:complexType>
    668       </xsd:element>
    669       <xsd:element name="TFTP">
    670         <xsd:complexType>
    671           <xsd:attribute name="prefix" type="xsd:string"/>
    672         </xsd:complexType>
    673         <xsd:complexType>
    674           <xsd:attribute name="boot-file" type="xsd:string"/>
    675         </xsd:complexType>
    676         <xsd:complexType>
    677           <xsd:attribute name="next-server" type="xsd:string"/>
    678         </xsd:complexType>
    679       </xsd:element>
    680       <xsd:element name="Forwarding">
    681         <xsd:complexType>
    682           <xsd:attribute name="name" type="xsd:string"/>
    683         </xsd:complexType>
    684         <xsd:complexType>
    685           <xsd:attribute name="proto" type="xsd:unsignedInt"/>
    686         </xsd:complexType>
    687         <xsd:complexType>
    688           <xsd:attribute name="hostip" type="xsd:string"/>
    689         </xsd:complexType>
    690         <xsd:complexType>
    691           <xsd:attribute name="hostport" type="xsd:unsignedInt"/>
    692         </xsd:complexType>
    693         <xsd:complexType>
    694           <xsd:attribute name="guestip" type="xsd:string"/>
    695         </xsd:complexType>
    696         <xsd:complexType>
    697           <xsd:attribute name="guestport" type="xsd:unsignedInt"/>
    698         </xsd:complexType>
    699       </xsd:element>
    700     </xsd:element>
    701     <xsd:element name="HostInterface">
    702       <xsd:complexType>
    703         <xsd:attribute name="name" type="xsd:string" use="required"/>
    704       </xsd:complexType>
    705     </xsd:element>
    706     <xsd:element name="BridgedInterface">
    707       <xsd:complexType>
    708         <xsd:attribute name="name" type="xsd:string" use="required"/>
    709       </xsd:complexType>
    710     </xsd:element>
    711     <xsd:element name="InternalNetwork">
    712       <xsd:complexType>
    713         <xsd:attribute name="name" type="xsd:string" use="required"/>
    714       </xsd:complexType>
    715     </xsd:element>
    716     <xsd:element name="HostOnlyInterface">
    717       <xsd:complexType>
    718         <xsd:attribute name="name" type="xsd:string" use="required"/>
    719       </xsd:complexType>
    720     </xsd:element>
    721     <xsd:element name="Generic">
    722       <xsd:complexType>
    723         <xsd:attribute name="driver" type="xsd:string" use="required"/>
    724       </xsd:complexType>
    725       <xsd:element name="Property" minOccurs="0" maxOccurs="unbounded">
    726         <xsd:complexType>
    727           <xsd:attribute name="name" type="xsd:token" use="required"/>
    728           <xsd:attribute name="value" type="xsd:string" use="required"/>
    729         </xsd:complexType>
    730       </xsd:element>
    731     </xsd:element>
    732     <!-- The DisabledModes tag is not part of this XSD file right now. -->
    733   </xsd:choice>
    734   <xsd:attribute name="type" type="TNetworkAdapterType" default="Am79C970A"/>
    735   <xsd:attribute name="slot" type="xsd:unsignedInt" use="required"/>
    736   <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
    737   <xsd:attribute name="MACAddress">
    738     <xsd:simpleType>
    739       <xsd:restriction base="xsd:hexBinary">
    740         <xsd:pattern value="[0-9A-Fa-f][02468ACEace][0-9A-Fa-f]{10}"/>
    741       </xsd:restriction>
    742     </xsd:simpleType>
    743   </xsd:attribute>
    744   <xsd:attribute name="cable" type="xsd:boolean" use="required"/>
    745   <xsd:attribute name="speed" type="xsd:unsignedInt" default="1000000"/>
    746   <xsd:attribute name="trace" type="xsd:boolean" default="false"/>
    747   <xsd:attribute name="tracefile" type="xsd:string"/>
    748   <xsd:attribute name="bandwidthGroup" type="xsd:string"/>
     845  <xsd:complexContent>
     846    <xsd:extension base="TNetworkConfig">
     847      <xsd:attribute name="type" type="TNetworkAdapterType" default="Am79C970A"/>
     848      <xsd:attribute name="slot" type="xsd:unsignedInt" use="required"/>
     849      <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
     850      <xsd:attribute name="MACAddress">
     851        <xsd:simpleType>
     852          <xsd:restriction base="xsd:hexBinary">
     853            <xsd:pattern value="[0-9A-Fa-f][02468ACEace][0-9A-Fa-f]{10}"/>
     854          </xsd:restriction>
     855        </xsd:simpleType>
     856      </xsd:attribute>
     857      <xsd:attribute name="cable" type="xsd:boolean" use="required"/>
     858      <xsd:attribute name="speed" type="xsd:unsignedInt" default="1000000"/>
     859      <xsd:attribute name="bootPriority" type="xsd:unsignedInt"/>
     860      <xsd:attribute name="trace" type="xsd:boolean" default="false"/>
     861      <xsd:attribute name="tracefile" type="xsd:string"/>
     862      <xsd:attribute name="bandwidthGroup" type="xsd:string"/>
     863    </xsd:extension>
     864  </xsd:complexContent>
    749865</xsd:complexType>
    750866
     
    780896</xsd:complexType>
    781897
     898<xsd:complexType name="TUartPort"> <!-- deprecated -->
     899  <xsd:attribute name="slot" use="required">
     900    <xsd:simpleType>
     901      <xsd:restriction base="xsd:unsignedInt">
     902        <xsd:minInclusive value="0"/>
     903        <xsd:maxExclusive value="2"/>
     904      </xsd:restriction>
     905    </xsd:simpleType>
     906  </xsd:attribute>
     907  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
     908  <xsd:attribute name="IRQ" type="TUInt8" use="required"/>
     909  <xsd:attribute name="IOBase" type="TUInt16HexNoBase" use="required"/>
     910  <xsd:attribute name="hostMode" type="TPortMode" use="required"/>
     911  <xsd:attribute name="path" type="TLocalFile"/>
     912  <xsd:attribute name="server" type="xsd:boolean" default="false"/>
     913</xsd:complexType>
     914
     915<xsd:complexType name="TUart"> <!-- deprecated -->
     916  <xsd:sequence>
     917    <xsd:element name="Port" type="TUartPort"
     918                 minOccurs="0" maxOccurs="unbounded"/>
     919  </xsd:sequence>
     920</xsd:complexType>
     921
    782922<xsd:complexType name="TLPTPort">
    783923  <xsd:attribute name="slot" use="required">
     
    802942</xsd:complexType>
    803943
     944<xsd:complexType name="TLptPort"> <!-- deprecated -->
     945  <xsd:attribute name="slot" use="required">
     946    <xsd:simpleType>
     947      <xsd:restriction base="xsd:unsignedInt">
     948        <xsd:minInclusive value="0"/>
     949        <xsd:maxExclusive value="2"/>
     950      </xsd:restriction>
     951    </xsd:simpleType>
     952  </xsd:attribute>
     953  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
     954  <xsd:attribute name="IRQ" type="TUInt8" use="required"/>
     955  <xsd:attribute name="IOBase" type="TUInt16HexNoBase" use="required"/>
     956  <xsd:attribute name="path" type="TLocalFile"/>
     957</xsd:complexType>
     958
     959<xsd:complexType name="TLpt">
     960  <xsd:sequence>
     961    <xsd:element name="Port" type="TLptPort"
     962                 minOccurs="0" maxOccurs="unbounded"/>
     963  </xsd:sequence>
     964</xsd:complexType>
     965
     966<xsd:complexType name="TRTC">
     967  <xsd:attribute name="localOrUTC" type="TLocalOrUTC" use="required"/>
     968</xsd:complexType>
     969
    804970<xsd:complexType name="TSharedFolder">
    805971  <xsd:attribute name="name" type="TNonEmptyString" use="required"/>
    806972  <xsd:attribute name="hostPath" type="TLocalFile" use="required"/>
    807973  <xsd:attribute name="writable" type="xsd:boolean" default="true"/>
     974  <xsd:attribute name="autoMount" type="xsd:boolean" default="false"/>
    808975</xsd:complexType>
    809976
     
    822989</xsd:complexType>
    823990
     991<xsd:complexType name="TIoCache">
     992  <xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
     993  <xsd:attribute name="size" type="xsd:unsignedLong"/>
     994</xsd:complexType>
     995
     996<xsd:complexType name="TBandwidthGroup">
     997  <xsd:attribute name="name" type="xsd:token" use="required"/>
     998  <xsd:attribute name="type" type="TBandwidthGroupType" use="required"/>
     999  <xsd:attribute name="maxBytesPerSec" type="xsd:unsignedLong"/>
     1000  <xsd:attribute name="maxMbPerSec" type="xsd:unsignedLong"/>
     1001</xsd:complexType>
     1002
     1003<xsd:complexType name="TBandwidthGroups">
     1004  <xsd:sequence>
     1005    <xsd:element name="BandwidthGroup" type="TBandwidthGroup" minOccurs="0" maxOccurs="unbounded"/>
     1006  </xsd:sequence>
     1007</xsd:complexType>
     1008
     1009<xsd:complexType name="TIO">
     1010  <xsd:sequence>
     1011    <xsd:element name="IoCache" type="TIoCache" minOccurs="0"/>
     1012    <xsd:element name="BandwidthGroups" type="TBandwidthGroups" minOccurs="0"/>
     1013  </xsd:sequence>
     1014</xsd:complexType>
     1015
     1016<xsd:complexType name="THostPciDevice">
     1017  <xsd:attribute name="host" type="xsd:unsignedInt" use="required"/>
     1018  <xsd:attribute name="guest" type="xsd:unsignedInt" use="required"/>
     1019  <xsd:attribute name="name" type="xsd:token"/>
     1020</xsd:complexType>
     1021
     1022<xsd:complexType name="THostPciDevices">
     1023  <xsd:sequence>
     1024    <xsd:element name="Device" type="THostPciDevice" minOccurs="0" maxOccurs="unbounded"/>
     1025  </xsd:sequence>
     1026</xsd:complexType>
     1027
     1028<xsd:complexType name="THostPci">
     1029  <xsd:sequence>
     1030    <xsd:element name="Devices" type="THostPciDevices" minOccurs="0"/>
     1031  </xsd:sequence>
     1032</xsd:complexType>
     1033
     1034<xsd:complexType name="TCardReader">
     1035  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     1036</xsd:complexType>
     1037
     1038<xsd:complexType name="TWebcam">
     1039  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     1040</xsd:complexType>
     1041
     1042<xsd:complexType name="TEmulatedUSB">
     1043  <xsd:sequence>
     1044    <xsd:element name="CardReader" type="TCardReader" minOccurs="0"/>
     1045    <xsd:element name="Webcam" type="TWebcam" minOccurs="0"/>
     1046  </xsd:sequence>
     1047</xsd:complexType>
     1048
    8241049<xsd:complexType name="TGuest">
    8251050  <xsd:attribute name="memoryBalloonSize"        type="xsd:unsignedInt" default="0"/>
     1051  <xsd:attribute name="MemoryBalloonSize"        type="xsd:unsignedInt" default="0"/> <!-- deprecated -->
    8261052  <xsd:attribute name="statisticsUpdateInterval" type="xsd:unsignedInt" default="0"/>
     1053  <xsd:attribute name="StatisticsUpdateInterval" type="xsd:unsignedInt" default="0"/> <!-- deprecated -->
    8271054</xsd:complexType>
    8281055
     
    8501077    </xsd:simpleType>
    8511078  </xsd:attribute>
     1079  <xsd:attribute name="PageFusion" type="xsd:boolean" default="false"/>
     1080</xsd:complexType>
     1081
     1082<xsd:complexType name="TFirmware">
     1083  <xsd:attribute name="type" use="required">
     1084    <xsd:simpleType>
     1085      <xsd:restriction base="xsd:token">
     1086        <xsd:enumeration value="BIOS"/>
     1087        <xsd:enumeration value="EFI"/>
     1088        <xsd:enumeration value="EFI32"/>
     1089        <xsd:enumeration value="EFI64"/>
     1090        <xsd:enumeration value="EFIDUAL"/>
     1091      </xsd:restriction>
     1092    </xsd:simpleType>
     1093  </xsd:attribute>
     1094</xsd:complexType>
     1095
     1096<xsd:complexType name="THID">
     1097  <xsd:attribute name="Pointing" use="required">
     1098    <xsd:simpleType>
     1099      <xsd:restriction base="xsd:token">
     1100        <xsd:enumeration value="USBMouse"/>
     1101        <xsd:enumeration value="USBTablet"/>
     1102        <xsd:enumeration value="PS2Mouse"/>
     1103        <xsd:enumeration value="ComboMouse"/>
     1104      </xsd:restriction>
     1105    </xsd:simpleType>
     1106  </xsd:attribute>
     1107  <xsd:attribute name="Keyboard" use="required">
     1108    <xsd:simpleType>
     1109      <xsd:restriction base="xsd:token">
     1110        <xsd:enumeration value="USBKeyboard"/>
     1111        <xsd:enumeration value="PS2Keyboard"/>
     1112        <xsd:enumeration value="ComboKeyboard"/>
     1113      </xsd:restriction>
     1114    </xsd:simpleType>
     1115  </xsd:attribute>
     1116</xsd:complexType>
     1117
     1118<xsd:complexType name="THPET">
     1119  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     1120</xsd:complexType>
     1121
     1122<xsd:complexType name="TChipset">
     1123  <xsd:attribute name="type" use="required">
     1124    <xsd:simpleType>
     1125      <xsd:restriction base="xsd:token">
     1126        <xsd:enumeration value="PIIX3"/>
     1127        <xsd:enumeration value="ICH9"/>
     1128      </xsd:restriction>
     1129    </xsd:simpleType>
     1130  </xsd:attribute>
     1131</xsd:complexType>
     1132
     1133<xsd:complexType name="TTeleporter">
     1134  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     1135  <xsd:attribute name="port" type="xsd:unsignedShort"/>
     1136  <xsd:attribute name="address" type="xsd:string"/>
     1137  <xsd:attribute name="password" type="xsd:string"/>
     1138</xsd:complexType>
     1139
     1140<xsd:complexType name="TFaultTolerance">
     1141  <xsd:attribute name="state" use="required">
     1142    <xsd:simpleType>
     1143      <xsd:restriction base="xsd:token">
     1144        <xsd:enumeration value="inactive"/>
     1145        <xsd:enumeration value="master"/>
     1146        <xsd:enumeration value="standby"/>
     1147      </xsd:restriction>
     1148    </xsd:simpleType>
     1149  </xsd:attribute>
     1150  <xsd:attribute name="port" type="xsd:unsignedShort"/>
     1151  <xsd:attribute name="address" type="xsd:string"/>
     1152  <xsd:attribute name="interval" type="xsd:unsignedInt"/>
     1153  <xsd:attribute name="password" type="xsd:string"/>
    8521154</xsd:complexType>
    8531155
     
    8561158    <xsd:element name="CPU" type="TCPU" minOccurs="0"/>
    8571159    <xsd:element name="Memory" type="TMemory"/>
     1160    <xsd:element name="Firmware" type="TFirmware" minOccurs="0"/>
     1161    <xsd:element name="HID" type="THID" minOccurs="0"/>
     1162    <xsd:element name="HPET" type="THPET" minOccurs="0"/>
     1163    <xsd:element name="Chipset" type="TChipset" minOccurs="0"/>
    8581164    <xsd:element name="Boot" type="TBoot">
    8591165      <xsd:unique name="THardware-Boot-Order">
     
    8631169    </xsd:element>
    8641170    <xsd:element name="Display" type="TDisplay"/>
     1171    <xsd:element name="VideoRecording" type="TVideoRecording" minOccurs="0"/>
    8651172    <xsd:element name="RemoteDisplay" type="TRemoteDisplay" minOccurs="0"/>
    8661173    <xsd:element name="BIOS" type="TBIOS"/>
    867     <xsd:element name="DVDDrive" type="TDVDDrive"/>
    868     <xsd:element name="FloppyDrive" type="TFloppyDrive"/>
     1174    <xsd:element name="DVDDrive" type="TDVDDrive" minOccurs="0"/>
     1175    <xsd:element name="FloppyDrive" type="TFloppyDrive" minOccurs="0"/>
    8691176    <xsd:element name="USBController" type="TUSBController"/>
     1177    <xsd:element name="SATAController" type="TSATAController" minOccurs="0"/> <!-- deprecated -->
    8701178    <xsd:element name="Network" type="TNetwork">
    8711179      <xsd:unique name="THardware-Network-Adapter">
     
    8741182      </xsd:unique>
    8751183    </xsd:element>
    876     <xsd:element name="UART" type="TUART">
     1184    <xsd:element name="UART" type="TUART" minOccurs="0">
    8771185      <xsd:unique name="THardware-UART-Port">
    8781186        <xsd:selector xpath="vb:Port"/>
     
    8801188      </xsd:unique>
    8811189    </xsd:element>
    882     <xsd:element name="LPT" type="TLPT">
     1190    <xsd:element name="Uart" type="TUart" minOccurs="0"> <!-- deprecated -->
     1191      <xsd:unique name="THardware-Uart-Port">
     1192        <xsd:selector xpath="vb:Port"/>
     1193        <xsd:field xpath="@slot"/>
     1194      </xsd:unique>
     1195    </xsd:element>
     1196    <xsd:element name="LPT" type="TLPT" minOccurs="0">
    8831197      <xsd:unique name="THardware-LPT-Port">
    8841198        <xsd:selector xpath="vb:Port"/>
     
    8861200      </xsd:unique>
    8871201    </xsd:element>
     1202    <xsd:element name="Lpt" type="TLpt" minOccurs="0"> <!-- deprecated -->
     1203      <xsd:unique name="THardware-Lpt-Port">
     1204        <xsd:selector xpath="vb:Port"/>
     1205        <xsd:field xpath="@slot"/>
     1206      </xsd:unique>
     1207    </xsd:element>
    8881208    <xsd:element name="AudioAdapter" type="TAudioAdapter"/>
     1209    <xsd:element name="RTC" type="TRTC" minOccurs="0"/>
    8891210    <xsd:element name="SharedFolders" type="TSharedFolders">
    8901211      <xsd:unique name="THardware-SharedFolders-SharedFolder">
     
    8941215    </xsd:element>
    8951216    <xsd:element name="Clipboard" type="TClipboard"/>
    896     <xsd:element name="DragAndDrop" type="TDragAndDrop"/>
     1217    <xsd:element name="DragAndDrop" type="TDragAndDrop" minOccurs="0"/>
     1218    <xsd:element name="IO" type="TIO" minOccurs="0"/>
     1219    <xsd:element name="HostPci" type="THostPci" minOccurs="0"/>
     1220    <xsd:element name="EmulatedUSB" type="TEmulatedUSB" minOccurs="0"/>
    8971221    <xsd:element name="Guest" type="TGuest"/>
    8981222    <xsd:element name="GuestProperties" type="TGuestProperties" minOccurs="0">
     
    9061230</xsd:complexType>
    9071231
     1232<xsd:complexType name="TGroup">
     1233  <xsd:attribute name="name" type="xsd:string" use="required"/>
     1234</xsd:complexType>
     1235
     1236<xsd:complexType name="TGroups">
     1237  <xsd:sequence>
     1238    <xsd:element name="Group" type="TGroup" minOccurs="0" maxOccurs="unbounded"/>
     1239  </xsd:sequence>
     1240</xsd:complexType>
     1241
    9081242<xsd:complexType name="TMachine">
    9091243  <xsd:all>
     1244    <xsd:element name="MediaRegistry" type="TMediaRegistry" minOccurs="0"/>
    9101245    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
     1246    <xsd:element name="Teleporter" type="TTeleporter" minOccurs="0"/>
     1247    <xsd:element name="FaultTolerance" type="TFaultTolerance" minOccurs="0"/>
    9111248    <xsd:element name="Hardware" type="THardware"/>
    912     <xsd:element name="StorageControllers" type="TStorageControllers"/>
     1249    <xsd:element name="StorageControllers" type="TStorageControllers" minOccurs="0"/>
     1250    <xsd:element name="HardDiskAttachments" type="THardDiskAttachments" minOccurs="0"/> <!-- deprecated -->
     1251    <xsd:element name="Groups" type="TGroups" minOccurs="0"/>
    9131252    <xsd:element name="ExtraData" type="TExtraData" minOccurs="0"/>
    9141253    <xsd:element name="Snapshot" type="TSnapshot" minOccurs="0"/>
     
    9161255  <xsd:attribute name="name" type="TNonEmptyString" use="required"/>
    9171256  <xsd:attribute name="nameSync" type="xsd:boolean" default="true"/>
     1257  <xsd:attribute name="directoryIncludesUUID" type="xsd:boolean" default="false"/>
    9181258  <xsd:attribute name="OSType" type="TNonEmptyString" use="required"/>
    9191259  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
     
    9451285</xsd:complexType>
    9461286
    947 <xsd:complexType name="TVirtualBox" abstract="true">
     1287<xsd:complexType name="TVirtualBox">
    9481288  <xsd:choice>
    9491289    <xsd:element name="Global" type="TGlobal"/>
     
    9601300    </xsd:element>
    9611301  </xsd:choice>
    962 </xsd:complexType>
     1302  <xsd:attribute name="version" type="xsd:string"/>
     1303</xsd:complexType>
     1304
     1305<!-- Root element for all VirtualBox config files -->
     1306<xsd:element name="VirtualBox" type="TVirtualBox"/>
    9631307
    9641308</xsd:schema>
Note: See TracChangeset for help on using the changeset viewer.

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