# VirtualBox.idl File Reference

Go to the source code of this file.

## Classes
interface | IVirtualBoxErrorInfo
| The IVirtualBoxErrorInfo interface represents extended error information. More...
interface | ILocalOwner
| The ILocalOwner interface allows to register local objects (created without COM calls, but with new()). More...
interface | IVirtualBoxCallback
interface | IDHCPServer
| The IDHCPServer interface represents the vbox dhcp server configuration. More...
interface | IVirtualBox
| The IVirtualBox interface represents the main interface exposed by the product that provides virtual machine management. More...
interface | IVFSExplorer
| The VFSExplorer interface unifies access to different file system types. More...
interface | IAppliance
| Represents a platform-independent appliance in OVF format. More...
interface | IVirtualSystemDescription
| Represents one virtual system (machine) in an appliance. More...
interface | IInternalMachineControl
interface | IBIOSSettings
| The IBIOSSettings interface represents BIOS settings of the virtual machine. More...
interface | IMachine
| The IMachine interface represents a virtual machine, or guest, created in VirtualBox. More...
interface | IConsoleCallback
| This interface is used by a client of the Main API that need to be notified of events. More...
interface | IRemoteDisplayInfo
| Contains information about the remote display (VRDP) capabilities and status. More...
interface | IConsole
| The IConsole interface represents an interface to control virtual machine execution. More...
interface | IHostNetworkInterface
| Represents one of host's network interfaces. More...
interface | IHost
| The IHost interface represents the physical machine that this VirtualBox installation runs on. More...
interface | ISystemProperties
| The ISystemProperties interface represents global properties of the given VirtualBox installation. More...
interface | IGuestOSType
interface | IGuest
| The IGuest interface represents information about the operating system running inside the virtual machine. More...
interface | IProgress
| The IProgress interface is used to track and control asynchronous tasks within VirtualBox. More...
interface | ISnapshot
| The ISnapshot interface represents a snapshot of the virtual machine. More...
interface | IMediumAttachment
| The IMediumAttachment interface represents the attachment of a storage medium to a virtual machine. More...
interface | IMedium
| The IMedium interface represents virtual storage for a machine's hard disks, CD/DVD or floppy drives. More...
interface | IMediumFormat
| The IMediumFormat interface represents a medium format. More...
interface | IKeyboard
| The IKeyboard interface represents the virtual machine's keyboard. More...
interface | IMouse
| The IMouse interface represents the virtual machine's mouse. More...
interface | IFramebuffer
interface | IFramebufferOverlay
| The IFramebufferOverlay interface represents an alpha blended overlay for displaying status icons above an IFramebuffer. More...
interface | IDisplay
| The IDisplay interface represents the virtual machine's display. More...
interface | INetworkAdapter
| Represents a virtual network adapter that is attached to a virtual machine. More...
interface | ISerialPort
| The ISerialPort interface represents the virtual serial port device. More...
interface | IParallelPort
| The IParallelPort interface represents the virtual parallel port device. More...
interface | IMachineDebugger
interface | IUSBController
interface | IUSBDevice
| The IUSBDevice interface represents a virtual USB device attached to the virtual machine. More...
interface | IUSBDeviceFilter
| The IUSBDeviceFilter interface represents an USB device filter used to perform actions on a group of USB devices. More...
interface | IHostUSBDevice
| The IHostUSBDevice interface represents a physical USB device attached to the host computer. More...
interface | IHostUSBDeviceFilter
| The IHostUSBDeviceFilter interface represents a global filter for a physical USB device used by the host computer. More...
interface | IAudioAdapter
| The IAudioAdapter interface represents the virtual audio adapter of the virtual machine. More...
interface | IVRDPServer
interface | ISharedFolder
| The ISharedFolder interface represents a folder in the host computer's file system accessible from the guest OS running inside a virtual machine using an associated logical name. More...
interface | IInternalSessionControl
interface | ISession
| The ISession interface represents a serialization primitive for virtual machines. More...
interface | IStorageController
| Represents a storage controller that is attached to a virtual machine (IMachine). More...
interface | IManagedObjectRef
| Managed object reference. More...
interface | IWebsessionManager
| Websession manager. More...
interface | IPerformanceMetric
| The IPerformanceMetric interface represents parameters of the given performance metric. More...
interface | IPerformanceCollector
| The IPerformanceCollector interface represents a service that collects and stores performance metrics data. More...
interface | INATEngine
| Interface for managing a NAT engine which is used with a virtual machine. More...
## Enumerations
enum | SettingsVersion { SettingsVersion_Null = 0, SettingsVersion_v1_0 = 1, SettingsVersion_v1_1 = 2, SettingsVersion_v1_2 = 3, SettingsVersion_v1_3pre = 4, SettingsVersion_v1_3 = 5, SettingsVersion_v1_4 = 6, SettingsVersion_v1_5 = 7, SettingsVersion_v1_6 = 8, SettingsVersion_v1_7 = 9, SettingsVersion_v1_8 = 10, SettingsVersion_v1_9 = 11, SettingsVersion_v1_10 = 12, SettingsVersion_Future = 13 }
| Settings version of VirtualBox settings files. More...
enum | AccessMode { AccessMode_ReadOnly = 1, AccessMode_ReadWrite = 2 }
| Access mode for opening files. More...
enum | MachineState { MachineState_Null = 0, MachineState_PoweredOff = 1, MachineState_Saved = 2, MachineState_Teleported = 3, MachineState_Aborted = 4, MachineState_Running = 5, MachineState_Paused = 6, MachineState_Stuck = 7, MachineState_Teleporting = 8, MachineState_LiveSnapshotting = 9, MachineState_Starting = 10, MachineState_Stopping = 11, MachineState_Saving = 12, MachineState_Restoring = 13, MachineState_TeleportingPausedVM = 14, MachineState_TeleportingIn = 15, MachineState_DeletingSnapshotOnline = 16, MachineState_DeletingSnapshotPaused = 17, MachineState_RestoringSnapshot = 18, MachineState_DeletingSnapshot = 19, MachineState_SettingUp = 20, MachineState_FirstOnline = 5, MachineState_LastOnline = 17, MachineState_FirstTransient = 8, MachineState_LastTransient = 20 }
| Virtual machine execution state. More...
enum | SessionState { SessionState_Null = 0, SessionState_Closed = 1, SessionState_Open = 2, SessionState_Spawning = 3, SessionState_Closing = 4 }
| Session state. More...
enum | CPUPropertyType { CPUPropertyType_Null = 0, CPUPropertyType_PAE = 1, CPUPropertyType_Synthetic = 2 }
| Virtual CPU property type. More...
enum | HWVirtExPropertyType { HWVirtExPropertyType_Null = 0, HWVirtExPropertyType_Enabled = 1, HWVirtExPropertyType_Exclusive = 2, HWVirtExPropertyType_VPID = 3, HWVirtExPropertyType_NestedPaging = 4, HWVirtExPropertyType_LargePages = 5, HWVirtExPropertyType_Force = 6 }
| Hardware virtualization property type. More...
enum | SessionType { SessionType_Null = 0, SessionType_Direct = 1, SessionType_Remote = 2, SessionType_Existing = 3 }
| Session type. More...
enum | DeviceType { DeviceType_Null = 0, DeviceType_Floppy = 1, DeviceType_DVD = 2, DeviceType_HardDisk = 3, DeviceType_Network = 4, DeviceType_USB = 5, DeviceType_SharedFolder = 6 }
| Device type. More...
enum | DeviceActivity { DeviceActivity_Null = 0, DeviceActivity_Idle = 1, DeviceActivity_Reading = 2, DeviceActivity_Writing = 3 }
| Device activity for IConsole::getDeviceActivity. More...
enum | ClipboardMode { ClipboardMode_Disabled = 0, ClipboardMode_HostToGuest = 1, ClipboardMode_GuestToHost = 2, ClipboardMode_Bidirectional = 3 }
| Host-Guest clipboard interchange mode. More...
enum | Scope { Scope_Global = 0, Scope_Machine = 1, Scope_Session = 2 }
| Scope of the operation. More...
enum | BIOSBootMenuMode { BIOSBootMenuMode_Disabled = 0, BIOSBootMenuMode_MenuOnly = 1, BIOSBootMenuMode_MessageAndMenu = 2 }
| BIOS boot menu mode. More...
enum | ProcessorFeature { ProcessorFeature_HWVirtEx = 0, ProcessorFeature_PAE = 1, ProcessorFeature_LongMode = 2, ProcessorFeature_NestedPaging = 3 }
| CPU features. More...
enum | FirmwareType { FirmwareType_BIOS = 1, FirmwareType_EFI = 2, FirmwareType_EFI32 = 3, FirmwareType_EFI64 = 4, FirmwareType_EFIDUAL = 5 }
| Firmware type. More...
enum | PointingHidType { PointingHidType_None = 1, PointingHidType_PS2Mouse = 2, PointingHidType_USBMouse = 3, PointingHidType_USBTablet = 4, PointingHidType_ComboMouse = 5 }
| Type of pointing device used in a virtual machine. More...
enum | KeyboardHidType { KeyboardHidType_None = 1, KeyboardHidType_PS2Keyboard = 2, KeyboardHidType_USBKeyboard = 3, KeyboardHidType_ComboKeyboard = 4 }
| Type of keyboard device used in a virtual machine. More...
enum | VFSType { VFSType_File = 1, VFSType_Cloud = 2, VFSType_S3 = 3, VFSType_WebDav = 4 }
| Virtual file systems supported by VFSExplorer. More...
enum | VFSFileType { VFSFileType_Unknown = 1, VFSFileType_Fifo = 2, VFSFileType_DevChar = 3, VFSFileType_Directory = 4, VFSFileType_DevBlock = 5, VFSFileType_File = 6, VFSFileType_SymLink = 7, VFSFileType_Socket = 8, VFSFileType_WhiteOut = 9 }
| File types known by VFSExplorer. More...
enum | VirtualSystemDescriptionType { VirtualSystemDescriptionType_Ignore = 1, VirtualSystemDescriptionType_OS = 2, VirtualSystemDescriptionType_Name = 3, VirtualSystemDescriptionType_Product = 4, VirtualSystemDescriptionType_Vendor = 5, VirtualSystemDescriptionType_Version = 6, VirtualSystemDescriptionType_ProductUrl = 7, VirtualSystemDescriptionType_VendorUrl = 8, VirtualSystemDescriptionType_Description = 9, VirtualSystemDescriptionType_License = 10, VirtualSystemDescriptionType_Miscellaneous = 11, VirtualSystemDescriptionType_CPU = 12, VirtualSystemDescriptionType_Memory = 13, VirtualSystemDescriptionType_HardDiskControllerIDE = 14, VirtualSystemDescriptionType_HardDiskControllerSATA = 15, VirtualSystemDescriptionType_HardDiskControllerSCSI = 16, VirtualSystemDescriptionType_HardDiskControllerSAS = 17, VirtualSystemDescriptionType_HardDiskImage = 18, VirtualSystemDescriptionType_Floppy = 19, VirtualSystemDescriptionType_CDROM = 20, VirtualSystemDescriptionType_NetworkAdapter = 21, VirtualSystemDescriptionType_USBController = 22, VirtualSystemDescriptionType_SoundCard = 23 }
| Used with IVirtualSystemDescription to describe the type of a configuration value. More...
enum | VirtualSystemDescriptionValueType { VirtualSystemDescriptionValueType_Reference = 1, VirtualSystemDescriptionValueType_Original = 2, VirtualSystemDescriptionValueType_Auto = 3, VirtualSystemDescriptionValueType_ExtraConfig = 4 }
| Used with IVirtualSystemDescription::getValuesByType to describe the value type to fetch. More...
enum | HostNetworkInterfaceMediumType { HostNetworkInterfaceMediumType_Unknown = 0, HostNetworkInterfaceMediumType_Ethernet = 1, HostNetworkInterfaceMediumType_PPP = 2, HostNetworkInterfaceMediumType_SLIP = 3 }
| Type of encapsulation. More...
enum | HostNetworkInterfaceStatus { HostNetworkInterfaceStatus_Unknown = 0, HostNetworkInterfaceStatus_Up = 1, HostNetworkInterfaceStatus_Down = 2 }
| Current status of the interface. More...
enum | HostNetworkInterfaceType { HostNetworkInterfaceType_Bridged = 1, HostNetworkInterfaceType_HostOnly = 2 }
| Network interface type. More...
enum | MediumState { MediumState_NotCreated = 0, MediumState_Created = 1, MediumState_LockedRead = 2, MediumState_LockedWrite = 3, MediumState_Inaccessible = 4, MediumState_Creating = 5, MediumState_Deleting = 6 }
| Virtual medium state. More...
enum | MediumType { MediumType_Normal = 0, MediumType_Immutable = 1, MediumType_Writethrough = 2, MediumType_Shareable = 3 }
| Virtual medium type. More...
enum | MediumVariant { MediumVariant_Standard = 0, MediumVariant_VmdkSplit2G = 0x01, MediumVariant_VmdkStreamOptimized = 0x04, MediumVariant_VmdkESX = 0x08, MediumVariant_Fixed = 0x10000, MediumVariant_Diff = 0x20000 }
| Virtual medium image variant. More...
enum | DataType { DataType_Int32 = 0, DataType_Int8 = 1, DataType_String = 2 }
enum | DataFlags { DataFlags_None = 0x00, DataFlags_Mandatory = 0x01, DataFlags_Expert = 0x02, DataFlags_Array = 0x04, DataFlags_FlagMask = 0x07 }
enum | MediumFormatCapabilities { MediumFormatCapabilities_Uuid = 0x01, MediumFormatCapabilities_CreateFixed = 0x02, MediumFormatCapabilities_CreateDynamic = 0x04, MediumFormatCapabilities_CreateSplit2G = 0x08, MediumFormatCapabilities_Differencing = 0x10, MediumFormatCapabilities_Asynchronous = 0x20, MediumFormatCapabilities_File = 0x40, MediumFormatCapabilities_Properties = 0x80, MediumFormatCapabilities_CapabilityMask = 0xFF }
| Medium format capability flags. More...
enum | MouseButtonState { MouseButtonState_LeftButton = 0x01, MouseButtonState_RightButton = 0x02, MouseButtonState_MiddleButton = 0x04, MouseButtonState_WheelUp = 0x08, MouseButtonState_WheelDown = 0x10, MouseButtonState_XButton1 = 0x20, MouseButtonState_XButton2 = 0x40, MouseButtonState_MouseStateMask = 0x7F }
| Mouse button state. More...
enum | FramebufferPixelFormat { FramebufferPixelFormat_Opaque = 0, FramebufferPixelFormat_FOURCC_RGB = 0x32424752 }
| Format of the video memory buffer. More...
enum | NetworkAttachmentType { NetworkAttachmentType_Null = 0, NetworkAttachmentType_NAT = 1, NetworkAttachmentType_Bridged = 2, NetworkAttachmentType_Internal = 3, NetworkAttachmentType_HostOnly = 4, NetworkAttachmentType_VDE = 5 }
| Network attachment type. More...
enum | NetworkAdapterType { NetworkAdapterType_Null = 0, NetworkAdapterType_Am79C970A = 1, NetworkAdapterType_Am79C973 = 2, NetworkAdapterType_I82540EM = 3, NetworkAdapterType_I82543GC = 4, NetworkAdapterType_I82545EM = 5, NetworkAdapterType_Virtio = 6 }
| Network adapter type. More...
enum | PortMode { PortMode_Disconnected = 0, PortMode_HostPipe = 1, PortMode_HostDevice = 2, PortMode_RawFile = 3 }
| The PortMode enumeration represents possible communication modes for the virtual serial port device. More...
enum | USBDeviceState { USBDeviceState_NotSupported = 0, USBDeviceState_Unavailable = 1, USBDeviceState_Busy = 2, USBDeviceState_Available = 3, USBDeviceState_Held = 4, USBDeviceState_Captured = 5 }
| USB device state. More...
enum | USBDeviceFilterAction { USBDeviceFilterAction_Null = 0, USBDeviceFilterAction_Ignore = 1, USBDeviceFilterAction_Hold = 2 }
| Actions for host USB device filters. More...
enum | AudioDriverType { AudioDriverType_Null = 0, AudioDriverType_WinMM = 1, AudioDriverType_OSS = 2, AudioDriverType_ALSA = 3, AudioDriverType_DirectSound = 4, AudioDriverType_CoreAudio = 5, AudioDriverType_MMPM = 6, AudioDriverType_Pulse = 7, AudioDriverType_SolAudio = 8 }
| Host audio driver type. More...
enum | AudioControllerType { AudioControllerType_AC97 = 0, AudioControllerType_SB16 = 1 }
| Virtual audio controller type. More...
enum | VRDPAuthType { VRDPAuthType_Null = 0, VRDPAuthType_External = 1, VRDPAuthType_Guest = 2 }
| VRDP authentication type. More...
enum | StorageBus { StorageBus_Null = 0, StorageBus_IDE = 1, StorageBus_SATA = 2, StorageBus_SCSI = 3, StorageBus_Floppy = 4, StorageBus_SAS = 5 }
| The bus type of the storage controller (IDE, SATA, SCSI, SAS or Floppy); see IStorageController::bus. More...
enum | StorageControllerType { StorageControllerType_Null = 0, StorageControllerType_LsiLogic = 1, StorageControllerType_BusLogic = 2, StorageControllerType_IntelAhci = 3, StorageControllerType_PIIX3 = 4, StorageControllerType_PIIX4 = 5, StorageControllerType_ICH6 = 6, StorageControllerType_I82078 = 7, StorageControllerType_LsiLogicSas = 8 }
| The exact variant of storage controller hardware presented to the guest; see IStorageController::controllerType. More...
enum | NATAliasMode { NATAliasMode_AliasLog = 0x1, NATAliasMode_AliasProxyOnly = 0x02, NATAliasMode_AliasUseSamePorts = 0x04 }
enum | NATProtocol { NATProtocol_UDP = 0, NATProtocol_TCP = 1 }
| Protocol definitions used with NAT port-forwarding rules. More...
## Variables
const HRESULT | VBOX_E_OBJECT_NOT_FOUND = 0x80BB0001
| Object corresponding to the supplied arguments does not exist.
const HRESULT | VBOX_E_INVALID_VM_STATE = 0x80BB0002
| Current virtual machine state prevents the operation.
const HRESULT | VBOX_E_VM_ERROR = 0x80BB0003
| Virtual machine error occurred attempting the operation.
const HRESULT | VBOX_E_FILE_ERROR = 0x80BB0004
| File not accessible or erroneous file contents.
const HRESULT | VBOX_E_IPRT_ERROR = 0x80BB0005
| Runtime subsystem error.
const HRESULT | VBOX_E_PDM_ERROR = 0x80BB0006
| Pluggable Device Manager error.
const HRESULT | VBOX_E_INVALID_OBJECT_STATE = 0x80BB0007
| Current object state prohibits operation.
const HRESULT | VBOX_E_HOST_ERROR = 0x80BB0008
| Host operating system related error.
const HRESULT | VBOX_E_NOT_SUPPORTED = 0x80BB0009
| Requested operation is not supported.
const HRESULT | VBOX_E_XML_ERROR = 0x80BB000A
| Invalid XML found.
const HRESULT | VBOX_E_INVALID_SESSION_STATE = 0x80BB000B
| Current session state prohibits operation.
const HRESULT | VBOX_E_OBJECT_IN_USE = 0x80BB000C
| Object being in use prohibits operation.
const HRESULT | VBOX_E_DONT_CALL_AGAIN = 0x80BB000D
| Returned by callback methods which does not need to be called again because the client does not actually make use of them.

## Enumeration Type Documentation

enum SettingsVersion

Settings version of VirtualBox settings files.

This is written to the "version" attribute of the root "VirtualBox" element in the settings file XML and indicates which VirtualBox version wrote the file.

Interface ID:
  `{52BD6F5F-1ADB-4493-975D-581A9C4B803F}`

Enumerator:

  SettingsVersion_Null | Null value, indicates invalid version.
  SettingsVersion_v1_0 | Legacy settings version, not currently supported.
  SettingsVersion_v1_1 | Legacy settings version, not currently supported.
  SettingsVersion_v1_2 | Legacy settings version, not currently supported.
  SettingsVersion_v1_3pre | Legacy settings version, not currently supported.
  SettingsVersion_v1_3 | Settings version "1.3", written by VirtualBox 2.0.12.
  SettingsVersion_v1_4 | Intermediate settings version, understood by VirtualBox 2.1.x.
  SettingsVersion_v1_5 | Intermediate settings version, understood by VirtualBox 2.1.x.
  SettingsVersion_v1_6 | Settings version "1.6", written by VirtualBox 2.1.4 (at least).
  SettingsVersion_v1_7 | Settings version "1.7", written by VirtualBox 2.2.x and 3.0.x.
  SettingsVersion_v1_8 | Intermediate settings version "1.8", understood by VirtualBox 3.1.x.
  SettingsVersion_v1_9 | Settings version "1.9", written by VirtualBox 3.1.x.
  SettingsVersion_v1_10 | Settings version "1.10", written by VirtualBox 3.2.x.
  SettingsVersion_Future | Settings version greater than "1.10", written by a future VirtualBox version.

enum AccessMode

Access mode for opening files.

Interface ID:
  `{1DA0007C-DDF7-4BE8-BCAC-D84A1558785F}`

Enumerator:

  AccessMode_ReadOnly |
  AccessMode_ReadWrite |

enum MachineState

Virtual machine execution state.

This enumeration represents possible values of the IMachine::state attribute.

Below is the basic virtual machine state diagram. It shows how the state changes during virtual machine execution. The text in square braces shows a method of the IConsole interface that performs the given state transition.

                +---------[powerDown()] <- Stuck <--[failure]-+
                V                                             |
        +-> PoweredOff --+-->[powerUp()]--> Starting --+      | +-----[resume()]-----+
        |                |                             |      | V                    |
        |   Aborted -----+                             +--> Running --[pause()]--> Paused
        |                                              |      ^ |                   ^ |
        |   Saved -----------[powerUp()]--> Restoring -+      | |                   | |
        |     ^                                               | |                   | |
        |     |     +-----------------------------------------+-|-------------------+ +
        |     |     |                                           |                     |
        |     |     +-- Saving <--------[takeSnapshot()]<-------+---------------------+
        |     |                                                 |                     |
        |     +-------- Saving <--------[saveState()]<----------+---------------------+
        |                                                       |                     |
        +-------------- Stopping -------[powerDown()]<----------+---------------------+

Note that states to the right from PoweredOff, Aborted and Saved in the above diagram are called online VM states. These states represent the virtual machine which is being executed in a dedicated process (usually with a GUI window attached to it where you can see the activity of the virtual machine and interact with it). There are two special pseudo-states, FirstOnline and LastOnline, that can be used in relational expressions to detect if the given machine state is online or not:

            if (machine.GetState() >= MachineState_FirstOnline &&
                machine.GetState() <= MachineState_LastOnline)
            {
                ...the machine is being executed...
            }

When the virtual machine is in one of the online VM states (that is, being executed), only a few machine settings can be modified. Methods working with such settings contain an explicit note about that. An attempt to change any oter setting or perform a modifying operation during this time will result in the VBOX_E_INVALID_VM_STATE error.

All online states except Running, Paused and Stuck are transitional: they represent temporary conditions of the virtual machine that will last as long as the operation that initiated such a condition.

The Stuck state is a special case. It means that execution of the machine has reached the "Guru Meditation" condition. This condition indicates an internal VMM (virtual machine manager) failure which may happen as a result of either an unhandled low-level virtual hardware exception or one of the recompiler exceptions (such as the too-many-traps condition).

Note also that any online VM state may transit to the Aborted state. This happens if the process that is executing the virtual machine terminates unexpectedly (for example, crashes). Other than that, the Aborted state is equivalent to PoweredOff.

There are also a few additional state diagrams that do not deal with virtual machine execution and therefore are shown separately. The states shown on these diagrams are called offline VM states (this includes PoweredOff, Aborted and Saved too).

The first diagram shows what happens when a lengthy setup operation is being executed (such as IMachine::attachDevice).

        +----------------------------------(same state as before the call)------+
        |                                                                       |
        +-> PoweredOff --+                                                      |
        |                |                                                      |
        |-> Aborted -----+-->[lengthy VM configuration call] --> SettingUp -----+
        |                |
        +-> Saved -------+

The next two diagrams demonstrate the process of taking a snapshot of a powered off virtual machine, restoring the state to that as of a snapshot or deleting a snapshot, respectively.

        +----------------------------------(same state as before the call)------+
        |                                                                       |
        +-> PoweredOff --+                                                      |
        |                +-->[takeSnapshot()] -------------------> Saving ------+
        +-> Aborted -----+

        +-> PoweredOff --+
        |                |
        |   Aborted -----+-->[restoreSnapshot()    ]-------> RestoringSnapshot -+
        |                |   [deleteSnapshot()     ]-------> DeletingSnapshot --+
        +-> Saved -------+                                                      |
        |                                                                       |
        +---(Saved if restored from an online snapshot, PoweredOff otherwise)---+

Note that the Saving state is present in both the offline state group and online state group. Currently, the only way to determine what group is assumed in a particular case is to remember the previous machine state: if it was Running or Paused, then Saving is an online state, otherwise it is an offline state. This inconsistency may be removed in one of the future versions of VirtualBox by adding a new state.

Interface ID:
  `{E998D075-543A-41FC-8AA9-5CA3E92393FD}`

Enumerator:

  MachineState_Null | Null value (never used by the API).
  MachineState_PoweredOff | The machine is not running and has no saved execution state; it has either never been started or been shut down successfully.
  MachineState_Saved | The machine is not currently running, but the execution state of the machine has been saved to an external file when it was running, from where it can be resumed.
  MachineState_Teleported | The machine was teleported to a different host (or process) and then powered off. Take care when powering it on again may corrupt resources it shares with the teleportation target (e.g. disk and network).
  MachineState_Aborted | The process running the machine has terminated abnormally. This may indicate a crash of the VM process in host execution context, or the VM process has been terminated externally.
  MachineState_Running | The machine is currently being executed.
  MachineState_Paused | Execution of the machine has been paused.
  MachineState_Stuck | Execution of the machine has reached the "Guru Meditation" condition. This indicates a severe error in the hypervisor itself.
  MachineState_Teleporting | The machine is about to be teleported to a different host or process. It is possible to pause a machine in this state, but it will go to the MachineState_TeleportingPausedVM state and it will not be possible to resume it again unless the teleportation fails.
  MachineState_LiveSnapshotting | A live snapshot is being taken. The machine is running normally, but some of the runtime configuration options are inaccessible. Also, if paused while in this state it will transition to MachineState_Saving and it will not be resume the execution until the snapshot operation has completed.
  MachineState_Starting | Machine is being started after powering it on from a zero execution state.
  MachineState_Stopping | Machine is being normally stopped powering it off, or after the guest OS has initiated a shutdown sequence.
  MachineState_Saving | Machine is saving its execution state to a file, or an online snapshot of the machine is being taken.
  MachineState_Restoring | Execution state of the machine is being restored from a file after powering it on from the saved execution state.
  MachineState_TeleportingPausedVM | The machine is being teleported to another host or process, but it is not running. This is the paused variant of the MachineState_Teleporting state.
  MachineState_TeleportingIn | Teleporting the machine state in from another host or process.
  MachineState_DeletingSnapshotOnline | Like `DeletingSnapshot`, but the merging of media is ongoing in the background while the machine is running.
  MachineState_DeletingSnapshotPaused | Like `DeletingSnapshotOnline`, but the machine was paused when the merging of differencing media was started.
  MachineState_RestoringSnapshot | A machine snapshot is being restored; this typically does not take long.
  MachineState_DeletingSnapshot | A machine snapshot is being deleted; this can take a long time since this may require merging differencing media. This value indicates that the machine is not running while the snapshot is being deleted.
  MachineState_SettingUp | Lengthy setup operation is in progress.
  MachineState_FirstOnline | Pseudo-state: first online state (for use in relational expressions).
  MachineState_LastOnline | Pseudo-state: last online state (for use in relational expressions).
  MachineState_FirstTransient | Pseudo-state: first transient state (for use in relational expressions).
  MachineState_LastTransient | Pseudo-state: last transient state (for use in relational expressions).

enum SessionState

Session state.

This enumeration represents possible values of IMachine::sessionState and ISession::state attributes. See individual enumerator descriptions for the meaning for every value.

Interface ID:
  `{CF2700C0-EA4B-47AE-9725-7810114B94D8}`

Enumerator:

  SessionState_Null | Null value (never used by the API).
  SessionState_Closed | The machine has no open sessions (IMachine::sessionState); the session is closed (ISession::state).
  SessionState_Open | The machine has an open direct session (IMachine::sessionState); the session is open (ISession::state).
  SessionState_Spawning | A new (direct) session is being opened for the machine as a result of IVirtualBox::openRemoteSession call (IMachine::sessionState or ISession::state). This state also occurs as a short transient state when a new direct session is opened by calling IVirtualBox::openSession.
  SessionState_Closing | The direct session is being closed (IMachine::sessionState); the session is being closed (ISession::state).

enum CPUPropertyType

Virtual CPU property type.

This enumeration represents possible values of the IMachine get- and setCPUProperty methods.

Interface ID:
  `{24D356A6-2F45-4ABD-B977-1CBE9C4701F5}`

Enumerator:

  CPUPropertyType_Null | Null value (never used by the API).
  CPUPropertyType_PAE | This setting determines whether VirtualBox will expose the Physical Address Extension (PAE) feature of the host CPU to the guest. Note that in case PAE is not available, it will not be reported.
  CPUPropertyType_Synthetic | This setting determines whether VirtualBox will expose a synthetic CPU to the guest to allow teleporting between host systems that differ significantly.

enum HWVirtExPropertyType

Hardware virtualization property type.

This enumeration represents possible values for the IMachine::getHWVirtExProperty and IMachine::setHWVirtExProperty methods.

Interface ID:
  `{CE81DFDD-D2B8-4A90-BBEA-40EE8B7FFCEE}`

Enumerator:

  HWVirtExPropertyType_Null | Null value (never used by the API).
  HWVirtExPropertyType_Enabled | Whether hardware virtualization (VT-x/AMD-V) is enabled at all. If such extensions are not available, they will not be used.
  HWVirtExPropertyType_Exclusive | Whether hardware virtualization is used exclusively by VirtualBox. When enabled, VirtualBox assumes it can acquire full and exclusive access to the VT-x or AMD-V feature of the host. To share these with other hypervisors, you must disable this property.
  HWVirtExPropertyType_VPID | Whether VT-x VPID is enabled. If this extension is not available, it will not be used.
  HWVirtExPropertyType_NestedPaging | Whether Nested Paging is enabled. If this extension is not available, it will not be used.
  HWVirtExPropertyType_LargePages | Whether large page allocation is enabled; requires nested paging and a 64 bits host.
  HWVirtExPropertyType_Force | Whether the VM should fail to start if hardware virtualization (VT-x/AMD-V) cannot be used. If not set, there will be an automatic fallback to software virtualization.

enum SessionType

Session type.

This enumeration represents possible values of the ISession::type attribute.

Interface ID:
  `{A13C02CB-0C2C-421E-8317-AC0E8AAA153A}`

Enumerator:

  SessionType_Null | Null value (never used by the API).
  SessionType_Direct | Direct session (opened by IVirtualBox::openSession).
  SessionType_Remote | Remote session (opened by IVirtualBox::openRemoteSession).
  SessionType_Existing | Existing session (opened by IVirtualBox::openExistingSession).

enum DeviceType

Device type.

Interface ID:
  `{6D9420F7-0B56-4636-99F9-7346F1B01E57}`

Enumerator:

  DeviceType_Null | Null value, may also mean "no device" (not allowed for IConsole::getDeviceActivity).
  DeviceType_Floppy | Floppy device.
  DeviceType_DVD | CD/DVD-ROM device.
  DeviceType_HardDisk | Hard disk device.
  DeviceType_Network | Network device.
  DeviceType_USB | USB device.
  DeviceType_SharedFolder | Shared folder device.

enum DeviceActivity

Device activity for IConsole::getDeviceActivity.

Interface ID:
  `{6FC8AEAA-130A-4EB5-8954-3F921422D707}`

Enumerator:

  DeviceActivity_Null |
  DeviceActivity_Idle |
  DeviceActivity_Reading |
  DeviceActivity_Writing |

enum ClipboardMode

Host-Guest clipboard interchange mode.

Interface ID:
  `{33364716-4008-4701-8F14-BE0FA3D62950}`

Enumerator:

  ClipboardMode_Disabled |
  ClipboardMode_HostToGuest |
  ClipboardMode_GuestToHost |
  ClipboardMode_Bidirectional |

enum Scope

Scope of the operation.

A generic enumeration used in various methods to define the action or argument scope.

Interface ID:
  `{7C91096E-499E-4ECA-9F9B-9001438D7855}`

Enumerator:

  Scope_Global |
  Scope_Machine |
  Scope_Session |

enum BIOSBootMenuMode

BIOS boot menu mode.

Interface ID:
  `{AE4FB9F7-29D2-45B4-B2C7-D579603135D5}`

Enumerator:

  BIOSBootMenuMode_Disabled |
  BIOSBootMenuMode_MenuOnly |
  BIOSBootMenuMode_MessageAndMenu |

enum ProcessorFeature

CPU features.

Interface ID:
  `{64C38E6B-8BCF-45AD-AC03-9B406287C5BF}`

Enumerator:

  ProcessorFeature_HWVirtEx |
  ProcessorFeature_PAE |
  ProcessorFeature_LongMode |
  ProcessorFeature_NestedPaging |

enum FirmwareType

Firmware type.

Interface ID:
  `{B903F264-C230-483E-AC74-2B37CE60D371}`

Enumerator:

  FirmwareType_BIOS | BIOS Firmware.
  FirmwareType_EFI | EFI Firmware, bitness detetced basing on OS type.
  FirmwareType_EFI32 | Efi firmware, 32-bit.
  FirmwareType_EFI64 | Efi firmware, 64-bit.
  FirmwareType_EFIDUAL | Efi firmware, combined 32 and 64-bit.

enum PointingHidType

Type of pointing device used in a virtual machine.

Interface ID:
  `{0D3C17A2-821A-4B2E-AE41-890C6C60AA97}`

Enumerator:

  PointingHidType_None | No mouse.
  PointingHidType_PS2Mouse | PS/2 auxillary device, a.k.a. mouse.
  PointingHidType_USBMouse | USB mouse (relative pointer).
  PointingHidType_USBTablet | USB tablet (absolute pointer).
  PointingHidType_ComboMouse | Combined device, working as PS/2 or USB mouse, depending on guest behavior. Using of such device can have negative performance implications.

enum KeyboardHidType

Type of keyboard device used in a virtual machine.

Interface ID:
  `{5A5B0996-3A3E-44BB-9019-56979812CBCC}`

Enumerator:

  KeyboardHidType_None | No keyboard.
  KeyboardHidType_PS2Keyboard | PS/2 keyboard.
  KeyboardHidType_USBKeyboard | USB keyboard.
  KeyboardHidType_ComboKeyboard | Combined device, working as PS/2 or USB keyboard, depending on guest behavior. Using of such device can have negative performance implications.

enum VFSType

Virtual file systems supported by VFSExplorer.

Interface ID:
  `{813999BA-B949-48A8-9230-AADC6285E2F2}`

Enumerator:

  VFSType_File |
  VFSType_Cloud |
  VFSType_S3 |
  VFSType_WebDav |

enum VFSFileType

File types known by VFSExplorer.

Interface ID:
  `{714333CD-44E2-415F-A245-D378FA9B1242}`

Enumerator:

  VFSFileType_Unknown |
  VFSFileType_Fifo |
  VFSFileType_DevChar |
  VFSFileType_Directory |
  VFSFileType_DevBlock |
  VFSFileType_File |
  VFSFileType_SymLink |
  VFSFileType_Socket |
  VFSFileType_WhiteOut |

enum VirtualSystemDescriptionType

Used with IVirtualSystemDescription to describe the type of a configuration value.

Interface ID:
  `{C0F8F135-3A1D-417D-AFA6-B38B95A91F90}`

Enumerator:

  VirtualSystemDescriptionType_Ignore |
  VirtualSystemDescriptionType_OS |
  VirtualSystemDescriptionType_Name |
  VirtualSystemDescriptionType_Product |
  VirtualSystemDescriptionType_Vendor |
  VirtualSystemDescriptionType_Version |
  VirtualSystemDescriptionType_ProductUrl |
  VirtualSystemDescriptionType_VendorUrl |
  VirtualSystemDescriptionType_Description |
  VirtualSystemDescriptionType_License |
  VirtualSystemDescriptionType_Miscellaneous |
  VirtualSystemDescriptionType_CPU |
  VirtualSystemDescriptionType_Memory |
  VirtualSystemDescriptionType_HardDiskControllerIDE |
  VirtualSystemDescriptionType_HardDiskControllerSATA |
  VirtualSystemDescriptionType_HardDiskControllerSCSI |
  VirtualSystemDescriptionType_HardDiskControllerSAS |
  VirtualSystemDescriptionType_HardDiskImage |
  VirtualSystemDescriptionType_Floppy |
  VirtualSystemDescriptionType_CDROM |
  VirtualSystemDescriptionType_NetworkAdapter |
  VirtualSystemDescriptionType_USBController |
  VirtualSystemDescriptionType_SoundCard |

enum VirtualSystemDescriptionValueType

Used with IVirtualSystemDescription::getValuesByType to describe the value type to fetch.

Interface ID:
  `{56D9403F-3425-4118-9919-36F2A9B8C77C}`

Enumerator:

  VirtualSystemDescriptionValueType_Reference |
  VirtualSystemDescriptionValueType_Original |
  VirtualSystemDescriptionValueType_Auto |
  VirtualSystemDescriptionValueType_ExtraConfig |

enum HostNetworkInterfaceMediumType

Type of encapsulation.

Ethernet encapsulation includes both wired and wireless Ethernet connections.

See also:
  IHostNetworkInterface

Interface ID:
  `{1AA54AAF-2497-45A2-BFB1-8EB225E93D5B}`

Enumerator:

  HostNetworkInterfaceMediumType_Unknown | The type of interface cannot be determined.
  HostNetworkInterfaceMediumType_Ethernet | Ethernet frame encapsulation.
  HostNetworkInterfaceMediumType_PPP | Point-to-point protocol encapsulation.
  HostNetworkInterfaceMediumType_SLIP | Serial line IP encapsulation.

enum HostNetworkInterfaceStatus

Current status of the interface.

See also:
  IHostNetworkInterface

Interface ID:
  `{CC474A69-2710-434B-8D99-C38E5D5A6F41}`

Enumerator:

  HostNetworkInterfaceStatus_Unknown | The state of interface cannot be determined.
  HostNetworkInterfaceStatus_Up | The interface is fully operational.
  HostNetworkInterfaceStatus_Down | The interface is not functioning.

enum HostNetworkInterfaceType

Network interface type.

Interface ID:
  `{67431B00-9946-48A2-BC02-B25C5919F4F3}`

Enumerator:

  HostNetworkInterfaceType_Bridged |
  HostNetworkInterfaceType_HostOnly |

enum MediumState

Virtual medium state.

See also:
  IMedium

Interface ID:
  `{EF41E980-E012-43CD-9DEA-479D4EF14D13}`

Enumerator:

  MediumState_NotCreated | Associated medium storage does not exist (either was not created yet or was deleted).
  MediumState_Created | Associated storage exists and accessible; this gets set if the accessibility check performed by IMedium::refreshState was successful.
  MediumState_LockedRead | Medium is locked for reading (see IMedium::lockRead), no data modification is possible.
  MediumState_LockedWrite | Medium is locked for writing (see IMedium::lockWrite), no concurrent data reading or modification is possible.
  MediumState_Inaccessible | Medium accessiblity check (see IMedium::refreshState) has not yet been performed, or else, associated medium storage is not accessible. In the first case, IMedium::lastAccessError is empty, in the second case, it describes the error that occured.
  MediumState_Creating | Associated medium storage is being created.
  MediumState_Deleting | Associated medium storage is being deleted.

enum MediumType

Virtual medium type.

See also:
  IMedium

Interface ID:
  `{46BF1FD4-AD86-4DED-8C49-28BD2D148E5A}`

Enumerator:

  MediumType_Normal | Normal medium (attached directly or indirectly, preserved when taking snapshots).
  MediumType_Immutable | Immutable medium (attached indirectly, changes are wiped out the next time the virtual machine is started).
  MediumType_Writethrough | Write through medium (attached directly, ignored when taking snapshots).
  MediumType_Shareable | Allow using this medium concurrently by several machines. Note: Present since VirtualBox 3.2.0, and accepted since 3.2.8.

enum MediumVariant

Virtual medium image variant.

More than one flag may be set.

See also:
  IMedium

Interface ID:
  `{584EA502-143B-4AB0-AD14-D1028FDF0316}`

Enumerator:

  MediumVariant_Standard | No particular variant requested, results in using the backend default.
  MediumVariant_VmdkSplit2G | VMDK image split in chunks of less than 2GByte.
  MediumVariant_VmdkStreamOptimized | VMDK streamOptimized image. Special import/export format which is read-only/append-only.
  MediumVariant_VmdkESX | VMDK format variant used on ESX products.
  MediumVariant_Fixed | Fixed image. Only allowed for base images.
  MediumVariant_Diff | Differencing image. Only allowed for child images.

enum DataType

Enumerator:

  DataType_Int32 |
  DataType_Int8 |
  DataType_String |

enum DataFlags

Enumerator:

  DataFlags_None |
  DataFlags_Mandatory |
  DataFlags_Expert |
  DataFlags_Array |
  DataFlags_FlagMask |

enum MediumFormatCapabilities

Medium format capability flags.

Interface ID:
  `{70FCF810-99E8-4EDC-AEE4-7F51D489E657}`

Enumerator:

  MediumFormatCapabilities_Uuid | Supports UUIDs as expected by VirtualBox code.
  MediumFormatCapabilities_CreateFixed | Supports creating fixed size images, allocating all space instantly.
  MediumFormatCapabilities_CreateDynamic | Supports creating dynamically growing images, allocating space on demand.
  MediumFormatCapabilities_CreateSplit2G | Supports creating images split in chunks of a bit less than 2 GBytes.
  MediumFormatCapabilities_Differencing | Supports being used as a format for differencing media (see IMedium::createDiffStorage).
  MediumFormatCapabilities_Asynchronous | Supports asynchronous I/O operations for at least some configurations.
  MediumFormatCapabilities_File | The format backend operates on files (the IMedium::location attribute of the medium specifies a file used to store medium data; for a list of supported file extensions see IMediumFormat::fileExtensions).
  MediumFormatCapabilities_Properties | The format backend uses the property interface to configure the storage location and properties (the IMediumFormat::describeProperties method is used to get access to properties supported by the given medium format).
  MediumFormatCapabilities_CapabilityMask |

enum MouseButtonState

Mouse button state.

Interface ID:
  `{9EE094B8-B28A-4D56-A166-973CB588D7F8}`

Enumerator:

  MouseButtonState_LeftButton |
  MouseButtonState_RightButton |
  MouseButtonState_MiddleButton |
  MouseButtonState_WheelUp |
  MouseButtonState_WheelDown |
  MouseButtonState_XButton1 |
  MouseButtonState_XButton2 |
  MouseButtonState_MouseStateMask |

enum FramebufferPixelFormat

Format of the video memory buffer.

Constants represented by this enum can be used to test for particular values of IFramebuffer::pixelFormat. See also IFramebuffer::requestResize.

See also www.fourcc.org for more information about FOURCC pixel formats.

Interface ID:
  `{7ACFD5ED-29E3-45E3-8136-73C9224F3D2D}`

Enumerator:

  FramebufferPixelFormat_Opaque | Unknown buffer format (the user may not assume any particular format of the buffer).
  FramebufferPixelFormat_FOURCC_RGB | Basic RGB format (IFramebuffer::bitsPerPixel determines the bit layout).

enum NetworkAttachmentType

Network attachment type.

Interface ID:
  `{44BCE1EE-99F7-4E8E-89FC-80597FD9EEAF}`

Enumerator:

  NetworkAttachmentType_Null | Null value, also means "not attached".
  NetworkAttachmentType_NAT |
  NetworkAttachmentType_Bridged |
  NetworkAttachmentType_Internal |
  NetworkAttachmentType_HostOnly |
  NetworkAttachmentType_VDE |

enum NetworkAdapterType

Network adapter type.

Interface ID:
  `{3C2281E4-D952-4E87-8C7D-24379CB6A81C}`

Enumerator:

  NetworkAdapterType_Null | Null value (never used by the API).
  NetworkAdapterType_Am79C970A | AMD PCNet-PCI II network card (Am79C970A).
  NetworkAdapterType_Am79C973 | AMD PCNet-FAST III network card (Am79C973).
  NetworkAdapterType_I82540EM | Intel PRO/1000 MT Desktop network card (82540EM).
  NetworkAdapterType_I82543GC | Intel PRO/1000 T Server network card (82543GC).
  NetworkAdapterType_I82545EM | Intel PRO/1000 MT Server network card (82545EM).
  NetworkAdapterType_Virtio | Virtio network device.

enum PortMode

The PortMode enumeration represents possible communication modes for the virtual serial port device.

Interface ID:
  `{533B5FE3-0185-4197-86A7-17E37DD39D76}`

Enumerator:

  PortMode_Disconnected | Virtual device is not attached to any real host device.
  PortMode_HostPipe | Virtual device is attached to a host pipe.
  PortMode_HostDevice | Virtual device is attached to a host device.
  PortMode_RawFile | Virtual device is attached to a raw file.

enum USBDeviceState

USB device state.

This enumeration represents all possible states of the USB device physically attached to the host computer regarding its state on the host computer and availability to guest computers (all currently running virtual machines).

Once a supported USB device is attached to the host, global USB filters (IHost::USBDeviceFilters) are activated. They can either ignore the device, or put it to USBDeviceState_Held state, or do nothing. Unless the device is ignored by global filters, filters of all currently running guests (IUSBController::deviceFilters) are activated that can put it to USBDeviceState_Captured state.

If the device was ignored by global filters, or didn't match any filters at all (including guest ones), it is handled by the host in a normal way. In this case, the device state is determined by the host and can be one of USBDeviceState_Unavailable, USBDeviceState_Busy or USBDeviceState_Available, depending on the current device usage.

Besides auto-capturing based on filters, the device can be manually captured by guests (IConsole::attachUSBDevice) if its state is USBDeviceState_Busy, USBDeviceState_Available or USBDeviceState_Held.

Note:
  Due to differences in USB stack implementations in Linux and Win32, states USBDeviceState_Busy and USBDeviceState_vailable are applicable only to the Linux version of the product. This also means that (IConsole::attachUSBDevice) can only succeed on Win32 if the device state is USBDeviceState_Held.

See also:
  IHostUSBDevice, IHostUSBDeviceFilter

Interface ID:
  `{B99A2E65-67FB-4882-82FD-F3E5E8193AB4}`

Enumerator:

  USBDeviceState_NotSupported | Not supported by the VirtualBox server, not available to guests.
  USBDeviceState_Unavailable | Being used by the host computer exclusively, not available to guests.
  USBDeviceState_Busy | Being used by the host computer, potentially available to guests.
  USBDeviceState_Available | Not used by the host computer, available to guests (the host computer can also start using the device at any time).
  USBDeviceState_Held | Held by the VirtualBox server (ignored by the host computer), available to guests.
  USBDeviceState_Captured | Captured by one of the guest computers, not available to anybody else.

enum USBDeviceFilterAction

Actions for host USB device filters.

See also:
  IHostUSBDeviceFilter, USBDeviceState

Interface ID:
  `{CBC30A49-2F4E-43B5-9DA6-121320475933}`

Enumerator:

  USBDeviceFilterAction_Null | Null value (never used by the API).
  USBDeviceFilterAction_Ignore | Ignore the matched USB device.
  USBDeviceFilterAction_Hold | Hold the matched USB device.

enum AudioDriverType

Host audio driver type.

Interface ID:
  `{4BCC3D73-C2FE-40DB-B72F-0C2CA9D68496}`

Enumerator:

  AudioDriverType_Null | Null value, also means "dummy audio driver".
  AudioDriverType_WinMM | Windows multimedia (Windows hosts only).
  AudioDriverType_OSS | Open Sound System (Linux hosts only).
  AudioDriverType_ALSA | Advanced Linux Sound Architecture (Linux hosts only).
  AudioDriverType_DirectSound | DirectSound (Windows hosts only).
  AudioDriverType_CoreAudio | CoreAudio (Mac hosts only).
  AudioDriverType_MMPM | Reserved for historical reasons.
  AudioDriverType_Pulse | PulseAudio (Linux hosts only).
  AudioDriverType_SolAudio | Solaris audio (Solaris hosts only).

enum AudioControllerType

Virtual audio controller type.

Interface ID:
  `{7AFD395C-42C3-444E-8788-3CE80292F36C}`

Enumerator:

  AudioControllerType_AC97 |
  AudioControllerType_SB16 |

enum VRDPAuthType

VRDP authentication type.

Interface ID:
  `{3D91887A-B67F-4B33-85BF-2DA7AB1EA83A}`

Enumerator:

  VRDPAuthType_Null | Null value, also means "no authentication".
  VRDPAuthType_External |
  VRDPAuthType_Guest |

enum StorageBus

The bus type of the storage controller (IDE, SATA, SCSI, SAS or Floppy); see IStorageController::bus.

Interface ID:
  `{EEE67AB3-668D-4EF5-91E0-7025FE4A0D7A}`

Enumerator:

  StorageBus_Null | `null` value. Never used by the API.
  StorageBus_IDE |
  StorageBus_SATA |
  StorageBus_SCSI |
  StorageBus_Floppy |
  StorageBus_SAS |

enum StorageControllerType

The exact variant of storage controller hardware presented to the guest; see IStorageController::controllerType.

Interface ID:
  `{8A412B8A-F43E-4456-BD37-B474F0879A58}`

Enumerator:

  StorageControllerType_Null | `null` value. Never used by the API.
  StorageControllerType_LsiLogic | A SCSI controller of the LsiLogic variant.
  StorageControllerType_BusLogic | A SCSI controller of the BusLogic variant.
  StorageControllerType_IntelAhci | An Intel AHCI SATA controller; this is the only variant for SATA.
  StorageControllerType_PIIX3 | An IDE controller of the PIIX3 variant.
  StorageControllerType_PIIX4 | An IDE controller of the PIIX4 variant.
  StorageControllerType_ICH6 | An IDE controller of the ICH6 variant.
  StorageControllerType_I82078 | A floppy disk controller; this is the only variant for floppy drives.
  StorageControllerType_LsiLogicSas | A variant of the LsiLogic controller using SAS.

enum NATAliasMode

Interface ID:
  `{67772168-50D9-11DF-9669-7FB714EE4FA1}`

Enumerator:

  NATAliasMode_AliasLog |
  NATAliasMode_AliasProxyOnly |
  NATAliasMode_AliasUseSamePorts |

enum NATProtocol

Protocol definitions used with NAT port-forwarding rules.

Interface ID:
  `{E90164BE-EB03-11DE-94AF-FFF9B1C1B19F}`

Enumerator:

  NATProtocol_UDP | Port-forwarding uses UDP protocol.
  NATProtocol_TCP | Port-forwarding uses TCP protocol.