VirtualBox

Changeset 106452 in vbox for trunk/src/VBox/Additions


Ignore:
Timestamp:
Oct 17, 2024 1:45:57 PM (4 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
165271
Message:

Additions/VBoxTray: Kicked it to make it build with VBOX_WITH_WDDM=. That code area needs a major cleanup for better separation and interfacing later. Untested. bugref:10792

Location:
trunk/src/VBox/Additions
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/3D/win/VBoxGL/GaDrvEnvKMT.cpp

    r106061 r106452  
    12741274
    12751275    /* Figure out which adapter to use. */
    1276     NTSTATUS Status = vboxDispKmtOpenAdapter2(&mKmtCallbacks.hAdapter, &mKmtCallbacks.AdapterLuid);
     1276    NTSTATUS Status = VBoxWddmKmtOpenAdapter2(&mKmtCallbacks.hAdapter, &mKmtCallbacks.AdapterLuid);
    12771277    Assert(Status == STATUS_SUCCESS);
    12781278    if (Status == STATUS_SUCCESS)
     
    12981298        }
    12991299
    1300         vboxDispKmtCloseAdapter(mKmtCallbacks.hAdapter);
     1300        VBoxWddmKmtCloseAdapter(mKmtCallbacks.hAdapter);
    13011301    }
    13021302
  • trunk/src/VBox/Additions/3D/win/VBoxICD/VBoxICD.c

    r106061 r106452  
    8484    D3DKMTLoad();
    8585
    86     Status = vboxDispKmtOpenAdapter(&hAdapter);
     86    Status = VBoxWddmKmtOpenAdapter(&hAdapter);
    8787    if (Status == STATUS_SUCCESS)
    8888    {
     
    109109        }
    110110
    111         vboxDispKmtCloseAdapter(hAdapter);
     111        VBoxWddmKmtCloseAdapter(hAdapter);
    112112    }
    113113}
  • trunk/src/VBox/Additions/3D/win/VBoxWddmUmHlp/D3DKMT.cpp

    r106061 r106452  
    228228}
    229229
    230 NTSTATUS vboxDispKmtOpenAdapter2(D3DKMT_HANDLE *phAdapter, LUID *pLuid)
     230NTSTATUS VBoxWddmKmtOpenAdapter2(D3DKMT_HANDLE *phAdapter, LUID *pLuid)
    231231{
    232232    NTSTATUS Status = vboxDispKmtOpenAdapterFromLuid(phAdapter, pLuid);
     
    240240}
    241241
    242 NTSTATUS vboxDispKmtOpenAdapter(D3DKMT_HANDLE *phAdapter)
    243 {
    244     return vboxDispKmtOpenAdapter2(phAdapter, NULL);
    245 }
    246 
    247 NTSTATUS vboxDispKmtCloseAdapter(D3DKMT_HANDLE hAdapter)
     242NTSTATUS VBoxWddmKmtOpenAdapter(D3DKMT_HANDLE *phAdapter)
     243{
     244    return VBoxWddmKmtOpenAdapter2(phAdapter, NULL);
     245}
     246
     247NTSTATUS VBoxWddmKmtCloseAdapter(D3DKMT_HANDLE hAdapter)
    248248{
    249249    D3DKMTFUNCTIONS const *d3dkmt = D3DKMTFunctions();
  • trunk/src/VBox/Additions/3D/win/VBoxWddmUmHlp/VBoxMpLogger.cpp

    r106061 r106452  
    5353
    5454    D3DKMT_HANDLE hAdapter;
    55     NTSTATUS Status = vboxDispKmtOpenAdapter(&hAdapter);
     55    NTSTATUS Status = VBoxWddmKmtOpenAdapter(&hAdapter);
    5656    Assert(Status == STATUS_SUCCESS);
    5757    if (Status == 0)
     
    8484        }
    8585
    86         Status = vboxDispKmtCloseAdapter(hAdapter);
     86        Status = VBoxWddmKmtCloseAdapter(hAdapter);
    8787        Assert(Status == STATUS_SUCCESS);
    8888    }
  • trunk/src/VBox/Additions/3D/win/VBoxWddmUmHlp/VBoxWddmUmHlp.h

    r106061 r106452  
    107107DECLCALLBACK(void) VBoxWddmUmLog(const char *pszString);
    108108
    109 /** @todo Rename to VBoxWddm* */
    110 NTSTATUS vboxDispKmtOpenAdapter2(D3DKMT_HANDLE *phAdapter, LUID *pLuid);
    111 NTSTATUS vboxDispKmtOpenAdapter(D3DKMT_HANDLE *phAdapter);
    112 NTSTATUS vboxDispKmtCloseAdapter(D3DKMT_HANDLE hAdapter);
     109NTSTATUS VBoxWddmKmtOpenAdapter2(D3DKMT_HANDLE *phAdapter, LUID *pLuid);
     110NTSTATUS VBoxWddmKmtOpenAdapter(D3DKMT_HANDLE *phAdapter);
     111NTSTATUS VBoxWddmKmtCloseAdapter(D3DKMT_HANDLE hAdapter);
    113112
    114113RT_C_DECLS_END
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/shared/VBoxDispKmt.cpp

    r106061 r106452  
    306306}
    307307
    308 HRESULT vboxDispKmtOpenAdapter(const VBOXDISPKMT_CALLBACKS *pCallbacks, PVBOXDISPKMT_ADAPTER pAdapter)
     308HRESULT VBoxWddmKmtOpenAdapter(const VBOXDISPKMT_CALLBACKS *pCallbacks, PVBOXDISPKMT_ADAPTER pAdapter)
    309309{
    310310    HRESULT hr = vboxDispKmtOpenAdapterViaHdc(pCallbacks, pAdapter);
     
    319319}
    320320
    321 HRESULT vboxDispKmtCloseAdapter(PVBOXDISPKMT_ADAPTER pAdapter)
     321HRESULT VBoxWddmKmtCloseAdapter(PVBOXDISPKMT_ADAPTER pAdapter)
    322322{
    323323    D3DKMT_CLOSEADAPTER ClosaAdapterData = {0};
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/shared/VBoxDispKmt.h

    r106061 r106452  
    148148HRESULT vboxDispKmtCallbacksTerm(PVBOXDISPKMT_CALLBACKS pCallbacks);
    149149
    150 HRESULT vboxDispKmtOpenAdapter(const VBOXDISPKMT_CALLBACKS *pCallbacks, PVBOXDISPKMT_ADAPTER pAdapter);
    151 HRESULT vboxDispKmtCloseAdapter(PVBOXDISPKMT_ADAPTER pAdapter);
     150HRESULT VBoxWddmKmtOpenAdapter(const VBOXDISPKMT_CALLBACKS *pCallbacks, PVBOXDISPKMT_ADAPTER pAdapter);
     151HRESULT VBoxWddmKmtCloseAdapter(PVBOXDISPKMT_ADAPTER pAdapter);
    152152HRESULT vboxDispKmtCreateDevice(PVBOXDISPKMT_ADAPTER pAdapter, PVBOXDISPKMT_DEVICE pDevice);
    153153HRESULT vboxDispKmtDestroyDevice(PVBOXDISPKMT_DEVICE pDevice);
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/shared/VBoxDispMpLogger.cpp

    r106061 r106452  
    7878             * check if we can Open Adapter, i.e. WDDM driver is installed */
    7979            VBOXDISPKMT_ADAPTER Adapter;
    80             hr = vboxDispKmtOpenAdapter(&g_VBoxDispMpLogger.KmtCallbacks, &Adapter);
     80            hr = VBoxWddmKmtOpenAdapter(&g_VBoxDispMpLogger.KmtCallbacks, &Adapter);
    8181            if (hr == S_OK)
    8282            {
    8383                ASMAtomicWriteU32((volatile uint32_t *)&g_VBoxDispMpLogger.enmState, VBOXDISPMPLOGGER_STATE_INITIALIZED);
    84                 vboxDispKmtCloseAdapter(&Adapter);
     84                VBoxWddmKmtCloseAdapter(&Adapter);
    8585                return &g_VBoxDispMpLogger;
    8686            }
     
    125125
    126126    VBOXDISPKMT_ADAPTER Adapter;
    127     HRESULT hr = vboxDispKmtOpenAdapter(&pLogger->KmtCallbacks, &Adapter);
     127    HRESULT hr = VBoxWddmKmtOpenAdapter(&pLogger->KmtCallbacks, &Adapter);
    128128    if (hr == S_OK)
    129129    {
     
    157157            BP_WARN();
    158158        }
    159         hr = vboxDispKmtCloseAdapter(&Adapter);
     159        hr = VBoxWddmKmtCloseAdapter(&Adapter);
    160160        if(hr != S_OK)
    161161        {
     
    193193
    194194    VBOXDISPKMT_ADAPTER Adapter;
    195     HRESULT hr = vboxDispKmtOpenAdapter(&pLogger->KmtCallbacks, &Adapter);
     195    HRESULT hr = VBoxWddmKmtOpenAdapter(&pLogger->KmtCallbacks, &Adapter);
    196196    if (hr == S_OK)
    197197    {
     
    228228            BP_WARN();
    229229        }
    230         hr = vboxDispKmtCloseAdapter(&Adapter);
     230        hr = VBoxWddmKmtCloseAdapter(&Adapter);
    231231        if(hr != S_OK)
    232232        {
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDispIf.cpp

    r106061 r106452  
    7373{
    7474    PCVBOXDISPIF pIf;
    75     VBOXDISPKMT_ADAPTER Adapter;
    76     VBOXDISPKMT_DEVICE Device;
    77     VBOXDISPKMT_CONTEXT Context;
     75#ifdef VBOX_WITH_WDDM
     76    union
     77    {
     78        struct
     79        {
     80            VBOXDISPKMT_ADAPTER Adapter;
     81            VBOXDISPKMT_DEVICE Device;
     82            VBOXDISPKMT_CONTEXT Context;
     83        } wddm;
     84    } u;
     85#endif
    7886} VBOXDISPIF_OP;
    7987
     
    118126                                     DISPLAY_DEVICE *paDisplayDevices, DEVMODE *paDeviceModes, UINT cDevModes);
    119127static DWORD vboxDispIfWddmEnableDisplaysTryingTopology(PCVBOXDISPIF const pIf, UINT cIds, UINT *pIds, BOOL fEnable);
    120 static DWORD vboxDispIfResizeStartedWDDMOp(VBOXDISPIF_OP *pOp);
     128static DWORD vboxDispIfResizeStartedOpWDDM(VBOXDISPIF_OP *pOp);
    121129
    122130static void vboxDispIfWddmDcLogRel(VBOXDISPIF_WDDM_DISPCFG const *pCfg, UINT fFlags)
     
    643651}
    644652
    645 static DWORD vboxDispIfOpBegin(PCVBOXDISPIF pIf, VBOXDISPIF_OP *pOp)
     653#ifdef VBOX_WITH_WDDM
     654static DWORD vboxDispIfOpBeginWddm(PCVBOXDISPIF pIf, VBOXDISPIF_OP *pOp)
    646655{
    647656    pOp->pIf = pIf;
    648657
    649     HRESULT hr = vboxDispKmtOpenAdapter(&pIf->modeData.wddm.KmtCallbacks, &pOp->Adapter);
     658    HRESULT hr = VBoxWddmKmtOpenAdapter(&pIf->modeData.wddm.KmtCallbacks, &pOp->u.wddm.Adapter);
    650659    if (SUCCEEDED(hr))
    651660    {
    652         hr = vboxDispKmtCreateDevice(&pOp->Adapter, &pOp->Device);
     661        hr = vboxDispKmtCreateDevice(&pOp->u.wddm.Adapter, &pOp->u.wddm.Device);
    653662        if (SUCCEEDED(hr))
    654663        {
    655             hr = vboxDispKmtCreateContext(&pOp->Device, &pOp->Context, VBOXWDDM_CONTEXT_TYPE_CUSTOM_DISPIF_RESIZE,
     664            hr = vboxDispKmtCreateContext(&pOp->u.wddm.Device, &pOp->u.wddm.Context, VBOXWDDM_CONTEXT_TYPE_CUSTOM_DISPIF_RESIZE,
    656665                    NULL, 0ULL);
    657666            if (SUCCEEDED(hr))
     
    660669                WARN(("VBoxTray: vboxDispKmtCreateContext failed hr 0x%x", hr));
    661670
    662             vboxDispKmtDestroyDevice(&pOp->Device);
     671            vboxDispKmtDestroyDevice(&pOp->u.wddm.Device);
    663672        }
    664673        else
    665674            WARN(("VBoxTray: vboxDispKmtCreateDevice failed hr 0x%x", hr));
    666675
    667         vboxDispKmtCloseAdapter(&pOp->Adapter);
     676        VBoxWddmKmtCloseAdapter(&pOp->u.wddm.Adapter);
    668677    }
    669678
     
    671680}
    672681
    673 static VOID vboxDispIfOpEnd(VBOXDISPIF_OP *pOp)
    674 {
    675     vboxDispKmtDestroyContext(&pOp->Context);
    676     vboxDispKmtDestroyDevice(&pOp->Device);
    677     vboxDispKmtCloseAdapter(&pOp->Adapter);
    678 }
     682static VOID vboxDispIfOpEndWddm(VBOXDISPIF_OP *pOp)
     683{
     684    vboxDispKmtDestroyContext(&pOp->u.wddm.Context);
     685    vboxDispKmtDestroyDevice(&pOp->u.wddm.Device);
     686    VBoxWddmKmtCloseAdapter(&pOp->u.wddm.Adapter);
     687}
     688#endif /* VBOX_WITH_WDDM */
    679689
    680690/* display driver interface abstraction for XPDM & WDDM
     
    844854    DWORD winEr = ERROR_SUCCESS;
    845855    VBOXDISPKMT_ADAPTER Adapter;
    846     HRESULT hr = vboxDispKmtOpenAdapter(&pIf->modeData.wddm.KmtCallbacks, &Adapter);
     856    HRESULT hr = VBoxWddmKmtOpenAdapter(&pIf->modeData.wddm.KmtCallbacks, &Adapter);
    847857    if (!SUCCEEDED(hr))
    848858    {
     
    870880    }
    871881
    872     vboxDispKmtCloseAdapter(&Adapter);
     882    VBoxWddmKmtCloseAdapter(&Adapter);
    873883
    874884    return winEr;
     
    13951405
    13961406        D3DKMT_POLLDISPLAYCHILDREN PollData = {0};
    1397         PollData.hAdapter = pOp->Adapter.hAdapter;
     1407        PollData.hAdapter = pOp->u.wddm.Adapter.hAdapter;
    13981408        PollData.NonDestructiveOnly = 1;
    13991409        NTSTATUS Status = pOp->pIf->modeData.wddm.KmtCallbacks.pfnD3DKMTPollDisplayChildren(&PollData);
     
    14431453
    14441454    D3DKMT_ESCAPE EscapeData = {0};
    1445     EscapeData.hAdapter = pOp->Adapter.hAdapter;
     1455    EscapeData.hAdapter = pOp->u.wddm.Adapter.hAdapter;
    14461456#ifdef VBOX_DISPIF_WITH_OPCONTEXT
    14471457    /* win8.1 does not allow context-based escapes for display-only mode */
     
    14831493    D3DKMT_ESCAPE EscapeData;
    14841494    RT_ZERO(EscapeData);
    1485     EscapeData.hAdapter = pOp->Adapter.hAdapter;
     1495    EscapeData.hAdapter = pOp->u.wddm.Adapter.hAdapter;
    14861496    EscapeData.Type = D3DKMT_ESCAPE_DRIVERPRIVATE;
    14871497    EscapeData.Flags.HardwareAccess = 1;
     
    15641574    VBOXDISPIF_OP Op;
    15651575
    1566     winEr = vboxDispIfOpBegin(pIf, &Op);
     1576    winEr = vboxDispIfOpBeginWddm(pIf, &Op);
    15671577    if (winEr != NO_ERROR)
    15681578    {
     
    15971607        }
    15981608
    1599         ddiArgInvalidateVidPN.hAdapter = Op.Adapter.hAdapter;
     1609        ddiArgInvalidateVidPN.hAdapter = Op.u.wddm.Adapter.hAdapter;
    16001610        ddiArgInvalidateVidPN.pPrivateDriverData = &vboxRecommendVidPN;
    16011611        ddiArgInvalidateVidPN.PrivateDriverDataSize = sizeof (vboxRecommendVidPN);
     
    16311641    }
    16321642
    1633     vboxDispIfOpEnd(&Op);
     1643    vboxDispIfOpEndWddm(&Op);
    16341644
    16351645    return winEr;
     
    17911801}
    17921802
    1793 BOOL VBoxDispIfResizeDisplayWin7(PCVBOXDISPIF const pIf, uint32_t cDispDef, const VMMDevDisplayDef *paDispDef)
     1803BOOL VBoxDispIfResizeDisplayWin7Wddm(PCVBOXDISPIF const pIf, uint32_t cDispDef, const VMMDevDisplayDef *paDispDef)
    17941804{
    17951805    const VMMDevDisplayDef *pDispDef;
     
    18111821
    18121822    VBOXDISPIF_OP Op;
    1813     DWORD winEr = vboxDispIfOpBegin(pIf, &Op);
     1823    DWORD winEr = vboxDispIfOpBeginWddm(pIf, &Op);
    18141824    if (winEr != ERROR_SUCCESS)
    18151825    {
     
    18381848    }
    18391849
    1840     vboxDispIfOpEnd(&Op);
     1850    vboxDispIfOpEndWddm(&Op);
    18411851
    18421852    if (winEr != ERROR_SUCCESS)
     
    23632373        case VBOXDISPIF_MODE_WDDM_W7:
    23642374            return vboxDispIfResizeModesWDDM(pIf, iChangedMode, fEnable, fExtDispSup, paDisplayDevices, paDeviceModes, cDevModes);
     2375#else
     2376        RT_NOREF(iChangedMode, fEnable, fExtDispSup, paDisplayDevices, paDeviceModes, cDevModes);
    23652377#endif
    23662378        default:
     
    23892401}
    23902402
     2403#ifdef VBOX_WITH_WDDM
    23912404static DWORD vboxDispIfConfigureTargetsWDDM(VBOXDISPIF_OP *pOp, uint32_t *pcConnected)
    23922405{
     
    23962409
    23972410    D3DKMT_ESCAPE EscapeData = {0};
    2398     EscapeData.hAdapter = pOp->Adapter.hAdapter;
     2411    EscapeData.hAdapter = pOp->u.wddm.Adapter.hAdapter;
    23992412#ifdef VBOX_DISPIF_WITH_OPCONTEXT
    24002413    /* win8.1 does not allow context-based escapes for display-only mode */
     
    24182431}
    24192432
    2420 static DWORD vboxDispIfResizeStartedWDDMOp(VBOXDISPIF_OP *pOp)
     2433static DWORD vboxDispIfResizeStartedOpWDDM(VBOXDISPIF_OP *pOp)
    24212434{
    24222435    DWORD NumDevices = VBoxDisplayGetCount();
    24232436    if (NumDevices == 0)
    24242437    {
    2425         WARN(("VBoxTray: vboxDispIfResizeStartedWDDMOp: Zero devices found\n"));
     2438        WARN(("VBoxTray: vboxDispIfResizeStartedOpWDDM: Zero devices found\n"));
    24262439        return ERROR_GEN_FAILURE;
    24272440    }
     
    24352448    if (winEr != NO_ERROR)
    24362449    {
    2437         WARN(("VBoxTray: vboxDispIfResizeStartedWDDMOp: VBoxGetDisplayConfig failed, %d\n", winEr));
     2450        WARN(("VBoxTray: vboxDispIfResizeStartedOpWDDM: VBoxGetDisplayConfig failed, %d\n", winEr));
    24382451        return winEr;
    24392452    }
    24402453
    24412454    if (NumDevices != DevNum)
    2442         WARN(("VBoxTray: vboxDispIfResizeStartedWDDMOp: NumDevices(%d) != DevNum(%d)\n", NumDevices, DevNum));
     2455        WARN(("VBoxTray: vboxDispIfResizeStartedOpWDDM: NumDevices(%d) != DevNum(%d)\n", NumDevices, DevNum));
    24432456
    24442457
     
    24472460    if (winEr != NO_ERROR)
    24482461    {
    2449         WARN(("VBoxTray: vboxDispIfConfigureTargetsWDDM failed winEr 0x%x\n", winEr));
     2462        WARN(("VBoxTray: vboxDispIfResizeStartedOpWDDM failed winEr 0x%x\n", winEr));
    24502463        return winEr;
    24512464    }
     
    24592472    winEr = vboxDispIfWaitDisplayDataInited(pOp);
    24602473    if (winEr != NO_ERROR)
    2461         WARN(("VBoxTray: vboxDispIfResizeStartedWDDMOp: vboxDispIfWaitDisplayDataInited failed winEr 0x%x\n", winEr));
     2474        WARN(("VBoxTray: vboxDispIfResizeStartedOpWDDM: vboxDispIfWaitDisplayDataInited failed winEr 0x%x\n", winEr));
    24622475
    24632476    DWORD NewNumDevices = VBoxDisplayGetCount();
    24642477    if (NewNumDevices == 0)
    24652478    {
    2466         WARN(("VBoxTray: vboxDispIfResizeStartedWDDMOp: Zero devices found\n"));
     2479        WARN(("VBoxTray: vboxDispIfResizeStartedOpWDDM: Zero devices found\n"));
    24672480        return ERROR_GEN_FAILURE;
    24682481    }
    24692482
    24702483    if (NewNumDevices != NumDevices)
    2471         WARN(("VBoxTray: vboxDispIfResizeStartedWDDMOp: NumDevices(%d) != NewNumDevices(%d)\n", NumDevices, NewNumDevices));
     2484        WARN(("VBoxTray: vboxDispIfResizeStartedOpWDDM: NumDevices(%d) != NewNumDevices(%d)\n", NumDevices, NewNumDevices));
    24722485
    24732486    DISPLAY_DEVICE *paNewDisplayDevices = (DISPLAY_DEVICE *)alloca (sizeof (DISPLAY_DEVICE) * NewNumDevices);
     
    24792492    if (winEr != NO_ERROR)
    24802493    {
    2481         WARN(("VBoxTray: vboxDispIfResizeStartedWDDMOp: VBoxGetDisplayConfig failed for new devices, %d\n", winEr));
     2494        WARN(("VBoxTray: vboxDispIfResizeStartedOpWDDM: VBoxGetDisplayConfig failed for new devices, %d\n", winEr));
    24822495        return winEr;
    24832496    }
    24842497
    24852498    if (NewNumDevices != NewDevNum)
    2486         WARN(("VBoxTray: vboxDispIfResizeStartedWDDMOp: NewNumDevices(%d) != NewDevNum(%d)\n", NewNumDevices, NewDevNum));
     2499        WARN(("VBoxTray: vboxDispIfResizeStartedOpWDDM: NewNumDevices(%d) != NewDevNum(%d)\n", NewNumDevices, NewDevNum));
    24872500
    24882501    DWORD minDevNum = RT_MIN(DevNum, NewDevNum);
     
    25182531            winEr = vboxDispIfWddmResizeDisplayVista(paNewDeviceModes, paNewDisplayDevices, NewDevNum, i, FALSE, TRUE);
    25192532            if (winEr != NO_ERROR)
    2520                 WARN(("VBoxTray: vboxDispIfResizeStartedWDDMOp: vboxDispIfWddmResizeDisplayVista failed winEr 0x%x\n", winEr));
     2533                WARN(("VBoxTray: vboxDispIfResizeStartedOpWDDM: vboxDispIfWddmResizeDisplayVista failed winEr 0x%x\n", winEr));
    25212534        }
    25222535    }
     
    25252538}
    25262539
    2527 
    25282540static DWORD vboxDispIfResizeStartedWDDM(PCVBOXDISPIF const pIf)
    25292541{
    25302542    VBOXDISPIF_OP Op;
    25312543
    2532     DWORD winEr = vboxDispIfOpBegin(pIf, &Op);
     2544    DWORD winEr = vboxDispIfOpBeginWddm(pIf, &Op);
    25332545    if (winEr != NO_ERROR)
    25342546    {
     
    25372549    }
    25382550
    2539     winEr = vboxDispIfResizeStartedWDDMOp(&Op);
     2551    winEr = vboxDispIfResizeStartedOpWDDM(&Op);
    25402552    if (winEr != NO_ERROR)
    25412553    {
     
    25432555    }
    25442556
    2545     vboxDispIfOpEnd(&Op);
     2557    vboxDispIfOpEndWddm(&Op);
    25462558
    25472559    return winEr;
    25482560}
     2561#endif /* VBOX_WITH_WDDM */
    25492562
    25502563DWORD VBoxDispIfResizeStarted(PCVBOXDISPIF const pIf)
     
    26912704}
    26922705
     2706#ifdef VBOX_WITH_WDDM
    26932707static DWORD vboxDispIfSeamlessCreateWDDM(PCVBOXDISPIF const pIf, VBOXDISPIF_SEAMLESS *pSeamless, HANDLE hEvent)
    26942708{
    26952709    RT_NOREF(hEvent);
    2696     HRESULT hr = vboxDispKmtOpenAdapter(&pIf->modeData.wddm.KmtCallbacks, &pSeamless->modeData.wddm.Adapter);
     2710    HRESULT hr = VBoxWddmKmtOpenAdapter(&pIf->modeData.wddm.KmtCallbacks, &pSeamless->modeData.wddm.Adapter);
    26972711    if (SUCCEEDED(hr))
    26982712    {
     
    27142728            WARN(("VBoxTray: vboxDispKmtCreateDevice failed hr 0x%x", hr));
    27152729
    2716         vboxDispKmtCloseAdapter(&pSeamless->modeData.wddm.Adapter);
     2730        VBoxWddmKmtCloseAdapter(&pSeamless->modeData.wddm.Adapter);
    27172731#endif /* VBOX_DISPIF_WITH_OPCONTEXT */
    27182732    }
     
    27272741    vboxDispKmtDestroyDevice(&pSeamless->modeData.wddm.Device);
    27282742#endif
    2729     vboxDispKmtCloseAdapter(&pSeamless->modeData.wddm.Adapter);
     2743    VBoxWddmKmtCloseAdapter(&pSeamless->modeData.wddm.Adapter);
    27302744
    27312745    return NO_ERROR;
     
    27522766    return Status;
    27532767}
     2768#endif /* VBOX_WITH_WDDM */
    27542769
    27552770DWORD VBoxDispIfSeamlessCreate(PCVBOXDISPIF const pIf, VBOXDISPIF_SEAMLESS *pSeamless, HANDLE hEvent)
     
    27672782        case VBOXDISPIF_MODE_WDDM_W7:
    27682783            return vboxDispIfSeamlessCreateWDDM(pIf, pSeamless, hEvent);
     2784#else
     2785        RT_NOREF(hEvent);
    27692786#endif
    27702787        default:
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDispIf.h

    r106061 r106452  
    101101DWORD VBoxDispIfResizeStarted(PCVBOXDISPIF const pIf);
    102102
    103 BOOL VBoxDispIfResizeDisplayWin7(PCVBOXDISPIF const pIf, uint32_t cDispDef, const VMMDevDisplayDef *paDispDef);
     103BOOL VBoxDispIfResizeDisplayWin7Wddm(PCVBOXDISPIF const pIf, uint32_t cDispDef, const VMMDevDisplayDef *paDispDef);
    104104
    105105typedef struct VBOXDISPIF_SEAMLESS
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDisplay.cpp

    r106449 r106452  
    162162        else
    163163            rc = VINF_SUCCESS;
    164 #endif
     164#else  /* !VBOX_WITH_WDDM */
     165        rc = VINF_SUCCESS;
     166#endif /* VBOX_WITH_WDDM */
    165167    }
    166168    else if (uNtVersion < RTSYSTEM_MAKE_NT_VERSION(5, 0, 0)) /* Windows NT 4.0. */
     
    850852static BOOL DisplayChangeRequestHandler(PVBOXDISPLAYCONTEXT pCtx)
    851853{
     854    int rc = VINF_SUCCESS;
     855
     856#ifdef VBOX_WITH_WDDM
    852857    VMMDevDisplayDef aDisplays[64];
    853     uint32_t cDisplays = RT_ELEMENTS(aDisplays);
    854     int rc = VINF_SUCCESS;
     858    uint32_t         cDisplays = RT_ELEMENTS(aDisplays);
    855859
    856860    /* Multidisplay resize is still implemented only for Win7 and newer guests. */
    857     if (pCtx->pEnv->dispIf.enmMode >= VBOXDISPIF_MODE_WDDM_W7 &&
    858         RT_SUCCESS(rc = VbglR3GetDisplayChangeRequestMulti(cDisplays, &cDisplays, &aDisplays[0], true /* fAck */)))
     861    if (   pCtx->pEnv->dispIf.enmMode >= VBOXDISPIF_MODE_WDDM_W7
     862        && RT_SUCCESS(rc = VbglR3GetDisplayChangeRequestMulti(cDisplays, &cDisplays, &aDisplays[0], true /* fAck */)))
    859863    {
    860864        uint32_t i;
     
    874878        }
    875879
    876         return VBoxDispIfResizeDisplayWin7(&pCtx->pEnv->dispIf, cDisplays, &aDisplays[0]);
    877     }
     880        return VBoxDispIfResizeDisplayWin7Wddm(&pCtx->pEnv->dispIf, cDisplays, &aDisplays[0]);
     881    }
     882#endif /* VBOX_WITH_WDDM */
    878883
    879884    /* Fall back to the single monitor resize request. */
     
    981986            if (ASMAtomicXchgU32(&g_fGuestDisplaysChanged, 0))
    982987            {
     988#ifdef VBOX_WITH_WDDM
    983989                // XPDM driver has VBoxDispDrvNotify to receive such a notifications
    984990                if (pCtx->pEnv->dispIf.enmMode >= VBOXDISPIF_MODE_WDDM)
     
    990996                    LogFlowFunc(("VBoxDispIfEscapeInOut returned %d\n", err)); NOREF(err);
    991997                }
     998#endif
    992999            }
    9931000
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