VirtualBox

Changeset 45760 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Apr 26, 2013 7:40:05 AM (12 years ago)
Author:
vboxsync
Message:

VBoxTray/VBoxGuest: proper guest caps acquisition & cleanup (to be continued)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/VBoxGuest.h

    r45375 r45760  
    379379/** IOCTL to for setting the mouse driver callback. (kernel only) */
    380380#define VBOXGUEST_IOCTL_SET_MOUSE_NOTIFY_CALLBACK   VBOXGUEST_IOCTL_CODE(31, sizeof(VBoxGuestMouseSetNotifyCallback))
     381
     382typedef struct VBoxGuestCapsAquire
     383{
     384    /* result status
     385     * VINF_SUCCESS - on success
     386     * VERR_RESOURCE_BUSY    - some caps in the u32OrMask are acquired by some other VBoxGuest connection.
     387     *                         NOTE: no u32NotMask caps are cleaned in this case, i.e. no modifications are done on failure
     388     * VER_INVALID_PARAMETER - invalid Caps are specified with either u32OrMask or u32NotMask. No modifications are done on failure.
     389     */
     390    int32_t rc;
     391    /* caps to acquire, OR-ed VMMDEV_GUEST_SUPPORTS_XXX flags */
     392    uint32_t u32OrMask;
     393    /* caps to release, OR-ed VMMDEV_GUEST_SUPPORTS_XXX flags */
     394    uint32_t u32NotMask;
     395} VBoxGuestCapsAquire;
     396
     397/** IOCTL to for Acquiring/Releasing Guest Caps
     398 * This is used for multiple purposes:
     399 * 1. By doing Acquire r3 client application (e.g. VBoxTray) claims it will use
     400 *    the given connection for performing operations like Seamles or Auto-resize,
     401 *    thus, if the application terminates, the driver will automatically cleanup the caps reported to host,
     402 *    so that host knows guest does not support them anymore
     403 * 2. In a multy-user environment this will not allow r3 applications (like VBoxTray)
     404 *    running in different user sessions simultaneously to interfere with each other.
     405 *    An r3 client application (like VBoxTray) is responsible for Acquiring/Releasing caps properly as needed.
     406 **/
     407#define VBOXGUEST_IOCTL_GUEST_CAPS_ACQUIRE          VBOXGUEST_IOCTL_CODE(32, sizeof(VBoxGuestCapsAquire))
     408
     409
    381410
    382411typedef DECLCALLBACK(void) FNVBOXGUESTMOUSENOTIFY(void *pfnUser);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette