# IStorageController Interface Reference

Represents a storage controller that is attached to a virtual machine (IMachine). More...

List of all members.

## Public Member Functions
void | GetIDEEmulationPort (in long devicePosition,[retval] out long portNumber)
| Gets the corresponding port number which is emulated as an IDE device.
void | SetIDEEmulationPort (in long devicePosition, in long portNumber)
| Sets the port number which is emulated as an IDE device.
## Public Attributes
readonly attribute wstring | name
| Name of the storage controller, as originally specified with IMachine::addStorageController.
readonly attribute unsigned long | maxDevicesPerPortCount
| Maximum number of devices which can be attached to one port.
readonly attribute unsigned long | minPortCount
| Minimum number of ports that IStorageController::portCount can be set to.
readonly attribute unsigned long | maxPortCount
| Maximum number of ports that IStorageController::portCount can be set to.
attribute unsigned long | instance
| The instance number of the device in the running VM.
attribute unsigned long | portCount
| The number of currently usable ports on the controller.
readonly attribute StorageBus | bus
| The connection type of the storage controller.
attribute StorageControllerType | controllerType
| Type of the virtual storage controller.

## Detailed Description

Represents a storage controller that is attached to a virtual machine (IMachine).

Just as hard disks are attached to storage controllers in a real computer, virtual hard disks (represented by IHardDisk) are attached to virtual storage controllers, represented by this interface.

VirtualBox supports three types of virtual storage controller hardware: IDE, SCSI, and SATA (see bus). Depending on which of these three is used, certain sub-types are available and can be selected in controllerType.

Interface ID:
  `{6BF8335B-D14A-44A5-9B45-DDC49CE7D5B2}`

## Member Function Documentation

void IStorageController::GetIDEEmulationPort | ( | in long | devicePosition,
|  | [retval] out long | portNumber |
| ) |  |  |

Gets the corresponding port number which is emulated as an IDE device.

Expected result codes:

  E_INVALIDARG | The devicePosition is not in the range 0 to 3.
  E_NOTIMPL | The storage controller type is not SATAIntelAhci.

void IStorageController::SetIDEEmulationPort | ( | in long | devicePosition,
|  | in long | portNumber |
| ) |  |  |

Sets the port number which is emulated as an IDE device.

Expected result codes:

  E_INVALIDARG | The devicePosition is not in the range 0 to 3 or the portNumber is not in the range 0 to 29.
  E_NOTIMPL | The storage controller type is not SATAIntelAhci.

## Member Data Documentation

readonly attribute wstring IStorageController::name

Name of the storage controller, as originally specified with IMachine::addStorageController.

This then uniquely identifies this controller with other method calls such as IMachine::attachHardDisk.

readonly attribute unsigned long IStorageController::maxDevicesPerPortCount

Maximum number of devices which can be attached to one port.

readonly attribute unsigned long IStorageController::minPortCount

Minimum number of ports that IStorageController::portCount can be set to.

readonly attribute unsigned long IStorageController::maxPortCount

Maximum number of ports that IStorageController::portCount can be set to.

attribute unsigned long IStorageController::instance

The instance number of the device in the running VM.

attribute unsigned long IStorageController::portCount

The number of currently usable ports on the controller.

The minimum and maximum number of ports for one controller are stored in IStorageController::minPortCount and IStorageController::maxPortCount.

readonly attribute StorageBus IStorageController::bus

The connection type of the storage controller.

attribute StorageControllerType IStorageController::controllerType

Type of the virtual storage controller.

Depending on this value, VirtualBox will provide a different virtual storage controller hardware to the guest.

For SCSI controllers, the default type is LsiLogic.