# IInternalSessionControl Interface Reference

List of all members.

## Public Member Functions
void | getPID ([retval] out unsigned long pid)
| PID of the process that has created this Session object.
void | getRemoteConsole ([retval] out IConsole console)
| Returns the console object suitable for remote control.
void | assignMachine (in IMachine machine)
| Assigns the machine object associated with this direct-type session or informs the session that it will be a remote one (if machine == NULL).
void | assignRemoteMachine (in IMachine machine, in IConsole console)
| Assigns the machine and the (remote) console object associated with this remote-type session.
void | updateMachineState (in MachineState aMachineState)
| Updates the machine state in the VM process.
void | uninitialize ()
| Uninitializes (closes) this session.
void | onDVDDriveChange ()
| Triggered when settings of the DVD drive object of the associated virtual machine have changed.
void | onFloppyDriveChange ()
| Triggered when settings of the floppy drive object of the associated virtual machine have changed.
void | onNetworkAdapterChange (in INetworkAdapter networkAdapter)
| Triggered when settings of a network adapter of the associated virtual machine have changed.
void | onSerialPortChange (in ISerialPort serialPort)
| Triggered when settings of a serial port of the associated virtual machine have changed.
void | onParallelPortChange (in IParallelPort parallelPort)
| Triggered when settings of a parallel port of the associated virtual machine have changed.
void | onStorageControllerChange ()
| Triggered when settings of a storage controller of the associated virtual machine have changed.
void | onVRDPServerChange ()
| Triggered when settings of the VRDP server object of the associated virtual machine have changed.
void | onUSBControllerChange ()
| Triggered when settings of the USB controller object of the associated virtual machine have changed.
void | onSharedFolderChange (in boolean global)
| Triggered when a permanent (global or machine) shared folder has been created or removed.
void | onUSBDeviceAttach (in IUSBDevice device, in IVirtualBoxErrorInfo error, in unsigned long maskedInterfaces)
| Triggered when a request to capture a USB device (as a result of matched USB filters or direct call to IConsole::attachUSBDevice) has completed.
void | onUSBDeviceDetach (in uuid id, in IVirtualBoxErrorInfo error)
| Triggered when a request to release the USB device (as a result of machine termination or direct call to IConsole::detachUSBDevice) has completed.
void | onShowWindow (in boolean check, out boolean canShow, out unsigned long long winId)
| Called by IMachine::canShowConsoleWindow and by IMachine::showConsoleWindow in order to notify console callbacks IConsoleCallback::onCanShowWindow and IConsoleCallback::onShowWindow.
void | accessGuestProperty (in wstring name, in wstring value, in wstring flags, in boolean isSetter, out wstring retValue, out unsigned long long retTimestamp, out wstring retFlags)
| Called by IMachine::getGuestProperty and by IMachine::setGuestProperty in order to read and modify guest properties.
void | enumerateGuestProperties (in wstring patterns, out wstring[] key, out wstring[] value, out unsigned long long[] timestamp, out wstring[] flags)
| Return a list of the guest properties matching a set of patterns along with their values, time stamps and flags.

## Member Function Documentation

void IInternalSessionControl::getPID | ( | [retval] out unsigned long | pid | ) |

PID of the process that has created this Session object.

void IInternalSessionControl::getRemoteConsole | ( | [retval] out IConsole | console | ) |

Returns the console object suitable for remote control.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::assignMachine | ( | in IMachine | machine | ) |

Assigns the machine object associated with this direct-type session or informs the session that it will be a remote one (if machine == NULL).

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::assignRemoteMachine | ( | in IMachine | machine,
|  | in IConsole | console |
| ) |  |  |

Assigns the machine and the (remote) console object associated with this remote-type session.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.

void IInternalSessionControl::updateMachineState | ( | in MachineState | aMachineState | ) |

Updates the machine state in the VM process.

Must be called only in certain cases (see the method implementation).

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::uninitialize | ( |  | ) |

Uninitializes (closes) this session.

Used by VirtualBox to close the corresponding remote session when the direct session dies or gets closed.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.

void IInternalSessionControl::onDVDDriveChange | ( |  | ) |

Triggered when settings of the DVD drive object of the associated virtual machine have changed.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::onFloppyDriveChange | ( |  | ) |

Triggered when settings of the floppy drive object of the associated virtual machine have changed.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::onNetworkAdapterChange | ( | in INetworkAdapter | networkAdapter | ) |

Triggered when settings of a network adapter of the associated virtual machine have changed.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::onSerialPortChange | ( | in ISerialPort | serialPort | ) |

Triggered when settings of a serial port of the associated virtual machine have changed.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::onParallelPortChange | ( | in IParallelPort | parallelPort | ) |

Triggered when settings of a parallel port of the associated virtual machine have changed.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::onStorageControllerChange | ( |  | ) |

Triggered when settings of a storage controller of the associated virtual machine have changed.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::onVRDPServerChange | ( |  | ) |

Triggered when settings of the VRDP server object of the associated virtual machine have changed.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::onUSBControllerChange | ( |  | ) |

Triggered when settings of the USB controller object of the associated virtual machine have changed.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::onSharedFolderChange | ( | in boolean | global | ) |

Triggered when a permanent (global or machine) shared folder has been created or removed.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

Note:
  We don't pass shared folder parameters in this notification because the order in which parallel notifications are delivered is not defined, therefore it could happen that these parameters were outdated by the time of processing this notification.

void IInternalSessionControl::onUSBDeviceAttach | ( | in IUSBDevice | device,
|  | in IVirtualBoxErrorInfo | error,
|  | in unsigned long | maskedInterfaces |
| ) |  |  |

Triggered when a request to capture a USB device (as a result of matched USB filters or direct call to IConsole::attachUSBDevice) has completed.

A `null` error object means success, otherwise it describes a failure.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::onUSBDeviceDetach | ( | in uuid | id,
|  | in IVirtualBoxErrorInfo | error |
| ) |  |  |

Triggered when a request to release the USB device (as a result of machine termination or direct call to IConsole::detachUSBDevice) has completed.

A `null` error object means success, otherwise it

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Session state prevents operation.
  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::onShowWindow | ( | in boolean | check,
|  | out boolean | canShow,
|  | out unsigned long long | winId |
| ) |  |  |

Called by IMachine::canShowConsoleWindow and by IMachine::showConsoleWindow in order to notify console callbacks IConsoleCallback::onCanShowWindow and IConsoleCallback::onShowWindow.

Expected result codes:

  VBOX_E_INVALID_OBJECT_STATE | Session type prevents operation.

void IInternalSessionControl::accessGuestProperty | ( | in wstring | name,
|  | in wstring | value,
|  | in wstring | flags,
|  | in boolean | isSetter,
|  | out wstring | retValue,
|  | out unsigned long long | retTimestamp,
|  | out wstring | retFlags |
| ) |  |  |

Called by IMachine::getGuestProperty and by IMachine::setGuestProperty in order to read and modify guest properties.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Machine session is not open.
  VBOX_E_INVALID_OBJECT_STATE | Session type is not direct.

void IInternalSessionControl::enumerateGuestProperties | ( | in wstring | patterns,
|  | out wstring[] | key,
|  | out wstring[] | value,
|  | out unsigned long long[] | timestamp,
|  | out wstring[] | flags |
| ) |  |  |

Return a list of the guest properties matching a set of patterns along with their values, time stamps and flags.

Parameters:

  | patterns | The patterns to match the properties against as a comma-separated string. If this is empty, all properties currently set will be returned.
  | key | The key names of the properties returned.
  | value | The values of the properties returned. The array entries match the corresponding entries in the key array.
  | timestamp | The time stamps of the properties returned. The array entries match the corresponding entries in the key array.
  | flags | The flags of the properties returned. The array entries match the corresponding entries in the key array.

Expected result codes:

  VBOX_E_INVALID_VM_STATE | Machine session is not open.
  VBOX_E_INVALID_OBJECT_STATE | Session type is not direct.