VirtualBox

Ignore:
Timestamp:
May 21, 2013 5:06:17 PM (12 years ago)
Author:
vboxsync
Message:

VBoxGuest/VBoxTray: allow enabling caps acquisition mode w/o acquiring caps

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp

    r45811 r46196  
    7171static int VBoxGuestCommonIOCtl_SetMouseStatus(PVBOXGUESTDEVEXT pDevExt, PVBOXGUESTSESSION pSession, uint32_t fFeatures);
    7272
    73 static int VBoxGuestCommonGuestCapsAcquire(PVBOXGUESTDEVEXT pDevExt, PVBOXGUESTSESSION pSession, uint32_t fOrMask, uint32_t fNotMask);
     73static int VBoxGuestCommonGuestCapsAcquire(PVBOXGUESTDEVEXT pDevExt, PVBOXGUESTSESSION pSession, uint32_t fOrMask, uint32_t fNotMask, VBOXGUESTCAPSACQUIRE_FLAGS enmFlags);
    7474
    7575#define VBOXGUEST_ACQUIRE_STYLE_EVENTS (VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST | VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST)
     
    10501050         pSession, pSession->Process, (int)pSession->Process, (uintptr_t)pSession->R0Process)); /** @todo %RTr0proc */
    10511051
    1052     VBoxGuestCommonGuestCapsAcquire(pDevExt, pSession, 0, UINT32_MAX);
     1052    VBoxGuestCommonGuestCapsAcquire(pDevExt, pSession, 0, UINT32_MAX, VBOXGUESTCAPSACQUIRE_FLAGS_NONE);
    10531053
    10541054    VBoxGuestCommonIOCtl_CancelAllWaitEvents(pDevExt, pSession);
     
    25402540}
    25412541
    2542 static int VBoxGuestCommonGuestCapsAcquire(PVBOXGUESTDEVEXT pDevExt, PVBOXGUESTSESSION pSession, uint32_t fOrMask, uint32_t fNotMask)
     2542static int VBoxGuestCommonGuestCapsAcquire(PVBOXGUESTDEVEXT pDevExt, PVBOXGUESTSESSION pSession, uint32_t fOrMask, uint32_t fNotMask, VBOXGUESTCAPSACQUIRE_FLAGS enmFlags)
    25432543{
    25442544    uint32_t fSetCaps = 0;
     2545
     2546    if (!VBoxGuestCommonGuestCapsValidateValues(fOrMask))
     2547    {
     2548        LogRel(("invalid fOrMask 0x%x\n", fOrMask));
     2549        return VERR_INVALID_PARAMETER;
     2550    }
     2551
     2552    if (enmFlags != VBOXGUESTCAPSACQUIRE_FLAGS_CONFIG_ACQUIRE_MODE
     2553            && enmFlags != VBOXGUESTCAPSACQUIRE_FLAGS_NONE)
     2554    {
     2555        LogRel(("invalid enmFlags %d\n", enmFlags));
     2556        return VERR_INVALID_PARAMETER;
     2557    }
    25452558    if (!VBoxGuestCommonGuestCapsModeSet(pDevExt, fOrMask, true, &fSetCaps))
    25462559    {
    2547         Assert(0);
    25482560        LogRel(("calling caps acquire for set caps %d\n", fOrMask));
    25492561        return VERR_INVALID_STATE;
    25502562    }
    25512563
    2552     if (!VBoxGuestCommonGuestCapsValidateValues(fOrMask))
    2553         return VERR_INVALID_PARAMETER;
     2564    if (enmFlags & VBOXGUESTCAPSACQUIRE_FLAGS_CONFIG_ACQUIRE_MODE)
     2565    {
     2566        Log(("Configured Acquire caps: 0x%x\n", fOrMask));
     2567        return VINF_SUCCESS;
     2568    }
    25542569
    25552570    /* the fNotMask no need to have all values valid,
     
    26302645static int VBoxGuestCommonIOCTL_GuestCapsAcquire(PVBOXGUESTDEVEXT pDevExt, PVBOXGUESTSESSION pSession, VBoxGuestCapsAquire *pAcquire)
    26312646{
    2632     int rc = VBoxGuestCommonGuestCapsAcquire(pDevExt, pSession, pAcquire->u32OrMask, pAcquire->u32NotMask);
     2647    int rc = VBoxGuestCommonGuestCapsAcquire(pDevExt, pSession, pAcquire->u32OrMask, pAcquire->u32NotMask, pAcquire->enmFlags);
    26332648    if (!RT_SUCCESS(rc))
    26342649        LogRel(("VBoxGuestCommonGuestCapsAcquire: failed rc %d\n", rc));
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