ModEdit
This article was written in 2008, at a time when the information did not exist in the User Manual. You may want to read the more up-to-date information in Chapter 8.33 VBoxManage guestproperty of the User Manual.
This was a piece of functionality that was added in Version 2, but has yet to be incorporated in the User Guide Documentation. It allows you to associate a set of properties with each guest and more importantly you can set, get and enumerate such properties from both the Host and the Guest OSs, thus allowing you to pass parameters between the guest and host OSs and applications.
On the Host the properties are accessed through VBoxManage command with the following qualifiers:
- guestproperty get <vmname>|<uuid> <property> [-verbose]
guestproperty set <vmname>|<uuid> <property> [<value> [-flags <flags>]]
guestproperty enumerate <vmname>|<uuid> [-patterns <patterns>]
- guestproperty get <property> [-verbose]
guestproperty set <property> [<value> [-flags <flags>]]
guestproperty enumerate [-patterns <patterns>]
These properties are passed between the Host VMM and Guest VBox device driver using the HGCM service VBoxGuestPropSvc.
I haven't had a chance to chase down the patterns spec for enumerations. It certainly doesn't support standard regexps, but the use of * as a multi-character match, so -patterns *GUI* will list all properties containing "GUI".
In the case of a running VM, setting and getting the properties is immediate and synchronous so that you can use these to pass data dynamically between the host and guest.