VirtualBox

Ignore:
Timestamp:
Aug 21, 2024 9:31:01 AM (5 months ago)
Author:
vboxsync
Message:

GA/Windows: Use two separate bitmasks for displays to enable and disable. bugref:10714

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp

    r105660 r105749  
    34933493                }
    34943494
    3495                 if (pEscape->PrivateDriverDataSize != sizeof (*pEscapeHdr))
     3495                if (pEscape->PrivateDriverDataSize < sizeof (VBOXDISPIFESCAPE_RECONNECT_TARGETS))
    34963496                {
    34973497                    WARN(("VBOXESC_RECONNECT_TARGETS invalid private driver size %d\n", pEscape->PrivateDriverDataSize));
     
    35003500                }
    35013501
    3502                 if (pEscapeHdr->u32CmdSpecific == 0)
    3503                 {
    3504                     WARN(("VBOXESC_RECONNECT_TARGETS u32CmdSpecific is zero\n"));
     3502                if (pEscapeHdr->u32CmdSpecific != 0)
     3503                {
     3504                    WARN(("VBOXESC_RECONNECT_TARGETS u32CmdSpecific is not zero\n"));
    35053505                    Status = STATUS_INVALID_PARAMETER;
    35063506                    break;
    35073507                }
    35083508
    3509                 uint32_t u32ConnectMask = pEscapeHdr->u32CmdSpecific;
     3509                VBOXDISPIFESCAPE_RECONNECT_TARGETS *pVBoxEscapeReconnectTargets = (VBOXDISPIFESCAPE_RECONNECT_TARGETS *)pEscape->pPrivateDriverData;
     3510                uint32_t u32ConnectMask = pVBoxEscapeReconnectTargets->u32ConnectMask;
     3511                uint32_t u32DisconnectMask = pVBoxEscapeReconnectTargets->u32DisconnectMask;
     3512
     3513                if (u32ConnectMask & u32DisconnectMask)
     3514                {
     3515                    WARN(("VBOXESC_RECONNECT_TARGETS (u32ConnectMask & u32DisconnectMask) is not zero\n"));
     3516                    Status = STATUS_INVALID_PARAMETER;
     3517                    break;
     3518                }
    35103519
    35113520                HANDLE hKey = NULL;
     
    35203529                {
    35213530                    VBOXWDDM_TARGET *pTarget = &pDevExt->aTargets[i];
    3522                     bool fConnectReq = u32ConnectMask & RT_BIT(i);
     3531                    bool fConnectReq;
     3532
     3533                    if (u32ConnectMask & RT_BIT(i))
     3534                        fConnectReq = true;
     3535                    else if (u32DisconnectMask & RT_BIT(i))
     3536                        fConnectReq = false;
     3537                    else
     3538                        continue;
    35233539
    35243540                    pTarget->fConfigured = true;
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