# IHost Interface Reference

The IHost interface represents the physical machine that this VirtualBox installation runs on. More...

List of all members.

## Public Member Functions
void | getProcessorSpeed (in unsigned long cpuId,[retval] out unsigned long speed)
| Query the (approximate) maximum speed of a specified host CPU in Megahertz.
void | getProcessorDescription (in unsigned long cpuId,[retval] out wstring description)
| Query the model string of a specified host CPU.
void | createUSBDeviceFilter (in wstring name,[retval] out IHostUSBDeviceFilter filter)
| Creates a new USB device filter.
void | insertUSBDeviceFilter (in unsigned long position, in IHostUSBDeviceFilter filter)
| Inserts the given USB device to the specified position in the list of filters.
void | removeUSBDeviceFilter (in unsigned long position,[retval] out IHostUSBDeviceFilter filter)
| Removes a USB device filter from the specified position in the list of filters.
void | createHostNetworkInterface (in wstring name, out IHostNetworkInterface hostInterface,[retval] out IProgress progress)
| Creates a new adapter for Host Interface Networking.
void | removeHostNetworkInterface (in uuid id, out IHostNetworkInterface hostInterface,[retval] out IProgress progress)
| Removes the given host network interface.
## Public Attributes
readonly attribute IHostDVDDriveCollection | DVDDrives
| List of DVD drives available on the host.
readonly attribute IHostFloppyDriveCollection | floppyDrives
| List of floppy drives available on the host.
readonly attribute IHostUSBDeviceCollection | USBDevices
| List of USB devices currently attached to the host.
readonly attribute IHostUSBDeviceFilterCollection | USBDeviceFilters
| List of USB device filters in action.
readonly attribute IHostNetworkInterfaceCollection | networkInterfaces
| List of host network interfaces currently defined on the host.
readonly attribute unsigned long | processorCount
| Number of (logical) CPUs installed in the host system.
readonly attribute unsigned long | processorOnlineCount
| Number of (logical) CPUs online in the host system.
readonly attribute unsigned long | memorySize
| Amount of system memory in megabytes installed in the host system.
readonly attribute unsigned long | memoryAvailable
| Available system memory in the host system.
readonly attribute wstring | operatingSystem
| Name of the host system's operating system.
readonly attribute wstring | OSVersion
| Host operating system's version string.
readonly attribute long long | UTCTime
| Returns the current host time in milliseconds since 1970-01-01 UTC.

## Detailed Description

The IHost interface represents the physical machine that this VirtualBox installation runs on.

An object implementing this interface is returned by the IVirtualBox::host attribute. This interface contains read-only information about the host's physical hardware (such as what processors, and disks are available, what the host operating system is, and so on) and also allows for manipulating some of the host's hardware, such as global USB device filters and host interface networking.

Interface ID:
  `{489FB370-C227-4D43-9761-CEB28484FD9F}`

## Member Function Documentation

void IHost::getProcessorSpeed | ( | in unsigned long | cpuId,
|  | [retval] out unsigned long | speed |
| ) |  |  |

Query the (approximate) maximum speed of a specified host CPU in Megahertz.

Parameters:

  | cpuId | Identifier of the CPU.
  | speed | Speed value. 0 is returned if value is not known or cpuId is invalid.

void IHost::getProcessorDescription | ( | in unsigned long | cpuId,
|  | [retval] out wstring | description |
| ) |  |  |

Query the model string of a specified host CPU.

Parameters:

  | cpuId | Identifier of the CPU.
  | description | Model string. A NULL string is returned if value is not known or cpuId is invalid.

void IHost::createUSBDeviceFilter | ( | in wstring | name,
|  | [retval] out IHostUSBDeviceFilter | filter |
| ) |  |  |

Creates a new USB device filter.

All attributes except the filter name are set to `null` (any match), active is `false` (the filter is not active).

The created filter can be added to the list of filters using insertUSBDeviceFilter().

Parameters:

  | name | Filter name. See IHostUSBDeviceFilter::name for more info.
  | filter | Created filter object.

See also:
  USBDeviceFilters

void IHost::insertUSBDeviceFilter | ( | in unsigned long | position,
|  | in IHostUSBDeviceFilter | filter |
| ) |  |  |

Inserts the given USB device to the specified position in the list of filters.

Positions are numbered starting from `0`. If the specified position is equal to or greater than the number of elements in the list, the filter is added to the end of the collection.

Parameters:

  | position | Position to insert the filter to.
  | filter | USB device filter to insert.

Note:
  Duplicates are not allowed, so an attempt to insert a filter that is already in the list, will return an error.

  This method may set a warning result code.

  If USB functionality is not avaliable in the given edition of VirtualBox, this method will set the result code to `E_NOTIMPL`.

See also:
  USBDeviceFilters

void IHost::removeUSBDeviceFilter | ( | in unsigned long | position,
|  | [retval] out IHostUSBDeviceFilter | filter |
| ) |  |  |

Removes a USB device filter from the specified position in the list of filters.

Positions are numbered starting from `0`. Specifying a position equal to or greater than the number of elements in the list will produce an error.

Parameters:

  | position | Position to remove the filter from.
  | filter | Removed USB device filter.

Note:
  This method may set a warning result code.

  If USB functionality is not avaliable in the given edition of VirtualBox, this method will set the result code to `E_NOTIMPL`.

See also:
  USBDeviceFilters

void IHost::createHostNetworkInterface | ( | in wstring | name,
|  | out IHostNetworkInterface | hostInterface,
|  | [retval] out IProgress | progress |
| ) |  |  |

Creates a new adapter for Host Interface Networking.

Parameters:

  | name | Adapter name.
  | hostInterface | Created host interface object.
  | progress | Progress object to track the operation completion.

void IHost::removeHostNetworkInterface | ( | in uuid | id,
|  | out IHostNetworkInterface | hostInterface,
|  | [retval] out IProgress | progress |
| ) |  |  |

Removes the given host network interface.

Parameters:

  | id | Adapter GUID.
  | hostInterface | Removed host interface object.
  | progress | Progress object to track the operation completion.

## Member Data Documentation

readonly attribute IHostDVDDriveCollection IHost::DVDDrives

List of DVD drives available on the host.

readonly attribute IHostFloppyDriveCollection IHost::floppyDrives

List of floppy drives available on the host.

readonly attribute IHostUSBDeviceCollection IHost::USBDevices

List of USB devices currently attached to the host.

Once a new device is physically attached to the host computer, it appears in this list and remains there until detached.

Note:
  This method may set a warning result code.

  If USB functionality is not avaliable in the given edition of VirtualBox, this method will set the result code to `E_NOTIMPL`.

readonly attribute IHostUSBDeviceFilterCollection IHost::USBDeviceFilters

List of USB device filters in action.

When a new device is physically attached to the host computer, filters from this list are applied to it (in order they are stored in the list). The first matched filter will determine the action performed on the device.

Unless the device is ignored by these filters, filters of all currently running virtual machines (IUSBController::deviceFilters) are applied to it.

Note:
  This method may set a warning result code.

  If USB functionality is not avaliable in the given edition of VirtualBox, this method will set the result code to `E_NOTIMPL`.

See also:
  IHostUSBDeviceFilter, USBDeviceState

readonly attribute IHostNetworkInterfaceCollection IHost::networkInterfaces

List of host network interfaces currently defined on the host.

readonly attribute unsigned long IHost::processorCount

Number of (logical) CPUs installed in the host system.

readonly attribute unsigned long IHost::processorOnlineCount

Number of (logical) CPUs online in the host system.

readonly attribute unsigned long IHost::memorySize

Amount of system memory in megabytes installed in the host system.

readonly attribute unsigned long IHost::memoryAvailable

Available system memory in the host system.

readonly attribute wstring IHost::operatingSystem

Name of the host system's operating system.

readonly attribute wstring IHost::OSVersion

Host operating system's version string.

readonly attribute long long IHost::UTCTime

Returns the current host time in milliseconds since 1970-01-01 UTC.