VirtualBox

Ignore:
Timestamp:
Dec 15, 2016 10:51:08 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
112282
Message:

WDDM: pass the display enabled flag to the driver to be able to disable powered off screens. Clearly mark some disabled code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDispIf.cpp

    r63566 r64878  
    13691369    }
    13701370
    1371 /*  The code below was commented out because VBOXESC_UPDATEMODES should not cause (un)plugging virtual displays.
     1371#ifdef VBOX_WDDM_REPLUG_ON_MODE_CHANGE
     1372    /* The code was disabled because VBOXESC_UPDATEMODES should not cause (un)plugging virtual displays. */
    13721373    winEr =  vboxDispIfWaitDisplayDataInited(pOp);
    13731374    if (winEr != NO_ERROR)
    13741375        WARN(("VBoxTray: (WDDM) Failed vboxDispIfWaitDisplayDataInited winEr %d\n", winEr));
    1375 */
     1376#endif
     1377
    13761378    return winEr;
     1379}
     1380
     1381static DWORD vboxDispIfTargetConnectivityWDDM(VBOXDISPIF_OP *pOp, uint32_t u32TargetId, uint32_t fu32Connect)
     1382{
     1383    VBOXDISPIFESCAPE_TARGETCONNECTIVITY PrivateData;
     1384    RT_ZERO(PrivateData);
     1385    PrivateData.EscapeHdr.escapeCode = VBOXESC_TARGET_CONNECTIVITY;
     1386    PrivateData.u32TargetId = u32TargetId;
     1387    PrivateData.fu32Connect = fu32Connect;
     1388
     1389    D3DKMT_ESCAPE EscapeData;
     1390    RT_ZERO(EscapeData);
     1391    EscapeData.hAdapter = pOp->Adapter.hAdapter;
     1392    EscapeData.Type = D3DKMT_ESCAPE_DRIVERPRIVATE;
     1393    EscapeData.Flags.HardwareAccess = 1;
     1394    EscapeData.pPrivateDriverData = &PrivateData;
     1395    EscapeData.PrivateDriverDataSize = sizeof(PrivateData);
     1396
     1397    NTSTATUS Status = pOp->pIf->modeData.wddm.KmtCallbacks.pfnD3DKMTEscape(&EscapeData);
     1398    if (NT_SUCCESS(Status))
     1399        return ERROR_SUCCESS;
     1400
     1401    WARN(("VBoxTray: pfnD3DKMTEscape VBOXESC_TARGETCONNECTIVITY failed Status 0x%x\n", Status));
     1402    return ERROR_GEN_FAILURE;
    13771403}
    13781404
     
    14791505        LogFunc(("D3DKMTInvalidateActiveVidPn returned %d)\n", Status));
    14801506    }
     1507
     1508    vboxDispIfTargetConnectivityWDDM(&Op, iChangedMode, fEnable? 1: 0);
    14811509
    14821510    /* Resize displays always to keep the display layout because
Note: See TracChangeset for help on using the changeset viewer.

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