VirtualBox

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


Ignore:
Timestamp:
Jul 11, 2007 1:16:26 PM (18 years ago)
Author:
vboxsync
Message:

More logging

Location:
trunk/src/VBox/Additions/WINNT/Graphics/Display
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/Makefile.kmk

    r3418 r3550  
    3232VBoxDisp_SYSSUFF     = .dll
    3333VBoxDisp_DEFS        = _WIN32_WINNT=0x0501 LOG_TO_BACKDOOR VBOX_WITH_DDRAW VBOX_WITH_OPENGL
     34VBoxDisp_INCS        = ..\..\include
    3435#VBoxDisp_DEFS        += LOG_ENABLED
    3536#VBoxDisp_DEFS        += STAT_sunlover
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/enable.c

    r3425 r3550  
    1515#include "driver.h"
    1616#include "dd.h"
     17#include <VBoxDisplay.h>
    1718
    1819// The driver function table with all function index/address pairs
     
    7677ULONG APIENTRY DrvEscape(SURFOBJ *pso, ULONG iEsc, ULONG cjIn, PVOID pvIn, ULONG cjOut, PVOID pvOut)
    7778{
     79    PDEV*   ppdev = (PDEV*) pso->dhpdev;
     80
    7881    DISPDBG((0, "%s: %p, %p, %p, %p, %p, %p\n", __FUNCTION__, pso, iEsc, cjIn, pvIn, cjOut, pvOut));
    7982
     
    107110    }
    108111#endif
     112
     113    case VBOXESC_SETVISIBLEREGION:
     114    {
     115        LPRGNDATA lpRgnData = (LPRGNDATA)pvIn;
     116
     117        DISPDBG((0, "VBOXESC_SETVISIBLEREGION\n"));
     118
     119        if (    cjIn >= sizeof(RGNDATAHEADER)
     120            &&  pvIn
     121            &&  lpRgnData->rdh.dwSize == sizeof(RGNDATAHEADER)
     122            &&  lpRgnData->rdh.iType  == RDH_RECTANGLES
     123            &&  cjIn == lpRgnData->rdh.nCount * sizeof(RECT) + sizeof(RGNDATAHEADER))
     124        {
     125            DWORD   ulReturn, i;
     126            PRTRECT pRTRect;
     127            RECT   *pRect = (RECT *)&lpRgnData->Buffer;
     128
     129            pRTRect = (PRTRECT) EngAllocMem(0, lpRgnData->rdh.nCount*sizeof(RTRECT), ALLOC_TAG);
     130            for (i=0;i<lpRgnData->rdh.nCount;i++)
     131            {
     132                pRTRect[i].xLeft   = pRect->left;
     133                pRTRect[i].yBottom = pRect->bottom;
     134                pRTRect[i].xRight  = pRect->right;
     135                pRTRect[i].yTop    = pRect->top;
     136            }
     137
     138            if (EngDeviceIoControl(ppdev->hDriver,
     139                                   IOCTL_VIDEO_VBOX_SETVISIBLEREGION,
     140                                   pRTRect,
     141                                   lpRgnData->rdh.nCount*sizeof(RTRECT),
     142                                   NULL,
     143                                   0,
     144                                   &ulReturn))
     145            {
     146                DISPDBG((0, "DISP DrvAssertMode failed IOCTL_VIDEO_VBOX_SETVISIBLEREGION\n"));
     147                return 0;
     148            }
     149            else
     150            {
     151                DISPDBG((0, "DISP IOCTL_VIDEO_VBOX_SETVISIBLEREGION successful\n"));
     152                return 1;
     153            }
     154
     155        }
     156        else
     157        {
     158            if (pvIn)
     159                DISPDBG((0, "check failed rdh.dwSize=%x iType=%d size=%d expected size=%d\n", lpRgnData->rdh.dwSize, lpRgnData->rdh.iType, cjIn, lpRgnData->rdh.nCount * sizeof(RECT) + sizeof(RGNDATAHEADER)));
     160        }
     161
     162        break;
     163    }
    109164
    110165    case QUERYESCSUPPORT:
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