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.