VirtualBox

Changeset 71592 in vbox for trunk/src/VBox/Additions/WINNT


Ignore:
Timestamp:
Mar 31, 2018 7:51:41 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
121581
Message:

DevVGA,VBoxVideo: Code cleanup in progress. bugref:9094

Location:
trunk/src/VBox/Additions/WINNT/Graphics/Video
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/common/xpdm/VBoxVideoIOCTL.h

    r71179 r71592  
    6565typedef void* HVBOXVIDEOHGSMI;
    6666
    67 /* Complete host commands addressed to the display */
    68 typedef DECLCALLBACK(void) FNVBOXVIDEOHGSMICOMPLETION(HVBOXVIDEOHGSMI hHGSMI, struct VBVAHOSTCMD * pCmd);
     67/** Complete host commands addressed to the display */
     68typedef DECLCALLBACK(void) FNVBOXVIDEOHGSMICOMPLETION(HVBOXVIDEOHGSMI hHGSMI, struct VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST * pCmd);
    6969typedef FNVBOXVIDEOHGSMICOMPLETION *PFNVBOXVIDEOHGSMICOMPLETION;
    7070
    71 /* request the host commands addressed to the display */
    72 typedef DECLCALLBACK(int) FNVBOXVIDEOHGSMICOMMANDS(HVBOXVIDEOHGSMI hHGSMI, uint8_t u8Channel, uint32_t iDevice, struct VBVAHOSTCMD ** ppCmd);
     71/** request the host commands addressed to the display */
     72typedef DECLCALLBACK(int) FNVBOXVIDEOHGSMICOMMANDS(HVBOXVIDEOHGSMI hHGSMI, uint8_t u8Channel, uint32_t iDevice,
     73                                                   struct VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST ** ppCmd);
    7374typedef FNVBOXVIDEOHGSMICOMMANDS *PFNVBOXVIDEOHGSMICOMMANDS;
    7475
    75 /* post guest command (offset) to the host */
     76/** post guest command (offset) to the host */
    7677typedef DECLCALLBACK(void) FNVBOXVIDEOHGSMIPOSTCOMMAND(HVBOXVIDEOHGSMI hHGSMI, HGSMIOFFSET offCmd);
    7778typedef FNVBOXVIDEOHGSMIPOSTCOMMAND *PFNVBOXVIDEOHGSMIPOSTCOMMAND;
     
    105106} HGSMIQUERYCPORTPROCS;
    106107
    107 /* Data returned by IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS. */
     108/** Data returned by IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS. */
    108109typedef struct _HGSMIQUERYCALLBACKS
    109110{
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDispDDraw.cpp

    r69500 r71592  
    3232    if(pDev->vhwa.bEnabled)
    3333    {
    34         VBOXVHWACMD* pCmd;
    35 
    3634        uint32_t unsupportedSCaps = VBoxDispVHWAUnsupportedDDSCAPS(lpDDS->ddsCaps.dwCaps);
    3735        if(unsupportedSCaps)
     
    5048        }
    5149
    52         pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_CANCREATE, sizeof(VBOXVHWACMD_SURF_CANCREATE));
    53         if(pCmd)
     50        VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST * pCmd
     51            = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_CANCREATE, sizeof(VBOXVHWACMD_SURF_CANCREATE));
     52        if (pCmd)
    5453        {
    5554            int rc;
    56             VBOXVHWACMD_SURF_CANCREATE *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_CANCREATE);
    57             memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_CANCREATE));
     55            VBOXVHWACMD_SURF_CANCREATE RT_UNTRUSTED_VOLATILE_HOST  *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_CANCREATE);
    5856
    5957            rc = VBoxDispVHWAFromDDSURFACEDESC(&pBody->SurfInfo, lpDDS);
     
    140138    if(pDev->vhwa.bEnabled)
    141139    {
    142         VBOXVHWACMD* pCmd;
    143 
    144         pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_CREATE, sizeof(VBOXVHWACMD_SURF_CREATE));
     140        VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd
     141            = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_CREATE, sizeof(VBOXVHWACMD_SURF_CREATE));
    145142        if (pCmd)
    146143        {
    147             VBOXVHWACMD_SURF_CREATE *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_CREATE);
     144            VBOXVHWACMD_SURF_CREATE RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_CREATE);
    148145            PVBOXVHWASURFDESC pDesc;
    149146            int rc;
    150147
    151             memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_CREATE));
    152148            rc = VBoxDispVHWAFromDDSURFACEDESC(&pBody->SurfInfo, lpCreateSurface->lpDDSurfaceDesc);
    153149            VBOX_WARNRC(rc);
     
    259255    if (pDev->vhwa.bEnabled)
    260256    {
    261         VBOXVHWACMD* pCmd;
    262 
    263         pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_DESTROY, sizeof(VBOXVHWACMD_SURF_DESTROY));
     257        VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST  *pCmd
     258            = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_DESTROY, sizeof(VBOXVHWACMD_SURF_DESTROY));
    264259        if (pCmd)
    265260        {
    266             VBOXVHWACMD_SURF_DESTROY *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_DESTROY);
    267261            PVBOXVHWASURFDESC pDesc = (PVBOXVHWASURFDESC)lpDestroySurface->lpDDSurface->lpGbl->dwReserved1;
    268 
    269262            if (pDesc)
    270263            {
    271                 memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_DESTROY));
     264                VBOXVHWACMD_SURF_DESTROY RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_DESTROY);
    272265                pBody->u.in.hSurf = pDesc->hHostHandle;
    273266
     
    403396        else
    404397        {
    405             VBOXVHWACMD *pCmd;
    406             pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_LOCK, sizeof(VBOXVHWACMD_SURF_LOCK));
    407 
     398            VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd
     399                = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_LOCK, sizeof(VBOXVHWACMD_SURF_LOCK));
    408400            if (pCmd)
    409401            {
    410                 VBOXVHWACMD_SURF_LOCK *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_LOCK);
    411                 memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_LOCK));
     402                VBOXVHWACMD_SURF_LOCK RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_LOCK);
    412403
    413404                pBody->u.in.offSurface = VBoxDispVHWAVramOffsetFromPDEV(pDev, pSurf->lpGbl->fpVidMem);
     
    500491                 || ((pSurf->ddsCaps.dwCaps & DDSCAPS_OVERLAY) && pDesc->bVisible))
    501492        {
    502             VBOXVHWACMD *pCmd;
    503             pCmd = VBoxDispVHWACommandCreate (pDev, VBOXVHWACMD_TYPE_SURF_UNLOCK, sizeof(VBOXVHWACMD_SURF_UNLOCK));
    504 
    505             if(pCmd)
    506             {
    507                 VBOXVHWACMD_SURF_UNLOCK *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_UNLOCK);
    508                 memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_UNLOCK));
     493            VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd
     494                = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_UNLOCK, sizeof(VBOXVHWACMD_SURF_UNLOCK));
     495            if (pCmd)
     496            {
     497                VBOXVHWACMD_SURF_UNLOCK RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_UNLOCK);
    509498
    510499                pBody->u.in.hSurf = pDesc->hHostHandle;
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDispDDrawVHWA.cpp

    r69500 r71592  
    2020#include <iprt/asm.h>
    2121
    22 static DECLCALLBACK(void) VBoxDispVHWASurfBltCompletion(PVBOXDISPDEV pDev, VBOXVHWACMD *pCmd, void *pvContext)
     22/** @callback_method_impl{FNVBOXVHWACMDCOMPLETION} */
     23static DECLCALLBACK(void)
     24VBoxDispVHWASurfBltCompletion(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd, void *pvContext)
    2325{
    2426    RT_NOREF(pvContext);
    25     VBOXVHWACMD_SURF_BLT *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_BLT);
    26     PVBOXVHWASURFDESC pSrcDesc = (PVBOXVHWASURFDESC)pBody->SrcGuestSurfInfo;
    27     PVBOXVHWASURFDESC pDestDesc = (PVBOXVHWASURFDESC)pBody->DstGuestSurfInfo;
     27    VBOXVHWACMD_SURF_BLT RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_BLT);
     28    PVBOXVHWASURFDESC pSrcDesc  = (PVBOXVHWASURFDESC)(uintptr_t)pBody->SrcGuestSurfInfo;
     29    PVBOXVHWASURFDESC pDestDesc = (PVBOXVHWASURFDESC)(uintptr_t)pBody->DstGuestSurfInfo;
    2830
    2931    ASMAtomicDecU32(&pSrcDesc->cPendingBltsSrc);
     
    3335}
    3436
    35 static DECLCALLBACK(void) VBoxDispVHWASurfFlipCompletion(PVBOXDISPDEV pDev, VBOXVHWACMD *pCmd, void *pvContext)
     37/** @callback_method_impl{FNVBOXVHWACMDCOMPLETION} */
     38static DECLCALLBACK(void)
     39VBoxDispVHWASurfFlipCompletion(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd, void *pvContext)
    3640{
    3741    RT_NOREF(pvContext);
    38     VBOXVHWACMD_SURF_FLIP *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_FLIP);
    39     PVBOXVHWASURFDESC pCurrDesc = (PVBOXVHWASURFDESC)pBody->CurrGuestSurfInfo;
    40     PVBOXVHWASURFDESC pTargDesc = (PVBOXVHWASURFDESC)pBody->TargGuestSurfInfo;
     42    VBOXVHWACMD_SURF_FLIP RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_FLIP);
     43    PVBOXVHWASURFDESC pCurrDesc = (PVBOXVHWASURFDESC)(uintptr_t)pBody->CurrGuestSurfInfo;
     44    PVBOXVHWASURFDESC pTargDesc = (PVBOXVHWASURFDESC)(uintptr_t)pBody->TargGuestSurfInfo;
    4145
    4246    ASMAtomicDecU32(&pCurrDesc->cPendingFlipsCurr);
     
    164168    DD_SURFACE_LOCAL *pSurf = lpSetColorKey->lpDDSurface;
    165169    PVBOXVHWASURFDESC pDesc = (PVBOXVHWASURFDESC)pSurf->lpGbl->dwReserved1;
    166     VBOXVHWACMD* pCmd;
    167170
    168171    lpSetColorKey->ddRVal = DD_OK;
     
    170173    if (pDesc)
    171174    {
    172         pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_COLORKEY_SET, sizeof(VBOXVHWACMD_SURF_COLORKEY_SET));
    173 
     175        VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd =
     176            VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_COLORKEY_SET, sizeof(VBOXVHWACMD_SURF_COLORKEY_SET));
    174177        if (pCmd)
    175178        {
    176             VBOXVHWACMD_SURF_COLORKEY_SET *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_COLORKEY_SET);
    177             memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_COLORKEY_SET));
     179            VBOXVHWACMD_SURF_COLORKEY_SET RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_COLORKEY_SET);
    178180
    179181            pBody->u.in.offSurface = VBoxDispVHWAVramOffsetFromPDEV(pDev, pSurf->lpGbl->fpVidMem);
     
    222224    if (pSrcDesc && pDstDesc)
    223225    {
    224         VBOXVHWACMD *pCmd;
     226        VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST  *pCmd;
    225227
    226228        pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_BLT, sizeof(VBOXVHWACMD_SURF_BLT));
    227229        if (pCmd)
    228230        {
    229             VBOXVHWACMD_SURF_BLT *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_BLT);
    230             memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_BLT));
     231            VBOXVHWACMD_SURF_BLT RT_UNTRUSTED_VOLATILE_HOST  *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_BLT);
    231232
    232233            pBody->u.in.offSrcSurface = VBoxDispVHWAVramOffsetFromPDEV(pDev, pSrcSurf->lpGbl->fpVidMem);
     
    301302        }
    302303
    303         VBOXVHWACMD *pCmd;
    304 
    305         pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_FLIP, sizeof(VBOXVHWACMD_SURF_FLIP));
    306 
     304        VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd
     305            = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_FLIP, sizeof(VBOXVHWACMD_SURF_FLIP));
    307306        if (pCmd)
    308307        {
    309             VBOXVHWACMD_SURF_FLIP *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_FLIP);
    310             memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_FLIP));
     308            VBOXVHWACMD_SURF_FLIP RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_FLIP);
    311309
    312310            pBody->u.in.offCurrSurface = VBoxDispVHWAVramOffsetFromPDEV(pDev, pCurrSurf->lpGbl->fpVidMem);
     
    457455        }
    458456
    459         VBOXVHWACMD *pCmd;
    460 
    461         pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_OVERLAY_SETPOSITION, sizeof(VBOXVHWACMD_SURF_OVERLAY_SETPOSITION));
     457        VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd
     458            = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_OVERLAY_SETPOSITION, sizeof(VBOXVHWACMD_SURF_OVERLAY_SETPOSITION));
    462459        if (pCmd)
    463460        {
    464             VBOXVHWACMD_SURF_OVERLAY_SETPOSITION *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_OVERLAY_SETPOSITION);
    465             memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_OVERLAY_SETPOSITION));
     461            VBOXVHWACMD_SURF_OVERLAY_SETPOSITION RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_OVERLAY_SETPOSITION);
    466462
    467463            pBody->u.in.offSrcSurface = VBoxDispVHWAVramOffsetFromPDEV(pDev, pSrcSurf->lpGbl->fpVidMem);
     
    505501    if (pSrcDesc)
    506502    {
    507         VBOXVHWACMD* pCmd;
    508 
    509         pCmd = VBoxDispVHWACommandCreate (pDev, VBOXVHWACMD_TYPE_SURF_OVERLAY_UPDATE, sizeof(VBOXVHWACMD_SURF_OVERLAY_UPDATE));
     503        VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd
     504            = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_OVERLAY_UPDATE, sizeof(VBOXVHWACMD_SURF_OVERLAY_UPDATE));
    510505        if (pCmd)
    511506        {
    512             VBOXVHWACMD_SURF_OVERLAY_UPDATE *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_OVERLAY_UPDATE);
    513             memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_OVERLAY_UPDATE));
     507            VBOXVHWACMD_SURF_OVERLAY_UPDATE RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_OVERLAY_UPDATE);
    514508
    515509            pBody->u.in.offSrcSurface = VBoxDispVHWAVramOffsetFromPDEV(pDev, pSrcSurf->lpGbl->fpVidMem);
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDispInternal.h

    r69500 r71592  
    131131/* VBVA related */
    132132int VBoxDispVBVAInit(PVBOXDISPDEV pDev);
    133 void VBoxDispVBVAHostCommandComplete(PVBOXDISPDEV pDev, VBVAHOSTCMD *pCmd);
     133void VBoxDispVBVAHostCommandComplete(PVBOXDISPDEV pDev, VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST *pCmd);
    134134
    135135void vrdpReportDirtyRect(PVBOXDISPDEV pDev, RECTL *prcl);
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDispVBVA.cpp

    r69500 r71592  
    482482}
    483483
    484 void VBoxDispVBVAHostCommandComplete(PVBOXDISPDEV pDev, VBVAHOSTCMD *pCmd)
     484void VBoxDispVBVAHostCommandComplete(PVBOXDISPDEV pDev, VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST *pCmd)
    485485{
    486486    pDev->hgsmi.mp.pfnCompletionHandler(pDev->hgsmi.mp.hContext, pCmd);
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDispVHWA.cpp

    r69500 r71592  
    2121#include <iprt/asm-amd64-x86.h>
    2222
    23 static void VBoxDispVHWACommandFree(PVBOXDISPDEV pDev, VBOXVHWACMD* pCmd)
     23static void VBoxDispVHWACommandFree(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd)
    2424{
    2525    VBoxHGSMIBufferFree(&pDev->hgsmi.ctx, pCmd);
    2626}
    2727
    28 static void VBoxDispVHWACommandRetain(VBOXVHWACMD* pCmd)
     28static void VBoxDispVHWACommandRetain(VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd)
    2929{
    3030    ASMAtomicIncU32(&pCmd->cRefs);
    3131}
    3232
    33 static void VBoxDispVHWACommandSubmitAsynchByEvent(PVBOXDISPDEV pDev, VBOXVHWACMD* pCmd, VBOXPEVENT pEvent)
     33static void VBoxDispVHWACommandSubmitAsynchByEvent(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd,
     34                                                   VBOXPEVENT pEvent)
    3435{
    3536    pCmd->GuestVBVAReserved1 = (uintptr_t)pEvent;
     
    5152}
    5253
    53 static void VBoxDispVHWAHanldeVHWACmdCompletion(PVBOXDISPDEV pDev, VBVAHOSTCMD * pHostCmd)
    54 {
    55     VBVAHOSTCMDVHWACMDCOMPLETE * pComplete = VBVAHOSTCMD_BODY(pHostCmd, VBVAHOSTCMDVHWACMDCOMPLETE);
    56     VBOXVHWACMD* pComplCmd = (VBOXVHWACMD*)HGSMIOffsetToPointer(&pDev->hgsmi.ctx.heapCtx.area, pComplete->offCmd);
    57     PFNVBOXVHWACMDCOMPLETION pfnCompletion = (PFNVBOXVHWACMDCOMPLETION)pComplCmd->GuestVBVAReserved1;
    58     void *pContext = (void *)pComplCmd->GuestVBVAReserved2;
     54static void VBoxDispVHWAHanldeVHWACmdCompletion(PVBOXDISPDEV pDev, VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST *pHostCmd)
     55{
     56    VBVAHOSTCMDVHWACMDCOMPLETE RT_UNTRUSTED_VOLATILE_HOST *pComplete = VBVAHOSTCMD_BODY(pHostCmd, VBVAHOSTCMDVHWACMDCOMPLETE);
     57    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST                *pComplCmd =
     58        (VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *)HGSMIOffsetToPointer(&pDev->hgsmi.ctx.heapCtx.area, pComplete->offCmd);
     59
     60    PFNVBOXVHWACMDCOMPLETION pfnCompletion = (PFNVBOXVHWACMDCOMPLETION)(uintptr_t)pComplCmd->GuestVBVAReserved1;
     61    void                    *pContext      = (void *)(uintptr_t)pComplCmd->GuestVBVAReserved2;
    5962
    6063    pfnCompletion(pDev, pComplCmd, pContext);
     
    6366}
    6467
    65 static void VBoxVHWAHostCommandHandler(PVBOXDISPDEV pDev, VBVAHOSTCMD * pCmd)
    66 {
    67     switch(pCmd->customOpCode)
     68static void VBoxVHWAHostCommandHandler(PVBOXDISPDEV pDev, VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST *pCmd)
     69{
     70    switch (pCmd->customOpCode)
    6871    {
    6972        case VBVAHG_DCUSTOM_VHWA_CMDCOMPLETE:
    70         {
    7173            VBoxDispVHWAHanldeVHWACmdCompletion(pDev, pCmd);
    7274            break;
    73         }
     75
    7476        default:
    75         {
    7677            VBoxDispVBVAHostCommandComplete(pDev, pCmd);
    77         }
    7878    }
    7979}
     
    9696{
    9797    int rc = VERR_GENERAL_FAILURE;
    98     VBOXVHWACMD* pCmd;
    9998
    10099    if (!pDev->hgsmi.bSupported)
     
    103102    }
    104103
    105     pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_ENABLE, 0);
     104    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_ENABLE, 0);
    106105    if (!pCmd)
    107106    {
     
    110109    }
    111110
    112     if(VBoxDispVHWACommandSubmit(pDev, pCmd))
    113     {
    114         if(RT_SUCCESS(pCmd->rc))
    115         {
     111    if (VBoxDispVHWACommandSubmit(pDev, pCmd))
     112        if (RT_SUCCESS(pCmd->rc))
    116113            rc = VINF_SUCCESS;
    117         }
    118     }
    119114
    120115    VBoxDispVHWACommandRelease(pDev, pCmd);
     
    122117}
    123118
    124 VBOXVHWACMD* VBoxDispVHWACommandCreate(PVBOXDISPDEV pDev, VBOXVHWACMD_TYPE enmCmd, VBOXVHWACMD_LENGTH cbCmd)
    125 {
    126     VBOXVHWACMD* pHdr = (VBOXVHWACMD*)VBoxHGSMIBufferAlloc(&pDev->hgsmi.ctx,
    127                               cbCmd + VBOXVHWACMD_HEADSIZE(),
    128                               HGSMI_CH_VBVA,
    129                               VBVA_VHWA_CMD);
     119VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *
     120VBoxDispVHWACommandCreate(PVBOXDISPDEV pDev, VBOXVHWACMD_TYPE enmCmd, VBOXVHWACMD_LENGTH cbCmd)
     121{
     122    uint32_t                                cbTotal = cbCmd + VBOXVHWACMD_HEADSIZE();
     123    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pHdr
     124        = (VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *)VBoxHGSMIBufferAlloc(&pDev->hgsmi.ctx, cbTotal, HGSMI_CH_VBVA, VBVA_VHWA_CMD);
    130125    if (!pHdr)
    131126    {
     
    134129    else
    135130    {
    136         memset(pHdr, 0, sizeof(VBOXVHWACMD));
     131        memset((void *)pHdr, 0, cbTotal); /* always clear the whole body so caller doesn't need to */
    137132        pHdr->iDisplay = pDev->iDevice;
    138133        pHdr->rc = VERR_GENERAL_FAILURE;
     
    147142}
    148143
    149 void VBoxDispVHWACommandRelease(PVBOXDISPDEV pDev, VBOXVHWACMD* pCmd)
     144void VBoxDispVHWACommandRelease(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd)
    150145{
    151146    uint32_t cRefs = ASMAtomicDecU32(&pCmd->cRefs);
    152147    Assert(cRefs < UINT32_MAX / 2);
    153     if(!cRefs)
    154     {
     148    if (!cRefs)
    155149        VBoxDispVHWACommandFree(pDev, pCmd);
    156     }
    157 }
    158 
    159 BOOL VBoxDispVHWACommandSubmit(PVBOXDISPDEV pDev, VBOXVHWACMD* pCmd)
     150}
     151
     152BOOL VBoxDispVHWACommandSubmit(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd)
    160153{
    161154    VBOXPEVENT pEvent;
     
    181174void VBoxDispVHWACommandCheckHostCmds(PVBOXDISPDEV pDev)
    182175{
    183     VBVAHOSTCMD *pCmd, *pNextCmd;
     176    VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST *pCmd;
    184177    int rc = pDev->hgsmi.mp.pfnRequestCommandsHandler(pDev->hgsmi.mp.hContext, HGSMI_CH_VBVA, pDev->iDevice, &pCmd);
    185178    /* don't assert here, otherwise NT4 will be unhappy */
    186     if(RT_SUCCESS(rc))
    187     {
    188         for(;pCmd; pCmd = pNextCmd)
     179    if (RT_SUCCESS(rc))
     180    {
     181        while (pCmd)
    189182        {
    190             pNextCmd = pCmd->u.pNext;
     183            VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST *pNextCmd = pCmd->u.pNext;
    191184            VBoxVHWAHostCommandHandler(pDev, pCmd);
     185            pCmd = pNextCmd;
    192186        }
    193187    }
     
    203197
    204198/* do not wait for completion */
    205 void VBoxDispVHWACommandSubmitAsynch (PVBOXDISPDEV pDev, VBOXVHWACMD* pCmd, PFNVBOXVHWACMDCOMPLETION pfnCompletion, void * pContext)
     199void VBoxDispVHWACommandSubmitAsynch(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd,
     200                                     PFNVBOXVHWACMDCOMPLETION pfnCompletion, void * pContext)
    206201{
    207202    pCmd->GuestVBVAReserved1 = (uintptr_t)pfnCompletion;
     
    220215}
    221216
    222 static DECLCALLBACK(void) VBoxDispVHWAFreeCmdCompletion(PVBOXDISPDEV pDev, VBOXVHWACMD *pCmd, void *pvContext)
     217static DECLCALLBACK(void) VBoxDispVHWAFreeCmdCompletion(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd,
     218                                                        void *pvContext)
    223219{
    224220    RT_NOREF(pvContext);
     
    226222}
    227223
    228 void VBoxDispVHWACommandSubmitAsynchAndComplete (PVBOXDISPDEV pDev, VBOXVHWACMD* pCmd)
     224void VBoxDispVHWACommandSubmitAsynchAndComplete (PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd)
    229225{
    230226    pCmd->GuestVBVAReserved1 = (uintptr_t)VBoxDispVHWAFreeCmdCompletion;
     
    236232    VBoxHGSMIBufferSubmit(&pDev->hgsmi.ctx, pCmd);
    237233
    238     if(!(pCmd->Flags & VBOXVHWACMD_FLAG_HG_ASYNCH)
    239             || pCmd->Flags & VBOXVHWACMD_FLAG_HG_ASYNCH_RETURNED)
     234    uint32_t const fCmdFlags = pCmd->Flags;
     235    if (   !(fCmdFlags & VBOXVHWACMD_FLAG_HG_ASYNCH)
     236        || (fCmdFlags & VBOXVHWACMD_FLAG_HG_ASYNCH_RETURNED))
    240237    {
    241238        /* the command is completed */
     
    246243}
    247244
    248 void VBoxDispVHWAFreeHostInfo1(PVBOXDISPDEV pDev, VBOXVHWACMD_QUERYINFO1* pInfo)
    249 {
    250     VBOXVHWACMD* pCmd = VBOXVHWACMD_HEAD(pInfo);
    251     VBoxDispVHWACommandRelease(pDev, pCmd);
    252 }
    253 
    254 void VBoxDispVHWAFreeHostInfo2(PVBOXDISPDEV pDev, VBOXVHWACMD_QUERYINFO2* pInfo)
    255 {
    256     VBOXVHWACMD* pCmd = VBOXVHWACMD_HEAD(pInfo);
    257     VBoxDispVHWACommandRelease(pDev, pCmd);
    258 }
    259 
    260 VBOXVHWACMD_QUERYINFO1* VBoxDispVHWAQueryHostInfo1(PVBOXDISPDEV pDev)
    261 {
    262     VBOXVHWACMD* pCmd = VBoxDispVHWACommandCreate (pDev, VBOXVHWACMD_TYPE_QUERY_INFO1, sizeof(VBOXVHWACMD_QUERYINFO1));
    263     VBOXVHWACMD_QUERYINFO1 *pInfo1;
     245void VBoxDispVHWAFreeHostInfo1(PVBOXDISPDEV pDev, VBOXVHWACMD_QUERYINFO1 RT_UNTRUSTED_VOLATILE_HOST *pInfo)
     246{
     247    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd = VBOXVHWACMD_HEAD(pInfo);
     248    VBoxDispVHWACommandRelease(pDev, pCmd);
     249}
     250
     251void VBoxDispVHWAFreeHostInfo2(PVBOXDISPDEV pDev, VBOXVHWACMD_QUERYINFO2 RT_UNTRUSTED_VOLATILE_HOST *pInfo)
     252{
     253    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd = VBOXVHWACMD_HEAD(pInfo);
     254    VBoxDispVHWACommandRelease(pDev, pCmd);
     255}
     256
     257static VBOXVHWACMD_QUERYINFO1 RT_UNTRUSTED_VOLATILE_HOST *VBoxDispVHWAQueryHostInfo1(PVBOXDISPDEV pDev)
     258{
     259    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_QUERY_INFO1,
     260                                                                             sizeof(VBOXVHWACMD_QUERYINFO1));
    264261    if (!pCmd)
    265262    {
     
    268265    }
    269266
    270     pInfo1 = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_QUERYINFO1);
     267    VBOXVHWACMD_QUERYINFO1 RT_UNTRUSTED_VOLATILE_HOST *pInfo1= VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_QUERYINFO1);
    271268    pInfo1->u.in.guestVersion.maj = VBOXVHWA_VERSION_MAJ;
    272269    pInfo1->u.in.guestVersion.min = VBOXVHWA_VERSION_MIN;
     
    286283}
    287284
    288 VBOXVHWACMD_QUERYINFO2* VBoxDispVHWAQueryHostInfo2(PVBOXDISPDEV pDev, uint32_t numFourCC)
    289 {
    290     VBOXVHWACMD* pCmd = VBoxDispVHWACommandCreate (pDev, VBOXVHWACMD_TYPE_QUERY_INFO2, VBOXVHWAINFO2_SIZE(numFourCC));
    291     VBOXVHWACMD_QUERYINFO2 *pInfo2;
     285static VBOXVHWACMD_QUERYINFO2 RT_UNTRUSTED_VOLATILE_HOST *VBoxDispVHWAQueryHostInfo2(PVBOXDISPDEV pDev, uint32_t numFourCC)
     286{
     287    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_QUERY_INFO2,
     288                                                                             VBOXVHWAINFO2_SIZE(numFourCC));
    292289    if (!pCmd)
    293290    {
     
    296293    }
    297294
    298     pInfo2 = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_QUERYINFO2);
     295    VBOXVHWACMD_QUERYINFO2 RT_UNTRUSTED_VOLATILE_HOST *pInfo2 = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_QUERYINFO2);
    299296    pInfo2->numFourCC = numFourCC;
    300 
    301     if(VBoxDispVHWACommandSubmit (pDev, pCmd))
    302     {
    303         if(RT_SUCCESS(pCmd->rc))
    304         {
    305             if(pInfo2->numFourCC == numFourCC)
    306             {
     297    if (VBoxDispVHWACommandSubmit(pDev, pCmd))
     298        if (RT_SUCCESS(pCmd->rc))
     299            if (pInfo2->numFourCC == numFourCC)
    307300                return pInfo2;
    308             }
    309         }
    310     }
    311301
    312302    VBoxDispVHWACommandRelease(pDev, pCmd);
     
    316306int VBoxDispVHWAInitHostInfo1(PVBOXDISPDEV pDev)
    317307{
    318     VBOXVHWACMD_QUERYINFO1* pInfo;
    319308
    320309    if (!pDev->hgsmi.bSupported)
    321310        return VERR_NOT_SUPPORTED;
    322311
    323     pInfo = VBoxDispVHWAQueryHostInfo1(pDev);
     312    VBOXVHWACMD_QUERYINFO1 RT_UNTRUSTED_VOLATILE_HOST *pInfo = VBoxDispVHWAQueryHostInfo1(pDev);
    324313    if(!pInfo)
    325314    {
     
    336325    pDev->vhwa.numFourCC = pInfo->u.out.numFourCC;
    337326    pDev->vhwa.bEnabled = (pInfo->u.out.cfgFlags & VBOXVHWA_CFG_ENABLED);
     327
    338328    VBoxDispVHWAFreeHostInfo1(pDev, pInfo);
    339329    return VINF_SUCCESS;
     
    342332int VBoxDispVHWAInitHostInfo2(PVBOXDISPDEV pDev, DWORD *pFourCC)
    343333{
    344     VBOXVHWACMD_QUERYINFO2* pInfo;
    345334    int rc = VINF_SUCCESS;
    346335
     
    348337        return VERR_NOT_SUPPORTED;
    349338
    350     pInfo = VBoxDispVHWAQueryHostInfo2(pDev, pDev->vhwa.numFourCC);
    351 
     339    VBOXVHWACMD_QUERYINFO2 RT_UNTRUSTED_VOLATILE_HOST *pInfo = VBoxDispVHWAQueryHostInfo2(pDev, pDev->vhwa.numFourCC);
    352340    Assert(pInfo);
    353341    if(!pInfo)
    354342        return VERR_OUT_OF_RESOURCES;
    355343
    356     if(pDev->vhwa.numFourCC)
    357     {
    358         memcpy(pFourCC, pInfo->FourCC, pDev->vhwa.numFourCC * sizeof(pFourCC[0]));
    359     }
     344    if (pDev->vhwa.numFourCC)
     345        memcpy(pFourCC, (void const *)pInfo->FourCC, pDev->vhwa.numFourCC * sizeof(pFourCC[0]));
    360346    else
    361347    {
     
    372358{
    373359    int rc = VERR_GENERAL_FAILURE;
    374     VBOXVHWACMD* pCmd;
    375360
    376361    if (!pDev->hgsmi.bSupported)
    377362        return VERR_NOT_SUPPORTED;
    378363
    379     pCmd = VBoxDispVHWACommandCreate (pDev, VBOXVHWACMD_TYPE_DISABLE, 0);
     364    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_DISABLE, 0);
    380365    if (!pCmd)
    381366    {
     
    384369    }
    385370
    386     if(VBoxDispVHWACommandSubmit (pDev, pCmd))
    387     {
     371    if (VBoxDispVHWACommandSubmit(pDev, pCmd))
    388372        if(RT_SUCCESS(pCmd->rc))
    389         {
    390373            rc = VINF_SUCCESS;
    391         }
    392     }
    393374
    394375    VBoxDispVHWACommandRelease(pDev, pCmd);
     
    652633}
    653634
    654 void VBoxDispVHWAFromDDCOLORKEY(VBOXVHWA_COLORKEY *pVHWACKey, DDCOLORKEY  *pDdCKey)
     635void VBoxDispVHWAFromDDCOLORKEY(VBOXVHWA_COLORKEY RT_UNTRUSTED_VOLATILE_HOST *pVHWACKey, DDCOLORKEY  *pDdCKey)
    655636{
    656637    pVHWACKey->low = pDdCKey->dwColorSpaceLowValue;
     
    658639}
    659640
    660 void VBoxDispVHWAFromDDOVERLAYFX(VBOXVHWA_OVERLAYFX *pVHWAOverlay, DDOVERLAYFX *pDdOverlay)
     641void VBoxDispVHWAFromDDOVERLAYFX(VBOXVHWA_OVERLAYFX RT_UNTRUSTED_VOLATILE_HOST *pVHWAOverlay, DDOVERLAYFX *pDdOverlay)
    661642{
    662643    /// @todo fxFlags
     
    665646}
    666647
    667 void VBoxDispVHWAFromDDBLTFX(VBOXVHWA_BLTFX *pVHWABlt, DDBLTFX *pDdBlt)
     648void VBoxDispVHWAFromDDBLTFX(VBOXVHWA_BLTFX RT_UNTRUSTED_VOLATILE_HOST *pVHWABlt, DDBLTFX *pDdBlt)
    668649{
    669650    pVHWABlt->fillColor = pDdBlt->dwFillColor;
     
    673654}
    674655
    675 int VBoxDispVHWAFromDDPIXELFORMAT(VBOXVHWA_PIXELFORMAT *pVHWAFormat, DDPIXELFORMAT *pDdFormat)
     656int VBoxDispVHWAFromDDPIXELFORMAT(VBOXVHWA_PIXELFORMAT RT_UNTRUSTED_VOLATILE_HOST *pVHWAFormat, DDPIXELFORMAT *pDdFormat)
    676657{
    677658    uint32_t unsup = VBoxDispVHWAUnsupportedDDPFS(pDdFormat->dwFlags);
     
    689670}
    690671
    691 int VBoxDispVHWAFromDDSURFACEDESC(VBOXVHWA_SURFACEDESC *pVHWADesc, DDSURFACEDESC *pDdDesc)
     672int VBoxDispVHWAFromDDSURFACEDESC(VBOXVHWA_SURFACEDESC RT_UNTRUSTED_VOLATILE_HOST *pVHWADesc, DDSURFACEDESC *pDdDesc)
    692673{
    693674    uint32_t unsupds = VBoxDispVHWAUnsupportedDSS(pDdDesc->dwFlags);
     
    757738}
    758739
    759 void VBoxDispVHWAFromRECTL(VBOXVHWA_RECTL *pDst, RECTL *pSrc)
     740void VBoxDispVHWAFromRECTL(VBOXVHWA_RECTL *pDst, RECTL const *pSrc)
     741{
     742    pDst->left = pSrc->left;
     743    pDst->top = pSrc->top;
     744    pDst->right = pSrc->right;
     745    pDst->bottom = pSrc->bottom;
     746}
     747
     748void VBoxDispVHWAFromRECTL(VBOXVHWA_RECTL RT_UNTRUSTED_VOLATILE_HOST *pDst, RECTL const *pSrc)
    760749{
    761750    pDst->left = pSrc->left;
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDispVHWA.h

    r69500 r71592  
    5959}VBOXVHWASURFDESC, *PVBOXVHWASURFDESC;
    6060
    61 typedef DECLCALLBACK(void) FNVBOXVHWACMDCOMPLETION(PVBOXDISPDEV pDev, VBOXVHWACMD * pCmd, void * pContext);
     61typedef DECLCALLBACK(void) FNVBOXVHWACMDCOMPLETION(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd, void *pvContext);
    6262typedef FNVBOXVHWACMDCOMPLETION *PFNVBOXVHWACMDCOMPLETION;
    6363
    6464void VBoxDispVHWAInit(PVBOXDISPDEV pDev);
    65 int VBoxDispVHWAEnable(PVBOXDISPDEV pDev);
    66 int VBoxDispVHWADisable(PVBOXDISPDEV pDev);
    67 int VBoxDispVHWAInitHostInfo1(PVBOXDISPDEV pDev);
    68 int VBoxDispVHWAInitHostInfo2(PVBOXDISPDEV pDev, DWORD *pFourCC);
     65int  VBoxDispVHWAEnable(PVBOXDISPDEV pDev);
     66int  VBoxDispVHWADisable(PVBOXDISPDEV pDev);
     67int  VBoxDispVHWAInitHostInfo1(PVBOXDISPDEV pDev);
     68int  VBoxDispVHWAInitHostInfo2(PVBOXDISPDEV pDev, DWORD *pFourCC);
    6969
    70 VBOXVHWACMD* VBoxDispVHWACommandCreate(PVBOXDISPDEV pDev, VBOXVHWACMD_TYPE enmCmd, VBOXVHWACMD_LENGTH cbCmd);
    71 void VBoxDispVHWACommandRelease(PVBOXDISPDEV pDev, VBOXVHWACMD* pCmd);
    72 BOOL VBoxDispVHWACommandSubmit(PVBOXDISPDEV pDev, VBOXVHWACMD* pCmd);
    73 void VBoxDispVHWACommandSubmitAsynch (PVBOXDISPDEV pDev, VBOXVHWACMD* pCmd, PFNVBOXVHWACMDCOMPLETION pfnCompletion, void * pContext);
    74 void VBoxDispVHWACommandSubmitAsynchAndComplete (PVBOXDISPDEV pDev, VBOXVHWACMD* pCmd);
     70VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *VBoxDispVHWACommandCreate(PVBOXDISPDEV pDev, VBOXVHWACMD_TYPE enmCmd, VBOXVHWACMD_LENGTH cbCmd);
     71void VBoxDispVHWACommandRelease(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd);
     72BOOL VBoxDispVHWACommandSubmit(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST*pCmd);
     73void VBoxDispVHWACommandSubmitAsynch(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd,
     74                                     PFNVBOXVHWACMDCOMPLETION pfnCompletion, void * pContext);
     75void VBoxDispVHWACommandSubmitAsynchAndComplete(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd);
    7576void VBoxDispVHWACommandCheckHostCmds(PVBOXDISPDEV pDev);
    7677
     
    111112uint32_t VBoxDispVHWAToDDCKEYs(uint32_t caps);
    112113
    113 int VBoxDispVHWAFromDDSURFACEDESC(VBOXVHWA_SURFACEDESC *pVHWADesc, DDSURFACEDESC *pDdDesc);
    114 int VBoxDispVHWAFromDDPIXELFORMAT(VBOXVHWA_PIXELFORMAT *pVHWAFormat, DDPIXELFORMAT *pDdFormat);
    115 void VBoxDispVHWAFromDDOVERLAYFX(VBOXVHWA_OVERLAYFX *pVHWAOverlay, DDOVERLAYFX *pDdOverlay);
    116 void VBoxDispVHWAFromDDCOLORKEY(VBOXVHWA_COLORKEY *pVHWACKey, DDCOLORKEY  *pDdCKey);
    117 void VBoxDispVHWAFromDDBLTFX(VBOXVHWA_BLTFX *pVHWABlt, DDBLTFX *pDdBlt);
    118 void VBoxDispVHWAFromRECTL(VBOXVHWA_RECTL *pDst, RECTL *pSrc);
     114int VBoxDispVHWAFromDDSURFACEDESC(VBOXVHWA_SURFACEDESC RT_UNTRUSTED_VOLATILE_HOST *pVHWADesc, DDSURFACEDESC *pDdDesc);
     115int VBoxDispVHWAFromDDPIXELFORMAT(VBOXVHWA_PIXELFORMAT RT_UNTRUSTED_VOLATILE_HOST *pVHWAFormat, DDPIXELFORMAT *pDdFormat);
     116void VBoxDispVHWAFromDDOVERLAYFX(VBOXVHWA_OVERLAYFX RT_UNTRUSTED_VOLATILE_HOST  *pVHWAOverlay, DDOVERLAYFX *pDdOverlay);
     117void VBoxDispVHWAFromDDCOLORKEY(VBOXVHWA_COLORKEY RT_UNTRUSTED_VOLATILE_HOST *pVHWACKey, DDCOLORKEY  *pDdCKey);
     118void VBoxDispVHWAFromDDBLTFX(VBOXVHWA_BLTFX RT_UNTRUSTED_VOLATILE_HOST *pVHWABlt, DDBLTFX *pDdBlt);
     119void VBoxDispVHWAFromRECTL(VBOXVHWA_RECTL *pDst, RECTL const *pSrc);
     120void VBoxDispVHWAFromRECTL(VBOXVHWA_RECTL RT_UNTRUSTED_VOLATILE_HOST *pDst, RECTL const *pSrc);
    119121
    120122uint32_t VBoxDispVHWAUnsupportedDDCAPS(uint32_t caps);
     
    127129uint32_t VBoxDispVHWASupportedDDCEYCAPS(uint32_t caps);
    128130
    129 #endif /*VBOXDISPVHWA_H*/
     131#endif /* !VBOXDISPVHWA_H */
     132
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVhwa.cpp

    r71590 r71592  
    2525
    2626#define VBOXVHWA_PRIMARY_ALLOCATION(_pSrc) ((_pSrc)->pPrimaryAllocation)
     27
     28#define VBOXVHWA_COPY_RECT(a_pDst, a_pSrc) do { \
     29        (a_pDst)->left    = (a_pSrc)->left; \
     30        (a_pDst)->top     = (a_pSrc)->top; \
     31        (a_pDst)->right   = (a_pSrc)->right; \
     32        (a_pDst)->bottom  = (a_pSrc)->bottom; \
     33    } while(0)
    2734
    2835
     
    222229}
    223230
    224 void vboxVhwaFreeHostInfo1(PVBOXMP_DEVEXT pDevExt, VBOXVHWACMD_QUERYINFO1* pInfo)
    225 {
    226     VBOXVHWACMD* pCmd = VBOXVHWACMD_HEAD(pInfo);
     231static void vboxVhwaFreeHostInfo1(PVBOXMP_DEVEXT pDevExt, VBOXVHWACMD_QUERYINFO1 RT_UNTRUSTED_VOLATILE_HOST *pInfo)
     232{
     233    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd = VBOXVHWACMD_HEAD(pInfo);
    227234    vboxVhwaCommandFree(pDevExt, pCmd);
    228235}
    229236
    230 void vboxVhwaFreeHostInfo2(PVBOXMP_DEVEXT pDevExt, VBOXVHWACMD_QUERYINFO2* pInfo)
    231 {
    232     VBOXVHWACMD* pCmd = VBOXVHWACMD_HEAD(pInfo);
     237static void vboxVhwaFreeHostInfo2(PVBOXMP_DEVEXT pDevExt, VBOXVHWACMD_QUERYINFO2 RT_UNTRUSTED_VOLATILE_HOST *pInfo)
     238{
     239    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd = VBOXVHWACMD_HEAD(pInfo);
    233240    vboxVhwaCommandFree(pDevExt, pCmd);
    234241}
    235242
    236 VBOXVHWACMD_QUERYINFO1* vboxVhwaQueryHostInfo1(PVBOXMP_DEVEXT pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId)
     243static VBOXVHWACMD_QUERYINFO1 RT_UNTRUSTED_VOLATILE_HOST *
     244vboxVhwaQueryHostInfo1(PVBOXMP_DEVEXT pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId)
    237245{
    238246    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd = vboxVhwaCommandCreate(pDevExt, srcId, VBOXVHWACMD_TYPE_QUERY_INFO1,
     
    240248    AssertReturnStmt(pCmd, LOGREL(("vboxVhwaCommandCreate failed")), NULL);
    241249
    242     VBOXVHWACMD_QUERYINFO1 *pInfo1 = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_QUERYINFO1);
     250    VBOXVHWACMD_QUERYINFO1 RT_UNTRUSTED_VOLATILE_HOST *pInfo1 = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_QUERYINFO1);
    243251    pInfo1->u.in.guestVersion.maj = VBOXVHWA_VERSION_MAJ;
    244252    pInfo1->u.in.guestVersion.min = VBOXVHWA_VERSION_MIN;
     
    256264}
    257265
    258 VBOXVHWACMD_QUERYINFO2* vboxVhwaQueryHostInfo2(PVBOXMP_DEVEXT pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId, uint32_t numFourCC)
     266static VBOXVHWACMD_QUERYINFO2 RT_UNTRUSTED_VOLATILE_HOST *
     267vboxVhwaQueryHostInfo2(PVBOXMP_DEVEXT pDevExt,  D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId, uint32_t numFourCC)
    259268{
    260269    VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd = vboxVhwaCommandCreate(pDevExt, srcId, VBOXVHWACMD_TYPE_QUERY_INFO2,
     
    262271    AssertReturnStmt(pCmd, LOGREL(("vboxVhwaCommandCreate failed")), NULL);
    263272
    264     VBOXVHWACMD_QUERYINFO2 *pInfo2 = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_QUERYINFO2);
     273    VBOXVHWACMD_QUERYINFO2 RT_UNTRUSTED_VOLATILE_HOST *pInfo2 = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_QUERYINFO2);
    265274    pInfo2->numFourCC = numFourCC;
    266275
    267276    int rc = vboxVhwaCommandSubmit(pDevExt, pCmd);
    268277    AssertRC(rc);
    269     if(RT_SUCCESS(rc))
     278    if (RT_SUCCESS(rc))
    270279    {
    271280        AssertRC(pCmd->rc);
    272281        if(RT_SUCCESS(pCmd->rc))
    273         {
    274282            if(pInfo2->numFourCC == numFourCC)
    275             {
    276283                return pInfo2;
    277             }
    278         }
    279284    }
    280285
     
    340345    vboxVhwaHlpOverlayListInit(pDevExt, srcId);
    341346
    342     VBOXVHWACMD_QUERYINFO1* pInfo1 = vboxVhwaQueryHostInfo1(pDevExt, srcId);
     347    VBOXVHWACMD_QUERYINFO1 RT_UNTRUSTED_VOLATILE_HOST *pInfo1 = vboxVhwaQueryHostInfo1(pDevExt, srcId);
    343348    if (pInfo1)
    344349    {
     
    380385                        && (pInfo1->u.out.caps & VBOXVHWA_CAPS_OVERLAYFOURCC))
    381386                {
    382                     VBOXVHWACMD_QUERYINFO2* pInfo2 = vboxVhwaQueryHostInfo2(pDevExt, srcId, pInfo1->u.out.numFourCC);
     387                    VBOXVHWACMD_QUERYINFO2 RT_UNTRUSTED_VOLATILE_HOST *pInfo2 =
     388                        vboxVhwaQueryHostInfo2(pDevExt, srcId, pInfo1->u.out.numFourCC);
    383389                    if (pInfo2)
    384390                    {
     
    415421}
    416422
    417 int vboxVhwaHlpTranslateFormat(VBOXVHWA_PIXELFORMAT *pFormat, D3DDDIFORMAT enmFormat)
     423static int vboxVhwaHlpTranslateFormat(VBOXVHWA_PIXELFORMAT RT_UNTRUSTED_VOLATILE_HOST *pFormat, D3DDDIFORMAT enmFormat)
    418424{
    419425    pFormat->Reserved = 0;
     
    490496    if (pCmd)
    491497    {
    492         VBOXVHWACMD_SURF_DESTROY * pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_DESTROY);
    493 
    494         memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_DESTROY));
     498        VBOXVHWACMD_SURF_DESTROY RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_DESTROY);
     499
     500        memset((void *)pBody, 0, sizeof(VBOXVHWACMD_SURF_DESTROY));
    495501
    496502        pBody->u.in.hSurf = pSurf->hHostHandle;
     
    507513}
    508514
    509 int vboxVhwaHlpPopulateSurInfo(VBOXVHWA_SURFACEDESC *pInfo, PVBOXWDDM_ALLOCATION pSurf,
     515int vboxVhwaHlpPopulateSurInfo(VBOXVHWA_SURFACEDESC RT_UNTRUSTED_VOLATILE_HOST *pInfo, PVBOXWDDM_ALLOCATION pSurf,
    510516                               uint32_t fFlags, uint32_t cBackBuffers, uint32_t fSCaps,
    511517                               D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId)
    512518{
    513519    RT_NOREF(VidPnSourceId);
    514     memset(pInfo, 0, sizeof(VBOXVHWA_SURFACEDESC));
     520    memset((void *)pInfo, 0, sizeof(VBOXVHWA_SURFACEDESC));
    515521
    516522#if 0
     
    568574}
    569575
    570 int vboxVhwaHlpCheckApplySurfInfo(PVBOXWDDM_ALLOCATION pSurf, VBOXVHWA_SURFACEDESC *pInfo,
    571         uint32_t fFlags, bool bApplyHostHandle)
     576int vboxVhwaHlpCheckApplySurfInfo(PVBOXWDDM_ALLOCATION pSurf, VBOXVHWA_SURFACEDESC RT_UNTRUSTED_VOLATILE_HOST *pInfo,
     577                                  uint32_t fFlags, bool bApplyHostHandle)
    572578{
    573579    int rc = VINF_SUCCESS;
     
    615621    if (pCmd)
    616622    {
    617         VBOXVHWACMD_SURF_CREATE * pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_CREATE);
     623        VBOXVHWACMD_SURF_CREATE RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_CREATE);
    618624        int rc = VINF_SUCCESS;
    619625
    620         memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_CREATE));
    621 
    622         rc = vboxVhwaHlpPopulateSurInfo(&pBody->SurfInfo, pSurf,
    623                 fFlags, cBackBuffers, fSCaps,
    624                 VidPnSourceId);
     626        memset((void *)pBody, 0, sizeof(VBOXVHWACMD_SURF_CREATE));
     627
     628        rc = vboxVhwaHlpPopulateSurInfo(&pBody->SurfInfo, pSurf, fFlags, cBackBuffers, fSCaps, VidPnSourceId);
    625629        AssertRC(rc);
    626630        if (RT_SUCCESS(rc))
     
    629633            Assert(pCmd->rc == VINF_SUCCESS);
    630634            if(pCmd->rc == VINF_SUCCESS)
    631             {
    632635                rc = vboxVhwaHlpCheckApplySurfInfo(pSurf, &pBody->SurfInfo, fFlags, true);
    633             }
    634636            else
    635637                rc = pCmd->rc;
     
    650652    if (pCmd)
    651653    {
    652         VBOXVHWACMD_SURF_GETINFO * pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_GETINFO);
     654        VBOXVHWACMD_SURF_GETINFO RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_GETINFO);
    653655        int rc = VINF_SUCCESS;
    654656
    655         memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_GETINFO));
    656 
    657         rc = vboxVhwaHlpPopulateSurInfo(&pBody->SurfInfo, pSurf,
    658                 0, 0, VBOXVHWA_SCAPS_OVERLAY | VBOXVHWA_SCAPS_VIDEOMEMORY | VBOXVHWA_SCAPS_LOCALVIDMEM | VBOXVHWA_SCAPS_COMPLEX,
    659                 VidPnSourceId);
     657        memset((void *)pBody, 0, sizeof(VBOXVHWACMD_SURF_GETINFO));
     658
     659        rc = vboxVhwaHlpPopulateSurInfo(&pBody->SurfInfo, pSurf, 0, 0,
     660                                          VBOXVHWA_SCAPS_OVERLAY | VBOXVHWA_SCAPS_VIDEOMEMORY
     661                                        | VBOXVHWA_SCAPS_LOCALVIDMEM | VBOXVHWA_SCAPS_COMPLEX,
     662                                        VidPnSourceId);
    660663        AssertRC(rc);
    661664        if (RT_SUCCESS(rc))
     
    664667            Assert(pCmd->rc == VINF_SUCCESS);
    665668            if(pCmd->rc == VINF_SUCCESS)
    666             {
    667669                rc = vboxVhwaHlpCheckApplySurfInfo(pSurf, &pBody->SurfInfo, 0, true);
    668             }
    669670            else
    670671                rc = pCmd->rc;
     
    824825        if (pCmd)
    825826        {
    826             VBOXVHWACMD_SURF_FLIP * pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_FLIP);
    827 
    828             memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_FLIP));
     827            VBOXVHWACMD_SURF_FLIP RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_FLIP);
     828
     829            memset((void *)pBody, 0, sizeof(VBOXVHWACMD_SURF_FLIP));
    829830
    830831//            pBody->TargGuestSurfInfo;
     
    839840                pBody->u.in.xUpdatedTargMemValid = 1;
    840841                if (pOurInfo->DirtyRegion.fFlags & VBOXWDDM_DIRTYREGION_F_RECT_VALID)
    841                     pBody->u.in.xUpdatedTargMemRect = *(VBOXVHWA_RECTL*)((void*)&pOurInfo->DirtyRegion.Rect);
     842                    VBOXVHWA_COPY_RECT(&pBody->u.in.xUpdatedTargMemRect, &pOurInfo->DirtyRegion.Rect);
    842843                else
    843844                {
     
    896897    if(pCmd)
    897898    {
    898         VBOXVHWACMD_SURF_COLORFILL * pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_COLORFILL);
    899 
    900         memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_COLORFILL));
     899        VBOXVHWACMD_SURF_COLORFILL RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_COLORFILL);
     900
     901        memset((void *)pBody, 0, sizeof(VBOXVHWACMD_SURF_COLORFILL));
    901902
    902903        pBody->u.in.hSurf = pAlloc->hHostHandle;
    903904        pBody->u.in.offSurface = pAlloc->AllocData.Addr.offVram;
    904905        pBody->u.in.cRects = pCF->ClrFill.Rects.cRects;
    905         memcpy (pBody->u.in.aRects, pCF->ClrFill.Rects.aRects, pCF->ClrFill.Rects.cRects * sizeof (pCF->ClrFill.Rects.aRects[0]));
     906        memcpy((void *)&pBody->u.in.aRects[0], pCF->ClrFill.Rects.aRects,
     907               pCF->ClrFill.Rects.cRects * sizeof (pCF->ClrFill.Rects.aRects[0]));
    906908        vboxVhwaCommandSubmitAsynchAndComplete(pOverlay->pDevExt, pCmd);
    907909
     
    985987        if (pCmd)
    986988        {
    987             VBOXVHWACMD_SURF_OVERLAY_UPDATE * pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_OVERLAY_UPDATE);
    988 
    989             memset(pBody, 0, sizeof(VBOXVHWACMD_SURF_OVERLAY_UPDATE));
     989            VBOXVHWACMD_SURF_OVERLAY_UPDATE RT_UNTRUSTED_VOLATILE_HOST *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_OVERLAY_UPDATE);
     990
     991            memset((void *)pBody, 0, sizeof(VBOXVHWACMD_SURF_OVERLAY_UPDATE));
    990992
    991993            pBody->u.in.hDstSurf = pFbSurf->hHostHandle;
    992994            pBody->u.in.offDstSurface = pFbSurf->AllocData.Addr.offVram;
    993             pBody->u.in.dstRect = *(VBOXVHWA_RECTL*)((void*)&pOverlayInfo->DstRect);
     995            VBOXVHWA_COPY_RECT(&pBody->u.in.dstRect, &pOverlayInfo->DstRect);
     996
    994997            pBody->u.in.hSrcSurf = pAlloc->hHostHandle;
    995998            pBody->u.in.offSrcSurface = pOverlayInfo->PhysicalAddress.QuadPart;
    996999            pAlloc->AllocData.Addr.offVram = pOverlayInfo->PhysicalAddress.QuadPart;
    997             pBody->u.in.srcRect = *(VBOXVHWA_RECTL*)((void*)&pOverlayInfo->SrcRect);
     1000            VBOXVHWA_COPY_RECT(&pBody->u.in.srcRect, &pOverlayInfo->SrcRect);
     1001
    9981002            pBody->u.in.flags |= VBOXVHWA_OVER_SHOW;
    9991003            if (pOurInfo->OverlayDesc.fFlags & VBOXWDDM_OVERLAY_F_CKEY_DST)
     
    10151019                pBody->u.in.xFlags |= VBOXVHWACMD_SURF_OVERLAY_UPDATE_F_SRCMEMRECT;
    10161020                if (pOurInfo->DirtyRegion.fFlags & VBOXWDDM_DIRTYREGION_F_RECT_VALID)
    1017                     pBody->u.in.xUpdatedSrcMemRect = *(VBOXVHWA_RECTL*)((void*)&pOurInfo->DirtyRegion.Rect);
     1021                    VBOXVHWA_COPY_RECT(&pBody->u.in.xUpdatedSrcMemRect, &pOurInfo->DirtyRegion.Rect);
    10181022                else
    10191023                {
     
    10271031            {
    10281032                pBody->u.in.xFlags |= VBOXVHWACMD_SURF_OVERLAY_UPDATE_F_DSTMEMRECT;
    1029                 pBody->u.in.xUpdatedDstMemRect = *(VBOXVHWA_RECTL*)((void*)pDstUpdateRect);
     1033                VBOXVHWA_COPY_RECT(&pBody->u.in.xUpdatedDstMemRect, pDstUpdateRect);
    10301034            }
    10311035
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVhwa.h

    r71590 r71592  
    5252#endif
    5353
    54 void vboxVhwaFreeHostInfo1(PVBOXMP_DEVEXT pDevExt, VBOXVHWACMD_QUERYINFO1* pInfo);
    55 void vboxVhwaFreeHostInfo2(PVBOXMP_DEVEXT pDevExt, VBOXVHWACMD_QUERYINFO2* pInfo);
    56 VBOXVHWACMD_QUERYINFO1* vboxVhwaQueryHostInfo1(PVBOXMP_DEVEXT pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId);
    57 VBOXVHWACMD_QUERYINFO2* vboxVhwaQueryHostInfo2(PVBOXMP_DEVEXT pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId, uint32_t numFourCC);
    5854int vboxVhwaEnable(PVBOXMP_DEVEXT pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId);
    5955int vboxVhwaDisable(PVBOXMP_DEVEXT pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId);
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm/VBoxMPInternal.cpp

    r71590 r71592  
    356356}
    357357
    358 DECLCALLBACK(void) VBoxMPHGSMIHostCmdCompleteCB(HVBOXVIDEOHGSMI hHGSMI, struct VBVAHOSTCMD *pCmd)
     358/** @callback_method_impl{FNVBOXVIDEOHGSMICOMPLETION} */
     359DECLCALLBACK(void) VBoxMPHGSMIHostCmdCompleteCB(HVBOXVIDEOHGSMI hHGSMI, struct VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST *pCmd)
    359360{
    360361    PHGSMIHOSTCOMMANDCONTEXT pCtx = &((PVBOXMP_COMMON)hHGSMI)->hostCtx;
     
    362363}
    363364
     365/** @callback_method_impl{FNVBOXVIDEOHGSMICOMMANDS} */
    364366DECLCALLBACK(int) VBoxMPHGSMIHostCmdRequestCB(HVBOXVIDEOHGSMI hHGSMI, uint8_t u8Channel,
    365                                               uint32_t iDisplay, struct VBVAHOSTCMD **ppCmd)
     367                                              uint32_t iDisplay, struct VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST **ppCmd)
    366368{
    367369    LOGF_ENTER();
     
    379381
    380382    HGSMICHANNEL *pChannel = HGSMIChannelFindById(&pCtx->channels, u8Channel);
    381     if(pChannel)
     383    if (pChannel)
    382384    {
    383385        VBVA_CHANNELCONTEXTS * pContexts = (VBVA_CHANNELCONTEXTS *)pChannel->handler.pvHandler;
    384386        VBVADISP_CHANNELCONTEXT *pDispContext = VBoxVbvaFindHandlerInfo(pContexts, iDisplay);
    385387
    386         if(pDispContext)
     388        if (pDispContext)
    387389        {
    388390            VBVAHOSTCMD *pCmd;
     
    391393                pCmd = ASMAtomicReadPtrT(&pDispContext->pCmd, VBVAHOSTCMD *);
    392394            } while (!ASMAtomicCmpXchgPtr(&pDispContext->pCmd, NULL, pCmd));
     395
    393396            *ppCmd = VBoxVbvaReverseList(pCmd);
    394397
     
    396399            return VINF_SUCCESS;
    397400        }
    398         else
    399         {
    400             WARN(("!pDispContext for display %d", iDisplay));
    401         }
    402     }
    403 
     401        WARN(("!pDispContext for display %d", iDisplay));
     402    }
     403
     404    *ppCmd = NULL;
    404405    LOGF_LEAVE();
    405406    return VERR_INVALID_PARAMETER;
     
    510511                            break;
    511512                        }
     513
    512514                        case VBVAHG_EVENT:
    513515                        {
    514                             VBVAHOSTCMDEVENT *pEventCmd = VBVAHOSTCMD_BODY(pCur, VBVAHOSTCMDEVENT);
     516                            VBVAHOSTCMDEVENT RT_UNTRUSTED_VOLATILE_HOST *pEventCmd = VBVAHOSTCMD_BODY(pCur, VBVAHOSTCMDEVENT);
    515517                            VBoxMPSignalEvent(pCallbacks->pCommon, pEventCmd->pEvent);
    516518                        }
     519
    517520                        default:
    518521                        {
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm/VBoxMPInternal.h

    r71179 r71592  
    3131void VBoxCreateDisplays(PVBOXMP_DEVEXT pExt, PVIDEO_PORT_CONFIG_INFO pConfigInfo);
    3232int VBoxVbvaEnable(PVBOXMP_DEVEXT pExt, BOOLEAN bEnable, VBVAENABLERESULT *pResult);
    33 DECLCALLBACK(void) VBoxMPHGSMIHostCmdCompleteCB(HVBOXVIDEOHGSMI hHGSMI, struct VBVAHOSTCMD *pCmd);
    34 DECLCALLBACK(int) VBoxMPHGSMIHostCmdRequestCB(HVBOXVIDEOHGSMI hHGSMI, uint8_t u8Channel, uint32_t iDisplay, struct VBVAHOSTCMD **ppCmd);
     33DECLCALLBACK(void) VBoxMPHGSMIHostCmdCompleteCB(HVBOXVIDEOHGSMI hHGSMI, struct VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST *pCmd);
     34DECLCALLBACK(int) VBoxMPHGSMIHostCmdRequestCB(HVBOXVIDEOHGSMI hHGSMI, uint8_t u8Channel, uint32_t iDisplay,
     35                                              struct VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST **ppCmd);
    3536int VBoxVbvaChannelDisplayEnable(PVBOXMP_COMMON pCommon, int iDisplay, uint8_t u8Channel);
    3637
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