VirtualBox

Ignore:
Timestamp:
Feb 26, 2010 5:24:48 PM (15 years ago)
Author:
vboxsync
Message:

wddm: add missing callbacks + stubs for drbugging

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp

    r26833 r26874  
    201201    return Status;
    202202}
    203 
    204 #if 0
    205 
    206 NTSTATUS vboxWddmGhInitPrimary(PDEVICE_EXTENSION pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId, D3DKMDT_VIDPN_SOURCE_MODE *pVidPnSourceModeInfo)
    207 {
    208     NTSTATUS Status;
    209     PVBOXWDDM_SOURCE pSourceInfo = &pDevExt->aSources[srcId];
    210     memset(pSourceInfo, 0, sizeof (VBOXWDDM_SOURCE));
    211     pSourceInfo->VisScreenWidth = pVidPnSourceModeInfo->Format.Graphics.PrimSurfSize.cx;
    212     pSourceInfo->VisScreenHeight = pVidPnSourceModeInfo->Format.Graphics.PrimSurfSize.cy;
    213     pSourceInfo->BitsPerPlane = vboxWddmCalcBitsPerPixel(pVidPnSourceModeInfo->Format.Graphics.PixelFormat);
    214     Assert(pSourceInfo->BitsPerPlane);
    215     if (pSourceInfo->BitsPerPlane)
    216     {
    217         /*
    218          * Set the current mode into the hardware.
    219          */
    220         if (VBoxVideoSetCurrentMode(pDevExt, srcId, pSourceInfo))
    221         {
    222 
    223 
    224         }
    225         else
    226         {
    227             AssertBreakpoint();
    228 
    229         }
    230     }
    231     else
    232     {
    233         drprintf((__FUNCTION__":ERROR: failed to caltulate bpp from pixel format (%d)\n",
    234                 pVidPnSourceModeInfo->Format.Graphics.PixelFormat));
    235         return STATUS_INVALID_PARAMETER;
    236     }
    237 
    238     return Status;
    239 
    240 
    241 
    242 //    DWORD returnedDataLength;
    243 //    DWORD MaxWidth, MaxHeight;
    244 //    VIDEO_MEMORY videoMemory;
    245 //    VIDEO_MEMORY_INFORMATION videoMemoryInformation;
    246 //    ULONG RemappingNeeded = 0;
    247 
    248 
    249     /*
    250      * don't need to map anything here, we use one common HGSMI heap for all sources
    251      */
    252 
    253     // If this is the first time we enable the surface we need to map in the
    254     // memory also.
    255     //
    256 
    257     if (bFirst || RemappingNeeded)
    258     {
    259 //        videoMemory.RequestedVirtualAddress = NULL;
    260 //
    261 //        if (EngDeviceIoControl(ppdev->hDriver,
    262 //                               IOCTL_VIDEO_MAP_VIDEO_MEMORY,
    263 //                               &videoMemory,
    264 //                               sizeof(VIDEO_MEMORY),
    265 //                               &videoMemoryInformation,
    266 //                               sizeof(VIDEO_MEMORY_INFORMATION),
    267 //                               &returnedDataLength))
    268 //        {
    269 //            DISPDBG((1, "DISP bInitSURF failed IOCTL_VIDEO_MAP\n"));
    270 //            return(FALSE);
    271 //        }
    272 //
    273 //        ppdev->pjScreen = (PBYTE)(videoMemoryInformation.FrameBufferBase);
    274 //
    275 //        if (videoMemoryInformation.FrameBufferBase !=
    276 //            videoMemoryInformation.VideoRamBase)
    277 //        {
    278 //            DISPDBG((0, "VideoRamBase does not correspond to FrameBufferBase\n"));
    279 //        }
    280 //
    281 //        //
    282 //        // Make sure we can access this video memory
    283 //        //
    284 //
    285 //        *(PULONG)(ppdev->pjScreen) = 0xaa55aa55;
    286 //
    287 //        if (*(PULONG)(ppdev->pjScreen) != 0xaa55aa55) {
    288 //
    289 //            DISPDBG((1, "Frame buffer memory is not accessible.\n"));
    290 //            return(FALSE);
    291 //        }
    292 //
    293 //        /* Clear VRAM to avoid distortions during the video mode change. */
    294 //        RtlZeroMemory(ppdev->pjScreen,
    295 //                      ppdev->cyScreen * (ppdev->lDeltaScreen > 0? ppdev->lDeltaScreen: -ppdev->lDeltaScreen));
    296 //
    297 //        //
    298 //        // Initialize the head of the offscreen list to NULL.
    299 //        //
    300 //
    301 //        ppdev->pOffscreenList = NULL;
    302 //
    303 //        // It's a hardware pointer; set up pointer attributes.
    304 //
    305 //        MaxHeight = ppdev->PointerCapabilities.MaxHeight;
    306 //
    307 //        // Allocate space for two DIBs (data/mask) for the pointer. If this
    308 //        // device supports a color Pointer, we will allocate a larger bitmap.
    309 //        // If this is a color bitmap we allocate for the largest possible
    310 //        // bitmap because we have no idea of what the pixel depth might be.
    311 //
    312 //        // Width rounded up to nearest byte multiple
    313 //
    314 //        if (!(ppdev->PointerCapabilities.Flags & VIDEO_MODE_COLOR_POINTER))
    315 //        {
    316 //            MaxWidth = (ppdev->PointerCapabilities.MaxWidth + 7) / 8;
    317 //        }
    318 //        else
    319 //        {
    320 //            MaxWidth = ppdev->PointerCapabilities.MaxWidth * sizeof(DWORD);
    321 //        }
    322 //
    323 //        ppdev->cjPointerAttributes =
    324 //                sizeof(VIDEO_POINTER_ATTRIBUTES) +
    325 //                ((sizeof(UCHAR) * MaxWidth * MaxHeight) * 2);
    326 //
    327 //        ppdev->pPointerAttributes = (PVIDEO_POINTER_ATTRIBUTES)
    328 //                EngAllocMem(0, ppdev->cjPointerAttributes, ALLOC_TAG);
    329 //
    330 //        if (ppdev->pPointerAttributes == NULL) {
    331 //
    332 //            DISPDBG((0, "bInitPointer EngAllocMem failed\n"));
    333 //            return(FALSE);
    334 //        }
    335 //
    336 //        ppdev->pPointerAttributes->Flags = ppdev->PointerCapabilities.Flags;
    337 //        ppdev->pPointerAttributes->WidthInBytes = MaxWidth;
    338 //        ppdev->pPointerAttributes->Width = ppdev->PointerCapabilities.MaxWidth;
    339 //        ppdev->pPointerAttributes->Height = MaxHeight;
    340 //        ppdev->pPointerAttributes->Column = 0;
    341 //        ppdev->pPointerAttributes->Row = 0;
    342 //        ppdev->pPointerAttributes->Enable = 0;
    343 
    344         vboxInitVBoxVideo (ppdev, &videoMemoryInformation);
    345 
    346 #ifndef VBOX_WITH_HGSMI
    347         if (ppdev->bVBoxVideoSupported)
    348         {
    349             /* Setup the display information. */
    350             vboxSetupDisplayInfo (ppdev, &videoMemoryInformation);
    351         }
    352 #endif /* !VBOX_WITH_HGSMI */
    353     }
    354 
    355 
    356     DISPDBG((1, "DISP bInitSURF: ppdev->ulBitCount %d\n", ppdev->ulBitCount));
    357 
    358     if (   ppdev->ulBitCount == 16
    359         || ppdev->ulBitCount == 24
    360         || ppdev->ulBitCount == 32)
    361     {
    362 #ifndef VBOX_WITH_HGSMI
    363         if (ppdev->pInfo) /* Do not use VBVA on old hosts. */
    364         {
    365             /* Enable VBVA for this video mode. */
    366             vboxVbvaEnable (ppdev);
    367         }
    368 #else
    369         if (ppdev->bHGSMISupported)
    370         {
    371             /* Enable VBVA for this video mode. */
    372             ppdev->bHGSMISupported = vboxVbvaEnable (ppdev);
    373             LogRel(("VBoxDisp[%d]: VBVA %senabled\n", ppdev->iDevice, ppdev->bHGSMISupported? "": "not "));
    374         }
    375 #endif /* VBOX_WITH_HGSMI */
    376     }
    377 
    378     DISPDBG((1, "DISP bInitSURF success\n"));
    379 
    380 #ifndef VBOX_WITH_HGSMI
    381     /* Update the display information. */
    382     vboxUpdateDisplayInfo (ppdev);
    383 #else
    384     /* Inform the host about this screen layout. */
    385     DISPDBG((1, "bInitSURF: %d,%d\n", ppdev->ptlDevOrg.x, ppdev->ptlDevOrg.y));
    386     VBoxProcessDisplayInfo (ppdev);
    387 #endif /* VBOX_WITH_HGSMI */
    388 
    389 #ifdef VBOX_WITH_VIDEOHWACCEL
    390     /* tells we can process host commands */
    391     vboxVHWAEnable(ppdev);
    392 #endif
    393 
    394     return(TRUE);
    395 }
    396 #endif
    397203
    398204HGSMIHEAP* vboxWddmHgsmiGetHeapFromCmdOffset(PDEVICE_EXTENSION pDevExt, HGSMIOFFSET offCmd)
     
    849655    )
    850656{
    851     return STATUS_NOT_IMPLEMENTED;
     657    /* The DxgkDdiStopDevice function should be made pageable. */
     658    PAGED_CODE();
     659
     660    dfprintf(("==> "__FUNCTION__ ", context(0x%p)\n", MiniportDeviceContext));
     661
     662    AssertBreakpoint();
     663    /* @todo: fixme: implement */
     664
     665    dfprintf(("<== "__FUNCTION__ ", context(0x%p)\n", MiniportDeviceContext));
     666
     667    return STATUS_SUCCESS;
    852668}
    853669
     
    856672    )
    857673{
    858     return STATUS_NOT_IMPLEMENTED;
     674    /* DxgkDdiRemoveDevice should be made pageable. */
     675    PAGED_CODE();
     676
     677    dfprintf(("==> "__FUNCTION__ ", context(0x%p)\n", MiniportDeviceContext));
     678
     679    vboxWddmMemFree(MiniportDeviceContext);
     680
     681    dfprintf(("<== "__FUNCTION__ ", context(0x%p)\n", MiniportDeviceContext));
     682
     683    return STATUS_SUCCESS;
    859684}
    860685
     
    865690    )
    866691{
    867     return STATUS_NOT_IMPLEMENTED;
     692    dfprintf(("==> "__FUNCTION__ ", context(0x%p), ctl(0x%x)\n", MiniportDeviceContext, VideoRequestPacket->IoControlCode));
     693
     694    AssertBreakpoint();
     695#if 0
     696    PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)MiniportDeviceContext;
     697
     698    switch (VideoRequestPacket->IoControlCode)
     699    {
     700        case IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES:
     701        {
     702            if (VideoRequestPacket->OutputBufferLength < sizeof(VIDEO_COLOR_CAPABILITIES))
     703            {
     704                AssertBreakpoint();
     705                VideoRequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
     706                return TRUE;
     707            }
     708            VIDEO_COLOR_CAPABILITIES *pCaps = (VIDEO_COLOR_CAPABILITIES*)VideoRequestPacket->OutputBuffer;
     709
     710            pCaps->Length = sizeof (VIDEO_COLOR_CAPABILITIES);
     711            pCaps->AttributeFlags = VIDEO_DEVICE_COLOR;
     712            pCaps->RedPhosphoreDecay = 0;
     713            pCaps->GreenPhosphoreDecay = 0;
     714            pCaps->BluePhosphoreDecay = 0;
     715            pCaps->WhiteChromaticity_x = 3127;
     716            pCaps->WhiteChromaticity_y = 3290;
     717            pCaps->WhiteChromaticity_Y = 0;
     718            pCaps->RedChromaticity_x = 6700;
     719            pCaps->RedChromaticity_y = 3300;
     720            pCaps->GreenChromaticity_x = 2100;
     721            pCaps->GreenChromaticity_y = 7100;
     722            pCaps->BlueChromaticity_x = 1400;
     723            pCaps->BlueChromaticity_y = 800;
     724            pCaps->WhiteGamma = 0;
     725            pCaps->RedGamma = 20000;
     726            pCaps->GreenGamma = 20000;
     727            pCaps->BlueGamma = 20000;
     728
     729            VideoRequestPacket->StatusBlock->Status = NO_ERROR;
     730            VideoRequestPacket->StatusBlock->Information = sizeof (VIDEO_COLOR_CAPABILITIES);
     731            break;
     732        }
     733#if 0
     734        case IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS:
     735        {
     736            if (VideoRequestPacket->OutputBufferLength < sizeof(VIDEOPARAMETERS)
     737                    || VideoRequestPacket->InputBufferLength < sizeof(VIDEOPARAMETERS))
     738            {
     739                AssertBreakpoint();
     740                VideoRequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
     741                return TRUE;
     742            }
     743
     744            Result = VBoxVideoResetDevice((PDEVICE_EXTENSION)HwDeviceExtension,
     745                                          RequestPacket->StatusBlock);
     746            break;
     747        }
     748#endif
     749        default:
     750            AssertBreakpoint();
     751            VideoRequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION;
     752            VideoRequestPacket->StatusBlock->Information = 0;
     753    }
     754#endif
     755    dfprintf(("<== "__FUNCTION__ ", context(0x%p), ctl(0x%x)\n", MiniportDeviceContext, VideoRequestPacket->IoControlCode));
     756
     757    return STATUS_SUCCESS;
    868758}
    869759
     
    11141004    )
    11151005{
    1116     return STATUS_NOT_IMPLEMENTED;
     1006    dfprintf(("==> "__FUNCTION__ ", MiniportDeviceContext(0x%x)\n", MiniportDeviceContext));
     1007
     1008    AssertBreakpoint();
     1009
     1010    dfprintf(("<== "__FUNCTION__ ", MiniportDeviceContext(0x%x)\n", MiniportDeviceContext));
     1011
     1012    return STATUS_SUCCESS;
    11171013}
    11181014
     
    11331029    PAGED_CODE();
    11341030    dfprintf(("==> "__FUNCTION__ "\n"));
     1031
     1032    AssertBreakpoint();
     1033
    11351034    dfprintf(("<== "__FUNCTION__ "\n"));
    11361035}
     
    11411040    )
    11421041{
    1143     return STATUS_NOT_IMPLEMENTED;
     1042    dfprintf(("==> "__FUNCTION__ ", MiniportDeviceContext(0x%x)\n", MiniportDeviceContext));
     1043
     1044    AssertBreakpoint();
     1045
     1046    dfprintf(("<== "__FUNCTION__ ", MiniportDeviceContext(0x%x)\n", MiniportDeviceContext));
     1047
     1048    return STATUS_NOT_SUPPORTED;
    11441049}
    11451050
     
    11501055    )
    11511056{
    1152 
     1057    dfprintf(("==> "__FUNCTION__ "\n"));
     1058
     1059    AssertBreakpoint();
     1060
     1061    dfprintf(("<== "__FUNCTION__ "\n"));
    11531062}
    11541063
     
    14821391    DXGKARG_DESCRIBEALLOCATION*  pDescribeAllocation)
    14831392{
    1484     return STATUS_NOT_IMPLEMENTED;
     1393    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1394
     1395    AssertBreakpoint();
     1396    /* @todo: fixme: implement */
     1397
     1398    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1399
     1400    return STATUS_SUCCESS;
    14851401}
    14861402
     
    16021518    DXGKARG_ACQUIRESWIZZLINGRANGE*  pAcquireSwizzlingRange)
    16031519{
    1604     return STATUS_NOT_IMPLEMENTED;
     1520    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1521
     1522    AssertBreakpoint();
     1523
     1524    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1525
     1526    return STATUS_SUCCESS;
    16051527}
    16061528
     
    16111533    CONST DXGKARG_RELEASESWIZZLINGRANGE*  pReleaseSwizzlingRange)
    16121534{
    1613     return STATUS_NOT_IMPLEMENTED;
     1535    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1536
     1537    AssertBreakpoint();
     1538
     1539    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1540
     1541    return STATUS_SUCCESS;
    16141542}
    16151543
     
    17051633    CONST DXGKARG_PREEMPTCOMMAND*  pPreemptCommand)
    17061634{
    1707     return STATUS_NOT_IMPLEMENTED;
     1635    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1636
     1637    AssertBreakpoint();
     1638    /* @todo: fixme: implement */
     1639
     1640    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1641
     1642    return STATUS_SUCCESS;
    17081643}
    17091644
     
    17521687    )
    17531688{
    1754     return STATUS_NOT_IMPLEMENTED;
     1689    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1690
     1691    AssertBreakpoint();
     1692    /* @todo: fixme: implement */
     1693
     1694    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1695
     1696    return STATUS_SUCCESS;
    17551697}
    17561698
     
    17611703    CONST DXGKARG_SETPOINTERPOSITION*  pSetPointerPosition)
    17621704{
    1763     return STATUS_NOT_IMPLEMENTED;
     1705    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1706
     1707    AssertBreakpoint();
     1708    /* @todo: fixme: implement */
     1709
     1710    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1711
     1712    return STATUS_SUCCESS;
    17641713}
    17651714
     
    17701719    CONST DXGKARG_SETPOINTERSHAPE*  pSetPointerShape)
    17711720{
    1772     return STATUS_NOT_IMPLEMENTED;
     1721    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1722
     1723    AssertBreakpoint();
     1724    /* @todo: fixme: implement */
     1725
     1726    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1727
     1728    return STATUS_SUCCESS;
    17731729}
    17741730
     
    17781734    CONST HANDLE  hAdapter)
    17791735{
    1780     return STATUS_NOT_IMPLEMENTED;
     1736    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1737
     1738    AssertBreakpoint();
     1739    /* @todo: fixme: implement */
     1740
     1741    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1742
     1743    return STATUS_SUCCESS;
    17811744}
    17821745
     
    17891752    PAGED_CODE();
    17901753
     1754    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1755
     1756    AssertBreakpoint();
     1757
     1758    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1759
    17911760    return STATUS_INVALID_PARAMETER;
    17921761}
     
    17991768    )
    18001769{
    1801     return STATUS_NOT_IMPLEMENTED;
     1770    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1771
     1772    AssertBreakpoint();
     1773
     1774    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1775
     1776    return STATUS_SUCCESS;
    18021777}
    18031778
     
    18081783    DXGKARG_QUERYCURRENTFENCE*  pCurrentFence)
    18091784{
    1810     return STATUS_NOT_IMPLEMENTED;
     1785    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1786
     1787    AssertBreakpoint();
     1788    /* @todo: fixme: implement */
     1789
     1790    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     1791
     1792    return STATUS_SUCCESS;
    18111793}
    18121794
     
    23532335    )
    23542336{
    2355     return STATUS_NOT_IMPLEMENTED;
     2337    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2338
     2339    AssertBreakpoint();
     2340
     2341    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2342
     2343    return STATUS_SUCCESS;
    23562344}
    23572345
     
    23632351    )
    23642352{
    2365     return STATUS_NOT_IMPLEMENTED;
     2353    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2354
     2355    AssertBreakpoint();
     2356
     2357    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2358
     2359    return STATUS_SUCCESS;
    23662360}
    23672361
     
    23732367    )
    23742368{
    2375     return STATUS_NOT_IMPLEMENTED;
     2369    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2370
     2371    AssertBreakpoint();
     2372
     2373    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2374
     2375    return STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY;
    23762376}
    23772377
     
    23822382    DXGKARG_GETSCANLINE*  pGetScanLine)
    23832383{
    2384     return STATUS_NOT_IMPLEMENTED;
     2384    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2385
     2386    AssertBreakpoint();
     2387
     2388    pGetScanLine->InVerticalBlank = FALSE;
     2389    pGetScanLine->ScanLine = 0;
     2390
     2391    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2392
     2393    return STATUS_SUCCESS;
    23852394}
    23862395
     
    23912400    CONST DXGKARG_STOPCAPTURE*  pStopCapture)
    23922401{
    2393     return STATUS_NOT_IMPLEMENTED;
     2402    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2403
     2404    AssertBreakpoint();
     2405
     2406    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2407
     2408    return STATUS_SUCCESS;
    23942409}
    23952410
     
    24022417    )
    24032418{
    2404     return STATUS_NOT_IMPLEMENTED;
     2419    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2420
     2421    AssertBreakpoint();
     2422
     2423    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2424
     2425    /* @todo: STATUS_NOT_IMPLEMENTED ?? */
     2426    return STATUS_SUCCESS;
    24052427}
    24062428
     
    24112433    DXGKARG_CREATEOVERLAY  *pCreateOverlay)
    24122434{
     2435    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2436
     2437    AssertBreakpoint();
     2438
     2439    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2440
    24132441    return STATUS_NOT_IMPLEMENTED;
    24142442}
     
    24282456    dfprintf(("<== "__FUNCTION__ ", \n"));
    24292457
    2430     return STATUS_UNSUCCESSFUL;
     2458    return STATUS_SUCCESS;
    24312459}
    24322460
     
    24392467    /* DxgkDdiOpenAllocation should be made pageable. */
    24402468    PAGED_CODE();
     2469
     2470    dfprintf(("==> "__FUNCTION__ ", hDevice(0x%x)\n", hDevice));
    24412471
    24422472    NTSTATUS Status = STATUS_SUCCESS;
     
    24502480    }
    24512481
     2482    dfprintf(("<== "__FUNCTION__ ", hDevice(0x%x)\n", hDevice));
     2483
    24522484    return Status;
    24532485}
     
    24592491    CONST DXGKARG_CLOSEALLOCATION*  pCloseAllocation)
    24602492{
    2461     return STATUS_NOT_IMPLEMENTED;
     2493    /* DxgkDdiCloseAllocation should be made pageable. */
     2494    PAGED_CODE();
     2495
     2496    dfprintf(("==> "__FUNCTION__ ", hDevice(0x%x)\n", hDevice));
     2497
     2498    for (UINT i = 0; i < pCloseAllocation->NumAllocations; ++i)
     2499    {
     2500        vboxWddmMemFree(pCloseAllocation->pOpenHandleList[i]);
     2501    }
     2502
     2503    dfprintf(("<== "__FUNCTION__ ", hDevice(0x%x)\n", hDevice));
     2504
     2505    return STATUS_SUCCESS;
    24622506}
    24632507
     
    26752719    CONST DXGKARG_UPDATEOVERLAY  *pUpdateOverlay)
    26762720{
     2721    dfprintf(("==> "__FUNCTION__ ", hOverlay(0x%x)\n", hOverlay));
     2722    AssertBreakpoint();
     2723    dfprintf(("<== "__FUNCTION__ ", hOverlay(0x%x)\n", hOverlay));
    26772724    return STATUS_NOT_IMPLEMENTED;
    26782725}
     
    26842731    CONST DXGKARG_FLIPOVERLAY  *pFlipOverlay)
    26852732{
     2733    dfprintf(("==> "__FUNCTION__ ", hOverlay(0x%x)\n", hOverlay));
     2734    AssertBreakpoint();
     2735    dfprintf(("<== "__FUNCTION__ ", hOverlay(0x%x)\n", hOverlay));
    26862736    return STATUS_NOT_IMPLEMENTED;
    26872737}
     
    26922742    CONST HANDLE  hOverlay)
    26932743{
     2744    dfprintf(("==> "__FUNCTION__ ", hOverlay(0x%x)\n", hOverlay));
     2745    AssertBreakpoint();
     2746    dfprintf(("<== "__FUNCTION__ ", hOverlay(0x%x)\n", hOverlay));
    26942747    return STATUS_NOT_IMPLEMENTED;
    26952748}
     
    27452798    CONST HANDLE  hContext)
    27462799{
    2747     return STATUS_NOT_IMPLEMENTED;
     2800    dfprintf(("==> "__FUNCTION__ ", hContext(0x%x)\n", hContext));
     2801    vboxWddmMemFree(hContext);
     2802    dfprintf(("<== "__FUNCTION__ ", hContext(0x%x)\n", hContext));
     2803    return STATUS_SUCCESS;
    27482804}
    27492805
     
    27562812    )
    27572813{
     2814    drprintf(("==> "__FUNCTION__ ", MiniportDeviceContext(0x%x)\n", MiniportDeviceContext));
     2815    AssertBreakpoint();
     2816    drprintf(("<== "__FUNCTION__ ", MiniportDeviceContext(0x%x)\n", MiniportDeviceContext));
    27582817    return STATUS_NOT_IMPLEMENTED;
    27592818}
     
    27662825    )
    27672826{
    2768     return STATUS_NOT_IMPLEMENTED;
     2827    dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2828    AssertBreakpoint();
     2829    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     2830    return STATUS_SUCCESS;
    27692831}
    27702832
     
    27772839    PAGED_CODE();
    27782840
    2779     dprintf(("VBoxVideoWddm::DriverEntry. Built %s %s\n", __DATE__, __TIME__));
     2841    drprintf(("VBoxVideoWddm::DriverEntry. Built %s %s\n", __DATE__, __TIME__));
    27802842
    27812843    DRIVER_INITIALIZATION_DATA DriverInitializationData = {'\0'};
     
    28702932    DriverInitializationData.DxgkDdiDestroyContext  = DxgkDdiDestroyContext;
    28712933
    2872     DriverInitializationData.DxgkDdiLinkDevice  = DxgkDdiLinkDevice;
     2934//    DriverInitializationData.DxgkDdiLinkDevice  = DxgkDdiLinkDevice;
     2935    DriverInitializationData.DxgkDdiLinkDevice  = NULL; /* not needed */
    28732936    DriverInitializationData.DxgkDdiSetDisplayPrivateDriverFormat  = DxgkDdiSetDisplayPrivateDriverFormat;
    28742937
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