https://git.reactos.org/?p=reactos.git;a=commitdiff;h=cdb130420ef0629ffca7a…
commit cdb130420ef0629ffca7abe116681e0c5004068b
Author:     Victor Perevertkin <victor.perevertkin(a)reactos.org>
AuthorDate: Mon Jun 19 13:56:50 2023 +0300
Commit:     Victor Perevertkin <victor.perevertkin(a)reactos.org>
CommitDate: Mon Jun 19 13:58:46 2023 +0300
    [FRAMEBUF_NEW] Remove the driver
    It doesn't seem to be better than the current "framebuf", and has an
    unfriendly license (NT4 DDK Sample).
---
 .../drivers/displays/framebuf_new/CMakeLists.txt   |  19 -
 win32ss/drivers/displays/framebuf_new/debug.c      |  59 --
 win32ss/drivers/displays/framebuf_new/debug.h      |  26 -
 win32ss/drivers/displays/framebuf_new/driver.h     |  79 ---
 win32ss/drivers/displays/framebuf_new/enable.c     | 476 ----------------
 win32ss/drivers/displays/framebuf_new/framebuf.rc  |   5 -
 win32ss/drivers/displays/framebuf_new/palette.c    | 332 -----------
 win32ss/drivers/displays/framebuf_new/pointer.c    | 455 ----------------
 win32ss/drivers/displays/framebuf_new/screen.c     | 605 ---------------------
 9 files changed, 2056 deletions(-)
diff --git a/win32ss/drivers/displays/framebuf_new/CMakeLists.txt
b/win32ss/drivers/displays/framebuf_new/CMakeLists.txt
deleted file mode 100644
index a41e8df5692..00000000000
--- a/win32ss/drivers/displays/framebuf_new/CMakeLists.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-
-list(APPEND SOURCE
-    debug.c
-    enable.c
-    palette.c
-    pointer.c
-    screen.c
-    driver.h)
-
-add_library(framebuf MODULE
-    ${SOURCE}
-    framebuf.rc)
-
-set_module_type(framebuf kerneldll ENTRYPOINT DrvEnableDriver 12)
-target_link_libraries(framebuf libcntpr)
-add_importlibs(framebuf win32k)
-add_pch(framebuf driver.h SOURCE)
-add_dependencies(framebuf psdk)
-add_cd_file(TARGET framebuf DESTINATION reactos/system32 FOR all)
diff --git a/win32ss/drivers/displays/framebuf_new/debug.c
b/win32ss/drivers/displays/framebuf_new/debug.c
deleted file mode 100644
index e5d1186f5c3..00000000000
--- a/win32ss/drivers/displays/framebuf_new/debug.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * PROJECT:         ReactOS Framebuffer Display Driver
- * LICENSE:         Microsoft NT4 DDK Sample Code License
- * FILE:            win32ss/drivers/displays/framebuf_new/debug.c
- * PURPOSE:         Debug Support
- * PROGRAMMERS:     Copyright (c) 1992-1995 Microsoft Corporation
- */
-
-#include "driver.h"
-
-#if DBG
-
-ULONG DebugLevel = 0;
-
-/*****************************************************************************
- *
- *   Routine Description:
- *
- *      This function is variable-argument, level-sensitive debug print
- *      routine.
- *      If the specified debug level for the print statement is lower or equal
- *      to the current debug level, the message will be printed.
- *
- *   Arguments:
- *
- *      DebugPrintLevel - Specifies at which debugging level the string should
- *          be printed
- *
- *      DebugMessage - Variable argument ascii c string
- *
- *   Return Value:
- *
- *      None.
- *
- ***************************************************************************/
-
-VOID
-DebugPrint(
-    ULONG DebugPrintLevel,
-    PCHAR DebugMessage,
-    ...
-    )
-
-{
-
-    va_list ap;
-
-    va_start(ap, DebugMessage);
-
-    if (DebugPrintLevel <= DebugLevel)
-    {
-        EngDebugPrint(STANDARD_DEBUG_PREFIX, DebugMessage, ap);
-    }
-
-    va_end(ap);
-
-}
-
-#endif
diff --git a/win32ss/drivers/displays/framebuf_new/debug.h
b/win32ss/drivers/displays/framebuf_new/debug.h
deleted file mode 100644
index d672f73b489..00000000000
--- a/win32ss/drivers/displays/framebuf_new/debug.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * PROJECT:         ReactOS Framebuffer Display Driver
- * LICENSE:         Microsoft NT4 DDK Sample Code License
- * FILE:            win32ss/drivers/displays/framebuf_new/debug.h
- * PURPOSE:         Debug Support Header
- * PROGRAMMERS:     Copyright (c) 1992-1995 Microsoft Corporation
- */
-
-#if DBG
-
-VOID
-DebugPrint(
-    ULONG DebugPrintLevel,
-    PCHAR DebugMessage,
-    ...
-    );
-
-#define DISPDBG(arg) DebugPrint arg
-#define RIP(x) { DebugPrint(0, x); EngDebugBreak();}
-
-#else
-
-#define DISPDBG(arg)
-#define RIP(x)
-
-#endif
diff --git a/win32ss/drivers/displays/framebuf_new/driver.h
b/win32ss/drivers/displays/framebuf_new/driver.h
deleted file mode 100644
index 3074346449f..00000000000
--- a/win32ss/drivers/displays/framebuf_new/driver.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * PROJECT:         ReactOS Framebuffer Display Driver
- * LICENSE:         Microsoft NT4 DDK Sample Code License
- * FILE:            win32ss/drivers/displays/framebuf_new/driver.h
- * PURPOSE:         Main Driver Header File
- * PROGRAMMERS:     Copyright (c) 1992-1995 Microsoft Corporation
- *                  ReactOS Portable Systems Group
- */
-
-#ifndef _FRAMEBUF_NEW_PCH_
-#define _FRAMEBUF_NEW_PCH_
-
-//#define DBG 1
-#include <stdarg.h>
-#include <windef.h>
-#include <wingdi.h>
-#include <winddi.h>
-#include <devioctl.h>
-#include <ntddvdeo.h>
-#include "debug.h"
-
-typedef struct  _PDEV
-{
-    HANDLE  hDriver;                    // Handle to \Device\Screen
-    HDEV    hdevEng;                    // Engine's handle to PDEV
-    HSURF   hsurfEng;                   // Engine's handle to surface
-    HPALETTE hpalDefault;               // Handle to the default palette for device.
-    PBYTE   pjScreen;                   // This is pointer to base screen address
-    ULONG   cxScreen;                   // Visible screen width
-    ULONG   cyScreen;                   // Visible screen height
-    ULONG   ulMode;                     // Mode the mini-port driver is in.
-    LONG    lDeltaScreen;               // Distance from one scan to the next.
-    ULONG   cScreenSize;                // size of video memory, including
-                                        // offscreen memory.
-    PVOID   pOffscreenList;             // linked list of DCI offscreen surfaces.
-    FLONG   flRed;                      // For bitfields device, Red Mask
-    FLONG   flGreen;                    // For bitfields device, Green Mask
-    FLONG   flBlue;                     // For bitfields device, Blue Mask
-    ULONG   cPaletteShift;              // number of bits the 8-8-8 palette must
-                                        // be shifted by to fit in the hardware
-                                        // palette.
-    ULONG   ulBitCount;                 // # of bits per pel 8,16,24,32 are only
supported.
-    POINTL  ptlHotSpot;                 // adjustment for pointer hot spot
-    VIDEO_POINTER_CAPABILITIES PointerCapabilities; // HW pointer abilities
-    PVIDEO_POINTER_ATTRIBUTES pPointerAttributes; // hardware pointer attributes
-    DWORD   cjPointerAttributes;        // Size of buffer allocated
-    BOOL    fHwCursorActive;            // Are we currently using the hw cursor
-    PALETTEENTRY *pPal;                 // If this is pal managed, this is the pal
-    BOOL    bSupportDCI;                // Does the miniport support DCI?
-// eVb: 3.1 [DDK Change] - Support new VGA Miniport behavior w.r.t updated framebuffer
remapping
-    LONG flHooks;
-// eVb: 3.1 [END]
-} PDEV, *PPDEV;
-
-DWORD NTAPI getAvailableModes(HANDLE, PVIDEO_MODE_INFORMATION *, DWORD *);
-BOOL NTAPI bInitPDEV(PPDEV, PDEVMODEW, GDIINFO *, DEVINFO *);
-BOOL NTAPI bInitSURF(PPDEV, BOOL);
-BOOL NTAPI bInitPaletteInfo(PPDEV, DEVINFO *);
-BOOL NTAPI bInitPointer(PPDEV, DEVINFO *);
-BOOL NTAPI bInit256ColorPalette(PPDEV);
-VOID NTAPI vDisablePalette(PPDEV);
-VOID NTAPI vDisableSURF(PPDEV);
-
-#define MAX_CLUT_SIZE (sizeof(VIDEO_CLUT) + (sizeof(ULONG) * 256))
-
-//
-// Determines the size of the DriverExtra information in the DEVMODE
-// structure passed to and from the display driver.
-//
-
-#define DRIVER_EXTRA_SIZE 0
-
-#define DLL_NAME                L"framebuf"   // Name of the DLL in UNICODE
-#define STANDARD_DEBUG_PREFIX   "FRAMEBUF: "  // All debug output is prefixed
-#define ALLOC_TAG               'bfDD'        // Four byte tag (characters in
-                                              // reverse order) used for memory
-                                              // allocations
-
-#endif /* _FRAMEBUF_NEW_PCH_ */
diff --git a/win32ss/drivers/displays/framebuf_new/enable.c
b/win32ss/drivers/displays/framebuf_new/enable.c
deleted file mode 100644
index 5b668f67288..00000000000
--- a/win32ss/drivers/displays/framebuf_new/enable.c
+++ /dev/null
@@ -1,476 +0,0 @@
-/*
- * PROJECT:         ReactOS Framebuffer Display Driver
- * LICENSE:         Microsoft NT4 DDK Sample Code License
- * FILE:            win32ss/drivers/displays/framebuf_new/enable.c
- * PURPOSE:         Main Driver Initialization and PDEV Enabling
- * PROGRAMMERS:     Copyright (c) 1992-1995 Microsoft Corporation
- *                  ReactOS Portable Systems Group
- */
-
-#include "driver.h"
-
-// The driver function table with all function index/address pairs
-
-static DRVFN gadrvfn[] =
-{
-    {   INDEX_DrvEnablePDEV,            (PFN) DrvEnablePDEV         },
-    {   INDEX_DrvCompletePDEV,          (PFN) DrvCompletePDEV       },
-    {   INDEX_DrvDisablePDEV,           (PFN) DrvDisablePDEV        },
-    {   INDEX_DrvEnableSurface,         (PFN) DrvEnableSurface      },
-    {   INDEX_DrvDisableSurface,        (PFN) DrvDisableSurface     },
-    {   INDEX_DrvAssertMode,            (PFN) DrvAssertMode         },
-    {   INDEX_DrvSetPalette,            (PFN) DrvSetPalette         },
-    {   INDEX_DrvMovePointer,           (PFN) DrvMovePointer        },
-    {   INDEX_DrvSetPointerShape,       (PFN) DrvSetPointerShape    },
-    {   INDEX_DrvGetModes,              (PFN) DrvGetModes           }
-};
-
-// Define the functions you want to hook for 8/16/24/32 pel formats
-
-#define HOOKS_BMF8BPP 0
-
-#define HOOKS_BMF16BPP 0
-
-#define HOOKS_BMF24BPP 0
-
-#define HOOKS_BMF32BPP 0
-
-/******************************Public*Routine******************************\
-* DrvEnableDriver
-*
-* Enables the driver by retrieving the drivers function table and version.
-*
-\**************************************************************************/
-
-BOOL NTAPI DrvEnableDriver(
-ULONG iEngineVersion,
-ULONG cj,
-PDRVENABLEDATA pded)
-{
-// Engine Version is passed down so future drivers can support previous
-// engine versions.  A next generation driver can support both the old
-// and new engine conventions if told what version of engine it is
-// working with.  For the first version the driver does nothing with it.
-// eVb: 1.1 [DDK Change] - Remove bogus statement
-    //iEngineVersion;
-// eVb: 1.1 [END]
-// Fill in as much as we can.
-
-    if (cj >= sizeof(DRVENABLEDATA))
-        pded->pdrvfn = gadrvfn;
-
-    if (cj >= (sizeof(ULONG) * 2))
-        pded->c = sizeof(gadrvfn) / sizeof(DRVFN);
-
-// DDI version this driver was targeted for is passed back to engine.
-// Future graphic's engine may break calls down to old driver format.
-
-    if (cj >= sizeof(ULONG))
-// eVb: 1.2 [DDK Change] - Use DDI_DRIVER_VERSION_NT4 instead of DDI_DRIVER_VERSION
-        pded->iDriverVersion = DDI_DRIVER_VERSION_NT4;
-// eVb: 1.2 [END]
-
-    return TRUE;
-}
-
-/******************************Public*Routine******************************\
-* DrvEnablePDEV
-*
-* DDI function, Enables the Physical Device.
-*
-* Return Value: device handle to pdev.
-*
-\**************************************************************************/
-
-DHPDEV NTAPI DrvEnablePDEV(
-DEVMODEW   *pDevmode,       // Pointer to DEVMODE
-PWSTR       pwszLogAddress, // Logical address
-ULONG       cPatterns,      // number of patterns
-HSURF      *ahsurfPatterns, // return standard patterns
-ULONG       cjGdiInfo,      // Length of memory pointed to by pGdiInfo
-ULONG      *pGdiInfo,       // Pointer to GdiInfo structure
-ULONG       cjDevInfo,      // Length of following PDEVINFO structure
-DEVINFO    *pDevInfo,       // physical device information structure
-HDEV        hdev,           // HDEV, used for callbacks
-PWSTR       pwszDeviceName, // DeviceName - not used
-HANDLE      hDriver)        // Handle to base driver
-{
-    GDIINFO GdiInfo;
-    DEVINFO DevInfo;
-    PPDEV   ppdev = NULL;
-
-    UNREFERENCED_PARAMETER(pwszLogAddress);
-    UNREFERENCED_PARAMETER(pwszDeviceName);
-
-    // Allocate a physical device structure.
-
-    ppdev = (PPDEV) EngAllocMem(0, sizeof(PDEV), ALLOC_TAG);
-
-    if (ppdev == NULL)
-    {
-        RIP("DISP DrvEnablePDEV failed EngAllocMem\n");
-        return NULL;
-    }
-
-    memset(ppdev, 0, sizeof(PDEV));
-
-    // Save the screen handle in the PDEV.
-
-    ppdev->hDriver = hDriver;
-
-    // Get the current screen mode information.  Set up device caps and devinfo.
-
-    if (!bInitPDEV(ppdev, pDevmode, &GdiInfo, &DevInfo))
-    {
-        DISPDBG((0,"DISP DrvEnablePDEV failed\n"));
-        goto error_free;
-    }
-
-    // Initialize the cursor information.
-
-    if (!bInitPointer(ppdev, &DevInfo))
-    {
-        // Not a fatal error...
-        DISPDBG((0, "DrvEnablePDEV failed bInitPointer\n"));
-    }
-
-    // Initialize palette information.
-
-    if (!bInitPaletteInfo(ppdev, &DevInfo))
-    {
-        RIP("DrvEnablePDEV failed bInitPalette\n");
-        goto error_free;
-    }
-
-    // Copy the devinfo into the engine buffer.
-
-    memcpy(pDevInfo, &DevInfo, min(sizeof(DEVINFO), cjDevInfo));
-
-    // Set the pdevCaps with GdiInfo we have prepared to the list of caps for this
-    // pdev.
-
-    memcpy(pGdiInfo, &GdiInfo, min(cjGdiInfo, sizeof(GDIINFO)));
-
-    return (DHPDEV)ppdev;
-
-    // Error case for failure.
-error_free:
-    EngFreeMem(ppdev);
-    return NULL;
-}
-
-/******************************Public*Routine******************************\
-* DrvCompletePDEV
-*
-* Store the HPDEV, the engines handle for this PDEV, in the DHPDEV.
-*
-\**************************************************************************/
-
-VOID NTAPI DrvCompletePDEV(
-DHPDEV dhpdev,
-HDEV  hdev)
-{
-    ((PPDEV) dhpdev)->hdevEng = hdev;
-}
-
-/******************************Public*Routine******************************\
-* DrvDisablePDEV
-*
-* Release the resources allocated in DrvEnablePDEV.  If a surface has been
-* enabled DrvDisableSurface will have already been called.
-*
-\**************************************************************************/
-
-VOID NTAPI DrvDisablePDEV(
-DHPDEV dhpdev)
-{
-    vDisablePalette((PPDEV) dhpdev);
-    EngFreeMem(dhpdev);
-}
-
-/******************************Public*Routine******************************\
-* DrvEnableSurface
-*
-* Enable the surface for the device.  Hook the calls this driver supports.
-*
-* Return: Handle to the surface if successful, 0 for failure.
-*
-\**************************************************************************/
-
-HSURF NTAPI DrvEnableSurface(
-DHPDEV dhpdev)
-{
-    PPDEV ppdev;
-    HSURF hsurf;
-    SIZEL sizl;
-    ULONG ulBitmapType;
-    FLONG flHooks;
-
-    // Create engine bitmap around frame buffer.
-
-    ppdev = (PPDEV) dhpdev;
-
-    if (!bInitSURF(ppdev, TRUE))
-    {
-        RIP("DISP DrvEnableSurface failed bInitSURF\n");
-        return NULL;
-    }
-
-    sizl.cx = ppdev->cxScreen;
-    sizl.cy = ppdev->cyScreen;
-
-    if (ppdev->ulBitCount == 8)
-    {
-        if (!bInit256ColorPalette(ppdev)) {
-            RIP("DISP DrvEnableSurface failed to init the 8bpp palette\n");
-            return NULL;
-        }
-        ulBitmapType = BMF_8BPP;
-        flHooks = HOOKS_BMF8BPP;
-    }
-    else if (ppdev->ulBitCount == 16)
-    {
-        ulBitmapType = BMF_16BPP;
-        flHooks = HOOKS_BMF16BPP;
-    }
-    else if (ppdev->ulBitCount == 24)
-    {
-        ulBitmapType = BMF_24BPP;
-        flHooks = HOOKS_BMF24BPP;
-    }
-    else
-    {
-        ulBitmapType = BMF_32BPP;
-        flHooks = HOOKS_BMF32BPP;
-    }
-// eVb: 1.3 [DDK Change] - Support new VGA Miniport behavior w.r.t updated framebuffer
remapping
-    ppdev->flHooks = flHooks;
-// eVb: 1.3 [END]
-// eVb: 1.4 [DDK Change] - Use EngCreateDeviceSurface instead of EngCreateBitmap
-    hsurf = (HSURF)EngCreateDeviceSurface((DHSURF)ppdev,
-                                           sizl,
-                                           ulBitmapType);
-
-    if (hsurf == NULL)
-    {
-        RIP("DISP DrvEnableSurface failed EngCreateDeviceSurface\n");
-        return NULL;
-    }
-// eVb: 1.4 [END]
-
-// eVb: 1.5 [DDK Change] - Use EngModifySurface instead of EngAssociateSurface
-    if ( !EngModifySurface(hsurf,
-                           ppdev->hdevEng,
-                           ppdev->flHooks | HOOK_SYNCHRONIZE,
-                           MS_NOTSYSTEMMEMORY,
-                           (DHSURF)ppdev,
-                           ppdev->pjScreen,
-                           ppdev->lDeltaScreen,
-                           NULL))
-    {
-        RIP("DISP DrvEnableSurface failed EngModifySurface\n");
-        return NULL;
-    }
-// eVb: 1.5 [END]
-    ppdev->hsurfEng = hsurf;
-
-    return hsurf;
-}
-
-/******************************Public*Routine******************************\
-* DrvDisableSurface
-*
-* Free resources allocated by DrvEnableSurface.  Release the surface.
-*
-\**************************************************************************/
-
-VOID NTAPI DrvDisableSurface(
-DHPDEV dhpdev)
-{
-    EngDeleteSurface(((PPDEV) dhpdev)->hsurfEng);
-    vDisableSURF((PPDEV) dhpdev);
-    ((PPDEV) dhpdev)->hsurfEng = NULL;
-}
-
-/******************************Public*Routine******************************\
-* DrvAssertMode
-*
-* This asks the device to reset itself to the mode of the pdev passed in.
-*
-\**************************************************************************/
-
-BOOL NTAPI DrvAssertMode(
-DHPDEV dhpdev,
-BOOL bEnable)
-{
-    PPDEV   ppdev = (PPDEV) dhpdev;
-    ULONG   ulReturn;
-    PBYTE   pjScreen;
-
-    if (bEnable)
-    {
-        //
-        // The screen must be reenabled, reinitialize the device to clean state.
-        //
-// eVb: 1.6 [DDK Change] - Support new VGA Miniport behavior w.r.t updated framebuffer
remapping
-        pjScreen = ppdev->pjScreen;
-
-        if (!bInitSURF(ppdev, FALSE))
-        {
-            DISPDBG((0, "DISP DrvAssertMode failed bInitSURF\n"));
-            return FALSE;
-        }
-
-        if (pjScreen != ppdev->pjScreen) {
-
-            if ( !EngModifySurface(ppdev->hsurfEng,
-                                   ppdev->hdevEng,
-                                   ppdev->flHooks | HOOK_SYNCHRONIZE,
-                                   MS_NOTSYSTEMMEMORY,
-                                   (DHSURF)ppdev,
-                                   ppdev->pjScreen,
-                                   ppdev->lDeltaScreen,
-                                   NULL))
-            {
-                DISPDBG((0, "DISP DrvAssertMode failed EngModifySurface\n"));
-                return FALSE;
-            }
-        }
-// eVb: 1.6 [END]
-        return TRUE;
-    }
-    else
-    {
-        //
-        // We must give up the display.
-        // Call the kernel driver to reset the device to a known state.
-        //
-
-        if (EngDeviceIoControl(ppdev->hDriver,
-                               IOCTL_VIDEO_RESET_DEVICE,
-                               NULL,
-                               0,
-                               NULL,
-                               0,
-                               &ulReturn))
-        {
-            RIP("DISP DrvAssertMode failed IOCTL");
-            return FALSE;
-        }
-        else
-        {
-            return TRUE;
-        }
-    }
-}
-
-/******************************Public*Routine******************************\
-* DrvGetModes
-*
-* Returns the list of available modes for the device.
-*
-\**************************************************************************/
-
-ULONG NTAPI DrvGetModes(
-HANDLE hDriver,
-ULONG cjSize,
-DEVMODEW *pdm)
-
-{
-
-    DWORD cModes;
-    DWORD cbOutputSize;
-    PVIDEO_MODE_INFORMATION pVideoModeInformation, pVideoTemp;
-    DWORD cOutputModes = cjSize / (sizeof(DEVMODEW) + DRIVER_EXTRA_SIZE);
-    DWORD cbModeSize;
-
-    DISPDBG((3, "DrvGetModes\n"));
-
-    cModes = getAvailableModes(hDriver,
-                               (PVIDEO_MODE_INFORMATION *) &pVideoModeInformation,
-                               &cbModeSize);
-
-    if (cModes == 0)
-    {
-        DISPDBG((0, "DrvGetModes failed to get mode information"));
-        return 0;
-    }
-
-    if (pdm == NULL)
-    {
-        cbOutputSize = cModes * (sizeof(DEVMODEW) + DRIVER_EXTRA_SIZE);
-    }
-    else
-    {
-        //
-        // Now copy the information for the supported modes back into the output
-        // buffer
-        //
-
-        cbOutputSize = 0;
-
-        pVideoTemp = pVideoModeInformation;
-
-        do
-        {
-            if (pVideoTemp->Length != 0)
-            {
-                if (cOutputModes == 0)
-                {
-                    break;
-                }
-
-                //
-                // Zero the entire structure to start off with.
-                //
-
-                memset(pdm, 0, sizeof(DEVMODEW));
-
-                //
-                // Set the name of the device to the name of the DLL.
-                //
-
-                memcpy(pdm->dmDeviceName, DLL_NAME, sizeof(DLL_NAME));
-
-                pdm->dmSpecVersion      = DM_SPECVERSION;
-                pdm->dmDriverVersion    = DM_SPECVERSION;
-                pdm->dmSize             = sizeof(DEVMODEW);
-                pdm->dmDriverExtra      = DRIVER_EXTRA_SIZE;
-
-                pdm->dmBitsPerPel       = pVideoTemp->NumberOfPlanes *
-                                          pVideoTemp->BitsPerPlane;
-                pdm->dmPelsWidth        = pVideoTemp->VisScreenWidth;
-                pdm->dmPelsHeight       = pVideoTemp->VisScreenHeight;
-                pdm->dmDisplayFrequency = pVideoTemp->Frequency;
-                pdm->dmDisplayFlags     = 0;
-
-                pdm->dmFields           = DM_BITSPERPEL       |
-                                          DM_PELSWIDTH        |
-                                          DM_PELSHEIGHT       |
-                                          DM_DISPLAYFREQUENCY |
-                                          DM_DISPLAYFLAGS     ;
-
-                //
-                // Go to the next DEVMODE entry in the buffer.
-                //
-
-                cOutputModes--;
-
-                pdm = (LPDEVMODEW) ( ((ULONG_PTR)pdm) + sizeof(DEVMODEW) +
-                                                   DRIVER_EXTRA_SIZE);
-
-                cbOutputSize += (sizeof(DEVMODEW) + DRIVER_EXTRA_SIZE);
-
-            }
-
-            pVideoTemp = (PVIDEO_MODE_INFORMATION)
-                (((PUCHAR)pVideoTemp) + cbModeSize);
-
-        } while (--cModes);
-    }
-
-    EngFreeMem(pVideoModeInformation);
-
-    return cbOutputSize;
-
-}
diff --git a/win32ss/drivers/displays/framebuf_new/framebuf.rc
b/win32ss/drivers/displays/framebuf_new/framebuf.rc
deleted file mode 100644
index c8860569766..00000000000
--- a/win32ss/drivers/displays/framebuf_new/framebuf.rc
+++ /dev/null
@@ -1,5 +0,0 @@
-#define REACTOS_VERSION_DLL
-#define REACTOS_STR_FILE_DESCRIPTION  "Framebuffer Display Driver"
-#define REACTOS_STR_INTERNAL_NAME     "framebuf"
-#define REACTOS_STR_ORIGINAL_FILENAME "framebuf.dll"
-#include <reactos/version.rc>
diff --git a/win32ss/drivers/displays/framebuf_new/palette.c
b/win32ss/drivers/displays/framebuf_new/palette.c
deleted file mode 100644
index dc16a1576eb..00000000000
--- a/win32ss/drivers/displays/framebuf_new/palette.c
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * PROJECT:         ReactOS Framebuffer Display Driver
- * LICENSE:         Microsoft NT4 DDK Sample Code License
- * FILE:            win32ss/drivers/displays/framebuf_new/palette.c
- * PURPOSE:         Palette Support
- * PROGRAMMERS:     Copyright (c) 1992-1995 Microsoft Corporation
- */
-
-#include "driver.h"
-
-// Global Table defining the 20 Window Default Colors.        For 256 color
-// palettes the first 10 must be put at the beginning of the palette
-// and the last 10 at the end of the palette.
-
-const PALETTEENTRY BASEPALETTE[20] =
-{
-    { 0,   0,   0,   0 },       // 0
-    { 0x80,0,   0,   0 },       // 1
-    { 0,   0x80,0,   0 },       // 2
-    { 0x80,0x80,0,   0 },       // 3
-    { 0,   0,   0x80,0 },       // 4
-    { 0x80,0,   0x80,0 },       // 5
-    { 0,   0x80,0x80,0 },       // 6
-    { 0xC0,0xC0,0xC0,0 },       // 7
-    { 192, 220, 192, 0 },       // 8
-    { 166, 202, 240, 0 },       // 9
-    { 255, 251, 240, 0 },       // 10
-    { 160, 160, 164, 0 },       // 11
-    { 0x80,0x80,0x80,0 },       // 12
-    { 0xFF,0,   0   ,0 },       // 13
-    { 0,   0xFF,0   ,0 },       // 14
-    { 0xFF,0xFF,0   ,0 },       // 15
-    { 0   ,0,   0xFF,0 },       // 16
-    { 0xFF,0,   0xFF,0 },       // 17
-    { 0,   0xFF,0xFF,0 },       // 18
-    { 0xFF,0xFF,0xFF,0 },       // 19
-};
-
-BOOL NTAPI bInitDefaultPalette(PPDEV ppdev, DEVINFO *pDevInfo);
-
-/******************************Public*Routine******************************\
-* bInitPaletteInfo
-*
-* Initializes the palette information for this PDEV.
-*
-* Called by DrvEnablePDEV.
-*
-\**************************************************************************/
-
-BOOL NTAPI bInitPaletteInfo(PPDEV ppdev, DEVINFO *pDevInfo)
-{
-    if (!bInitDefaultPalette(ppdev, pDevInfo))
-        return(FALSE);
-
-    return(TRUE);
-}
-
-/******************************Public*Routine******************************\
-* vDisablePalette
-*
-* Frees resources allocated by bInitPaletteInfo.
-*
-\**************************************************************************/
-
-VOID NTAPI vDisablePalette(PPDEV ppdev)
-{
-// Delete the default palette if we created one.
-
-    if (ppdev->hpalDefault)
-    {
-        EngDeletePalette(ppdev->hpalDefault);
-        ppdev->hpalDefault = NULL;
-    }
-
-    if (ppdev->pPal != NULL)
-        EngFreeMem((PVOID)ppdev->pPal);
-}
-
-/******************************Public*Routine******************************\
-* bInitDefaultPalette
-*
-* Initializes default palette for PDEV.
-*
-\**************************************************************************/
-
-BOOL NTAPI bInitDefaultPalette(PPDEV ppdev, DEVINFO *pDevInfo)
-{
-    if (ppdev->ulBitCount == 8)
-    {
-        ULONG ulLoop;
-        BYTE jRed,jGre,jBlu;
-
-        //
-        // Allocate our palette
-        //
-
-        ppdev->pPal = (PPALETTEENTRY)EngAllocMem(0, sizeof(PALETTEENTRY) * 256,
-                                                 ALLOC_TAG);
-
-        if ((ppdev->pPal) == NULL) {
-            RIP("DISP bInitDefaultPalette() failed EngAllocMem\n");
-            return(FALSE);
-        }
-
-        //
-        // Generate 256 (8*4*4) RGB combinations to fill the palette
-        //
-
-        jRed = jGre = jBlu = 0;
-
-        for (ulLoop = 0; ulLoop < 256; ulLoop++)
-        {
-            ppdev->pPal[ulLoop].peRed   = jRed;
-            ppdev->pPal[ulLoop].peGreen = jGre;
-            ppdev->pPal[ulLoop].peBlue  = jBlu;
-            ppdev->pPal[ulLoop].peFlags = (BYTE)0;
-
-            if (!(jRed += 32))
-            if (!(jGre += 32))
-            jBlu += 64;
-        }
-
-        //
-        // Fill in Windows Reserved Colors from the WIN 3.0 DDK
-        // The Window Manager reserved the first and last 10 colors for
-        // painting windows borders and for non-palette managed applications.
-        //
-
-        for (ulLoop = 0; ulLoop < 10; ulLoop++)
-        {
-            //
-            // First 10
-            //
-
-            ppdev->pPal[ulLoop] = BASEPALETTE[ulLoop];
-
-            //
-            // Last 10
-            //
-
-            ppdev->pPal[246 + ulLoop] = BASEPALETTE[ulLoop+10];
-        }
-
-        //
-        // Create handle for palette.
-        //
-
-        ppdev->hpalDefault =
-        pDevInfo->hpalDefault = EngCreatePalette(PAL_INDEXED,
-                                                   256,
-                                                   (PULONG) ppdev->pPal,
-                                                   0,0,0);
-
-        if (ppdev->hpalDefault == NULL)
-        {
-            RIP("DISP bInitDefaultPalette failed EngCreatePalette\n");
-            EngFreeMem(ppdev->pPal);
-            return(FALSE);
-        }
-
-        //
-        // Initialize the hardware with the initial palette.
-        //
-
-        return(TRUE);
-
-    } else {
-
-        ppdev->hpalDefault =
-        pDevInfo->hpalDefault = EngCreatePalette(PAL_BITFIELDS,
-                                                   0, NULL,
-                                                   ppdev->flRed,
-                                                   ppdev->flGreen,
-                                                   ppdev->flBlue);
-
-        if (ppdev->hpalDefault == NULL)
-        {
-            RIP("DISP bInitDefaultPalette failed EngCreatePalette\n");
-            return(FALSE);
-        }
-    }
-
-    return(TRUE);
-}
-
-/******************************Public*Routine******************************\
-* bInit256ColorPalette
-*
-* Initialize the hardware's palette registers.
-*
-\**************************************************************************/
-
-BOOL NTAPI bInit256ColorPalette(PPDEV ppdev)
-{
-    BYTE        ajClutSpace[MAX_CLUT_SIZE];
-    PVIDEO_CLUT pScreenClut;
-    ULONG       ulReturnedDataLength;
-    ULONG       cColors;
-    PVIDEO_CLUTDATA pScreenClutData;
-
-    if (ppdev->ulBitCount == 8)
-    {
-        //
-        // Fill in pScreenClut header info:
-        //
-
-        pScreenClut             = (PVIDEO_CLUT) ajClutSpace;
-        pScreenClut->NumEntries = 256;
-        pScreenClut->FirstEntry = 0;
-
-        //
-        // Copy colours in:
-        //
-
-        cColors = 256;
-        pScreenClutData = (PVIDEO_CLUTDATA) (&(pScreenClut->LookupTable[0]));
-
-        while(cColors--)
-        {
-            pScreenClutData[cColors].Red =    ppdev->pPal[cColors].peRed >>
-                                              ppdev->cPaletteShift;
-            pScreenClutData[cColors].Green =  ppdev->pPal[cColors].peGreen >>
-                                              ppdev->cPaletteShift;
-            pScreenClutData[cColors].Blue =   ppdev->pPal[cColors].peBlue >>
-                                              ppdev->cPaletteShift;
-            pScreenClutData[cColors].Unused = 0;
-        }
-
-        //
-        // Set palette registers:
-        //
-
-        if (EngDeviceIoControl(ppdev->hDriver,
-                               IOCTL_VIDEO_SET_COLOR_REGISTERS,
-                               pScreenClut,
-                               MAX_CLUT_SIZE,
-                               NULL,
-                               0,
-                               &ulReturnedDataLength))
-        {
-            DISPDBG((0, "Failed bEnablePalette"));
-            return(FALSE);
-        }
-    }
-
-    DISPDBG((5, "Passed bEnablePalette"));
-
-    return(TRUE);
-}
-
-/******************************Public*Routine******************************\
-* DrvSetPalette
-*
-* DDI entry point for manipulating the palette.
-*
-\**************************************************************************/
-
-BOOL NTAPI DrvSetPalette(
-DHPDEV  dhpdev,
-PALOBJ* ppalo,
-FLONG   fl,
-ULONG   iStart,
-ULONG   cColors)
-{
-    BYTE            ajClutSpace[MAX_CLUT_SIZE];
-    PVIDEO_CLUT     pScreenClut;
-    PVIDEO_CLUTDATA pScreenClutData;
-    PDEV*           ppdev;
-
-    UNREFERENCED_PARAMETER(fl);
-
-    ppdev = (PDEV*) dhpdev;
-
-    //
-    // Fill in pScreenClut header info:
-    //
-
-    pScreenClut             = (PVIDEO_CLUT) ajClutSpace;
-    pScreenClut->NumEntries = (USHORT) cColors;
-    pScreenClut->FirstEntry = (USHORT) iStart;
-
-    pScreenClutData = (PVIDEO_CLUTDATA) (&(pScreenClut->LookupTable[0]));
-
-    if (cColors != PALOBJ_cGetColors(ppalo, iStart, cColors,
-                                     (ULONG*) pScreenClutData))
-    {
-        DISPDBG((0, "DrvSetPalette failed PALOBJ_cGetColors\n"));
-        return (FALSE);
-    }
-
-    //
-    // Set the high reserved byte in each palette entry to 0.
-    // Do the appropriate palette shifting to fit in the DAC.
-    //
-
-    if (ppdev->cPaletteShift)
-    {
-        while(cColors--)
-        {
-            pScreenClutData[cColors].Red >>= ppdev->cPaletteShift;
-            pScreenClutData[cColors].Green >>= ppdev->cPaletteShift;
-            pScreenClutData[cColors].Blue >>= ppdev->cPaletteShift;
-            pScreenClutData[cColors].Unused = 0;
-        }
-    }
-    else
-    {
-        while(cColors--)
-        {
-            pScreenClutData[cColors].Unused = 0;
-        }
-    }
-
-    //
-    // Set palette registers
-    //
-
-    if (EngDeviceIoControl(ppdev->hDriver,
-                           IOCTL_VIDEO_SET_COLOR_REGISTERS,
-                           pScreenClut,
-                           MAX_CLUT_SIZE,
-                           NULL,
-                           0,
-                           &cColors))
-    {
-        DISPDBG((0, "DrvSetPalette failed EngDeviceIoControl\n"));
-        return (FALSE);
-    }
-
-    return(TRUE);
-
-}
diff --git a/win32ss/drivers/displays/framebuf_new/pointer.c
b/win32ss/drivers/displays/framebuf_new/pointer.c
deleted file mode 100644
index 862fc8e6ed2..00000000000
--- a/win32ss/drivers/displays/framebuf_new/pointer.c
+++ /dev/null
@@ -1,455 +0,0 @@
-/*
- * PROJECT:         ReactOS Framebuffer Display Driver
- * LICENSE:         Microsoft NT4 DDK Sample Code License
- * FILE:            win32ss/drivers/displays/framebuf_new/pointer.c
- * PURPOSE:         Hardware Pointer Support
- * PROGRAMMERS:     Copyright (c) 1992-1995 Microsoft Corporation
- */
-
-#include "driver.h"
-
-BOOL NTAPI bCopyColorPointer(
-PPDEV ppdev,
-SURFOBJ *psoMask,
-SURFOBJ *psoColor,
-XLATEOBJ *pxlo);
-
-BOOL NTAPI bCopyMonoPointer(
-PPDEV ppdev,
-SURFOBJ *psoMask);
-
-BOOL NTAPI bSetHardwarePointerShape(
-SURFOBJ  *pso,
-SURFOBJ  *psoMask,
-SURFOBJ  *psoColor,
-XLATEOBJ *pxlo,
-LONG      x,
-LONG      y,
-FLONG     fl);
-
-/******************************Public*Routine******************************\
-* DrvMovePointer
-*
-* Moves the hardware pointer to a new position.
-*
-\**************************************************************************/
-
-VOID NTAPI DrvMovePointer
-(
-    SURFOBJ *pso,
-    LONG     x,
-    LONG     y,
-    RECTL   *prcl
-)
-{
-    PPDEV ppdev = (PPDEV) pso->dhpdev;
-    DWORD returnedDataLength;
-    VIDEO_POINTER_POSITION NewPointerPosition;
-
-    // We don't use the exclusion rectangle because we only support
-    // hardware Pointers. If we were doing our own Pointer simulations
-    // we would want to update prcl so that the engine would call us
-    // to exclude out pointer before drawing to the pixels in prcl.
-
-    UNREFERENCED_PARAMETER(prcl);
-
-    if (x == -1)
-    {
-        //
-        // A new position of (-1,-1) means hide the pointer.
-        //
-
-        if (EngDeviceIoControl(ppdev->hDriver,
-                               IOCTL_VIDEO_DISABLE_POINTER,
-                               NULL,
-                               0,
-                               NULL,
-                               0,
-                               &returnedDataLength))
-        {
-            //
-            // Not the end of the world, print warning in checked build.
-            //
-
-            DISPDBG((1, "DISP vMoveHardwarePointer failed
IOCTL_VIDEO_DISABLE_POINTER\n"));
-        }
-    }
-    else
-    {
-        NewPointerPosition.Column = (SHORT) x - (SHORT) (ppdev->ptlHotSpot.x);
-        NewPointerPosition.Row    = (SHORT) y - (SHORT) (ppdev->ptlHotSpot.y);
-
-        //
-        // Call miniport driver to move Pointer.
-        //
-
-        if (EngDeviceIoControl(ppdev->hDriver,
-                               IOCTL_VIDEO_SET_POINTER_POSITION,
-                               &NewPointerPosition,
-                               sizeof(VIDEO_POINTER_POSITION),
-                               NULL,
-                               0,
-                               &returnedDataLength))
-        {
-            //
-            // Not the end of the world, print warning in checked build.
-            //
-
-            DISPDBG((1, "DISP vMoveHardwarePointer failed
IOCTL_VIDEO_SET_POINTER_POSITION\n"));
-        }
-    }
-}
-
-/******************************Public*Routine******************************\
-* DrvSetPointerShape
-*
-* Sets the new pointer shape.
-*
-\**************************************************************************/
-
-ULONG NTAPI DrvSetPointerShape
-(
-    SURFOBJ  *pso,
-    SURFOBJ  *psoMask,
-    SURFOBJ  *psoColor,
-    XLATEOBJ *pxlo,
-    LONG      xHot,
-    LONG      yHot,
-    LONG      x,
-    LONG      y,
-    RECTL    *prcl,
-    FLONG     fl
-)
-{
-    PPDEV   ppdev = (PPDEV) pso->dhpdev;
-    DWORD   returnedDataLength;
-
-    // We don't use the exclusion rectangle because we only support
-    // hardware Pointers. If we were doing our own Pointer simulations
-    // we would want to update prcl so that the engine would call us
-    // to exclude out pointer before drawing to the pixels in prcl.
-    UNREFERENCED_PARAMETER(prcl);
-
-    if (ppdev->pPointerAttributes == NULL)
-    {
-        // Mini-port has no hardware Pointer support.
-        return(SPS_ERROR);
-    }
-
-    // See if we are being asked to hide the pointer
-
-    if (psoMask == NULL)
-    {
-        if (EngDeviceIoControl(ppdev->hDriver,
-                               IOCTL_VIDEO_DISABLE_POINTER,
-                               NULL,
-                               0,
-                               NULL,
-                               0,
-                               &returnedDataLength))
-        {
-            //
-            // It should never be possible to fail.
-            // Message supplied for debugging.
-            //
-
-            DISPDBG((1, "DISP bSetHardwarePointerShape failed
IOCTL_VIDEO_DISABLE_POINTER\n"));
-        }
-
-        return(TRUE);
-    }
-
-    ppdev->ptlHotSpot.x = xHot;
-    ppdev->ptlHotSpot.y = yHot;
-
-    if (!bSetHardwarePointerShape(pso,psoMask,psoColor,pxlo,x,y,fl))
-    {
-            if (ppdev->fHwCursorActive) {
-                ppdev->fHwCursorActive = FALSE;
-
-                if (EngDeviceIoControl(ppdev->hDriver,
-                                       IOCTL_VIDEO_DISABLE_POINTER,
-                                       NULL,
-                                       0,
-                                       NULL,
-                                       0,
-                                       &returnedDataLength)) {
-
-                    DISPDBG((1, "DISP bSetHardwarePointerShape failed
IOCTL_VIDEO_DISABLE_POINTER\n"));
-                }
-            }
-
-            //
-            // Mini-port declines to realize this Pointer
-            //
-
-            return(SPS_DECLINE);
-    }
-    else
-    {
-        ppdev->fHwCursorActive = TRUE;
-    }
-
-    return(SPS_ACCEPT_NOEXCLUDE);
-}
-
-/******************************Public*Routine******************************\
-* bSetHardwarePointerShape
-*
-* Changes the shape of the Hardware Pointer.
-*
-* Returns: True if successful, False if Pointer shape can't be hardware.
-*
-\**************************************************************************/
-
-BOOL NTAPI bSetHardwarePointerShape(
-SURFOBJ  *pso,
-SURFOBJ  *psoMask,
-SURFOBJ  *psoColor,
-XLATEOBJ *pxlo,
-LONG      x,
-LONG      y,
-FLONG     fl)
-{
-    PPDEV     ppdev = (PPDEV) pso->dhpdev;
-    PVIDEO_POINTER_ATTRIBUTES pPointerAttributes = ppdev->pPointerAttributes;
-    DWORD     returnedDataLength;
-
-    if (psoColor != NULL)
-    {
-        if ((ppdev->PointerCapabilities.Flags & VIDEO_MODE_COLOR_POINTER)
&&
-                bCopyColorPointer(ppdev, psoMask, psoColor, pxlo))
-        {
-            pPointerAttributes->Flags |= VIDEO_MODE_COLOR_POINTER;
-        } else {
-            return(FALSE);
-        }
-
-    } else {
-
-        if ((ppdev->PointerCapabilities.Flags & VIDEO_MODE_MONO_POINTER)
&&
-                bCopyMonoPointer(ppdev, psoMask))
-        {
-            pPointerAttributes->Flags |= VIDEO_MODE_MONO_POINTER;
-        } else {
-            return(FALSE);
-        }
-    }
-
-    //
-    // Initialize Pointer attributes and position
-    //
-
-    pPointerAttributes->Enable = 1;
-
-    //
-    // if x,y = -1,-1 then pass them directly to the miniport so that
-    // the cursor will be disabled
-
-    pPointerAttributes->Column = (SHORT)(x);
-    pPointerAttributes->Row    = (SHORT)(y);
-
-    if ((x != -1) || (y != -1)) {
-        pPointerAttributes->Column -= (SHORT)(ppdev->ptlHotSpot.x);
-        pPointerAttributes->Row    -= (SHORT)(ppdev->ptlHotSpot.y);
-    }
-
-    //
-    // set animate flags
-    //
-
-    if (fl & SPS_ANIMATESTART) {
-        pPointerAttributes->Flags |= VIDEO_MODE_ANIMATE_START;
-    } else if (fl & SPS_ANIMATEUPDATE) {
-        pPointerAttributes->Flags |= VIDEO_MODE_ANIMATE_UPDATE;
-    }
-
-    //
-    // Set the new Pointer shape.
-    //
-
-    if (EngDeviceIoControl(ppdev->hDriver,
-                           IOCTL_VIDEO_SET_POINTER_ATTR,
-                           pPointerAttributes,
-                           ppdev->cjPointerAttributes,
-                           NULL,
-                           0,
-                           &returnedDataLength)) {
-
-        DISPDBG((1, "DISP:Failed IOCTL_VIDEO_SET_POINTER_ATTR call\n"));
-        return(FALSE);
-    }
-
-    return(TRUE);
-}
-
-/******************************Public*Routine******************************\
-* bCopyMonoPointer
-*
-* Copies two monochrome masks into a buffer of the maximum size handled by the
-* miniport, with any extra bits set to 0.  The masks are converted to topdown
-* form if they aren't already.  Returns TRUE if we can handle this pointer in
-* hardware, FALSE if not.
-*
-\**************************************************************************/
-
-BOOL NTAPI bCopyMonoPointer(
-    PPDEV    ppdev,
-    SURFOBJ *pso)
-{
-    ULONG cy;
-    PBYTE pjSrcAnd, pjSrcXor;
-    LONG  lDeltaSrc, lDeltaDst;
-    LONG  lSrcWidthInBytes;
-    ULONG cxSrc = pso->sizlBitmap.cx;
-    ULONG cySrc = pso->sizlBitmap.cy;
-    ULONG cxSrcBytes;
-    PVIDEO_POINTER_ATTRIBUTES pPointerAttributes = ppdev->pPointerAttributes;
-    PBYTE pjDstAnd = pPointerAttributes->Pixels;
-    PBYTE pjDstXor = pPointerAttributes->Pixels;
-
-    // Make sure the new pointer isn't too big to handle
-    // (*2 because both masks are in there)
-    if ((cxSrc > ppdev->PointerCapabilities.MaxWidth) ||
-        (cySrc > (ppdev->PointerCapabilities.MaxHeight * 2)))
-    {
-        return(FALSE);
-    }
-
-    pjDstXor += ((ppdev->PointerCapabilities.MaxWidth + 7) / 8) *
-            ppdev->pPointerAttributes->Height;
-
-    // set the desk and mask to 0xff
-    RtlFillMemory(pjDstAnd, ppdev->pPointerAttributes->WidthInBytes *
-            ppdev->pPointerAttributes->Height, 0xFF);
-
-    // Zero the dest XOR mask
-    RtlZeroMemory(pjDstXor, ppdev->pPointerAttributes->WidthInBytes *
-            ppdev->pPointerAttributes->Height);
-
-    cxSrcBytes = (cxSrc + 7) / 8;
-
-    if ((lDeltaSrc = pso->lDelta) < 0)
-    {
-        lSrcWidthInBytes = -lDeltaSrc;
-    } else {
-        lSrcWidthInBytes = lDeltaSrc;
-    }
-
-    pjSrcAnd = (PBYTE) pso->pvBits;
-
-    // If the incoming pointer bitmap is bottomup, we'll flip it to topdown to
-    // save the miniport some work
-    if (!(pso->fjBitmap & BMF_TOPDOWN))
-    {
-        // Copy from the bottom
-        pjSrcAnd += lSrcWidthInBytes * (cySrc - 1);
-    }
-
-    // Height of just AND mask
-    cySrc = cySrc / 2;
-
-    // Point to XOR mask
-    pjSrcXor = pjSrcAnd + (cySrc * lDeltaSrc);
-
-    // Offset from end of one dest scan to start of next
-    lDeltaDst = ppdev->pPointerAttributes->WidthInBytes;
-
-    for (cy = 0; cy < cySrc; ++cy)
-    {
-        RtlCopyMemory(pjDstAnd, pjSrcAnd, cxSrcBytes);
-        RtlCopyMemory(pjDstXor, pjSrcXor, cxSrcBytes);
-
-        // Point to next source and dest scans
-        pjSrcAnd += lDeltaSrc;
-        pjSrcXor += lDeltaSrc;
-        pjDstAnd += lDeltaDst;
-        pjDstXor += lDeltaDst;
-    }
-
-    return(TRUE);
-}
-
-/******************************Public*Routine******************************\
-* bCopyColorPointer
-*
-* Copies the mono and color masks into the buffer of maximum size
-* handled by the miniport with any extra bits set to 0. Color translation
-* is handled at this time. The masks are converted to topdown form if they
-* aren't already.  Returns TRUE if we can handle this pointer in  hardware,
-* FALSE if not.
-*
-\**************************************************************************/
-BOOL NTAPI bCopyColorPointer(
-PPDEV ppdev,
-SURFOBJ *psoMask,
-SURFOBJ *psoColor,
-XLATEOBJ *pxlo)
-{
-    return(FALSE);
-}
-
-
-/******************************Public*Routine******************************\
-* bInitPointer
-*
-* Initialize the Pointer attributes.
-*
-\**************************************************************************/
-
-BOOL NTAPI bInitPointer(PPDEV ppdev, DEVINFO *pdevinfo)
-{
-    DWORD    returnedDataLength;
-
-    ppdev->pPointerAttributes = NULL;
-    ppdev->cjPointerAttributes = 0; // initialized in screen.c
-
-    //
-    // Ask the miniport whether it provides pointer support.
-    //
-
-    if (EngDeviceIoControl(ppdev->hDriver,
-                           IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES,
-                           NULL,
-                           0,
-                           &ppdev->PointerCapabilities,
-                           sizeof(ppdev->PointerCapabilities),
-                           &returnedDataLength))
-    {
-         return(FALSE);
-    }
-
-    //
-    // If neither mono nor color hardware pointer is supported, there's no
-    // hardware pointer support and we're done.
-    //
-
-    if ((!(ppdev->PointerCapabilities.Flags & VIDEO_MODE_MONO_POINTER)) &&
-        (!(ppdev->PointerCapabilities.Flags & VIDEO_MODE_COLOR_POINTER)))
-    {
-        return(TRUE);
-    }
-
-    //
-    // Note: The buffer itself is allocated after we set the
-    // mode. At that time we know the pixel depth and we can
-    // allocate the correct size for the color pointer if supported.
-    //
-
-    //
-    // Set the asynchronous support status (async means miniport is capable of
-    // drawing the Pointer at any time, with no interference with any ongoing
-    // drawing operation)
-    //
-
-    if (ppdev->PointerCapabilities.Flags & VIDEO_MODE_ASYNC_POINTER)
-    {
-       pdevinfo->flGraphicsCaps |= GCAPS_ASYNCMOVE;
-    }
-    else
-    {
-       pdevinfo->flGraphicsCaps &= ~GCAPS_ASYNCMOVE;
-    }
-
-    return(TRUE);
-}
diff --git a/win32ss/drivers/displays/framebuf_new/screen.c
b/win32ss/drivers/displays/framebuf_new/screen.c
deleted file mode 100644
index 66f25faf649..00000000000
--- a/win32ss/drivers/displays/framebuf_new/screen.c
+++ /dev/null
@@ -1,605 +0,0 @@
-/*
- * PROJECT:         ReactOS Framebuffer Display Driver
- * LICENSE:         Microsoft NT4 DDK Sample Code License
- * FILE:            win32ss/drivers/displays/framebuf_new/screen.c
- * PURPOSE:         Surface, Screen and PDEV support/initialization
- * PROGRAMMERS:     Copyright (c) 1992-1995 Microsoft Corporation
- *                  ReactOS Portable Systems Group
- */
-
-#include "driver.h"
-
-#define SYSTM_LOGFONT
{16,7,0,0,700,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,VARIABLE_PITCH
| FF_DONTCARE,L"System"}
-#define HELVE_LOGFONT
{12,9,0,0,400,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_STROKE_PRECIS,PROOF_QUALITY,VARIABLE_PITCH
| FF_DONTCARE,L"MS Sans Serif"}
-#define COURI_LOGFONT
{12,9,0,0,400,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_STROKE_PRECIS,PROOF_QUALITY,FIXED_PITCH
| FF_DONTCARE, L"Courier"}
-
-// This is the basic devinfo for a default driver.  This is used as a base and customized
based
-// on information passed back from the miniport driver.
-
-const DEVINFO gDevInfoFrameBuffer = {
-    ( GCAPS_OPAQUERECT
-// eVb: 2.8 [DDK CHANGE] - No dithering support
-// eVb: 2.8 [END]
-                   ), /* Graphics capabilities         */
-    SYSTM_LOGFONT,    /* Default font description */
-    HELVE_LOGFONT,    /* ANSI variable font description   */
-    COURI_LOGFONT,    /* ANSI fixed font description          */
-    0,                /* Count of device fonts          */
-    0,                /* Preferred DIB format          */
-// eVb: 2.9 [DDK CHANGE] - No dithering support
-    0,                /* Width of color dither          */
-    0,                /* Height of color dither   */
-// eVb: 2.9 [END]
-    0                 /* Default palette to use for this device */
-};
-
-/******************************Public*Routine******************************\
-* bInitSURF
-*
-* Enables the surface.        Maps the frame buffer into memory.
-*
-\**************************************************************************/
-
-BOOL NTAPI bInitSURF(PPDEV ppdev, BOOL bFirst)
-{
-    DWORD returnedDataLength;
-    DWORD MaxWidth, MaxHeight;
-    VIDEO_MEMORY videoMemory;
-    VIDEO_MEMORY_INFORMATION videoMemoryInformation;
-// eVb: 2.1 [DDK Change] - Support new VGA Miniport behavior w.r.t updated framebuffer
remapping
-    ULONG RemappingNeeded = 0;
-// eVb: 2.1 [END]
-    //
-    // Set the current mode into the hardware.
-    //
-
-    if (EngDeviceIoControl(ppdev->hDriver,
-                           IOCTL_VIDEO_SET_CURRENT_MODE,
-                           &(ppdev->ulMode),
-                           sizeof(ULONG),
-// eVb: 2.2 [DDK Change] - Support new VGA Miniport behavior w.r.t updated framebuffer
remapping
-                           &RemappingNeeded,
-                           sizeof(ULONG),
-// eVb: 2.2 [END]
-                           &returnedDataLength))
-    {
-        RIP("DISP bInitSURF failed IOCTL_SET_MODE\n");
-        return(FALSE);
-    }
-
-    //
-    // If this is the first time we enable the surface we need to map in the
-    // memory also.
-    //
-// eVb: 2.3 [DDK Change] - Support new VGA Miniport behavior w.r.t updated framebuffer
remapping
-    if (bFirst || RemappingNeeded)
-    {
-// eVb: 2.3 [END]
-        videoMemory.RequestedVirtualAddress = NULL;
-
-        if (EngDeviceIoControl(ppdev->hDriver,
-                               IOCTL_VIDEO_MAP_VIDEO_MEMORY,
-                               &videoMemory,
-                               sizeof(VIDEO_MEMORY),
-                               &videoMemoryInformation,
-                               sizeof(VIDEO_MEMORY_INFORMATION),
-                               &returnedDataLength))
-        {
-            RIP("DISP bInitSURF failed IOCTL_VIDEO_MAP\n");
-            return(FALSE);
-        }
-
-        ppdev->pjScreen = (PBYTE)(videoMemoryInformation.FrameBufferBase);
-
-        if (videoMemoryInformation.FrameBufferBase !=
-            videoMemoryInformation.VideoRamBase)
-        {
-            RIP("VideoRamBase does not correspond to FrameBufferBase\n");
-        }
-// eVb: 2.4 [DDK Change] - Make sure frame buffer mapping worked
-        //
-        // Make sure we can access this video memory
-        //
-
-        *(PULONG)(ppdev->pjScreen) = 0xaa55aa55;
-
-        if (*(PULONG)(ppdev->pjScreen) != 0xaa55aa55) {
-
-            DISPDBG((1, "Frame buffer memory is not accessible.\n"));
-            return(FALSE);
-        }
-// eVb: 2.4 [END]
-        ppdev->cScreenSize = videoMemoryInformation.VideoRamLength;
-
-        //
-        // Initialize the head of the offscreen list to NULL.
-        //
-
-        ppdev->pOffscreenList = NULL;
-
-        // It's a hardware pointer; set up pointer attributes.
-
-        MaxHeight = ppdev->PointerCapabilities.MaxHeight;
-
-        // Allocate space for two DIBs (data/mask) for the pointer. If this
-        // device supports a color Pointer, we will allocate a larger bitmap.
-        // If this is a color bitmap we allocate for the largest possible
-        // bitmap because we have no idea of what the pixel depth might be.
-
-        // Width rounded up to nearest byte multiple
-
-        if (!(ppdev->PointerCapabilities.Flags & VIDEO_MODE_COLOR_POINTER))
-        {
-            MaxWidth = (ppdev->PointerCapabilities.MaxWidth + 7) / 8;
-        }
-        else
-        {
-            MaxWidth = ppdev->PointerCapabilities.MaxWidth * sizeof(DWORD);
-        }
-
-        ppdev->cjPointerAttributes =
-                sizeof(VIDEO_POINTER_ATTRIBUTES) +
-                ((sizeof(UCHAR) * MaxWidth * MaxHeight) * 2);
-
-        ppdev->pPointerAttributes = (PVIDEO_POINTER_ATTRIBUTES)
-                EngAllocMem(0, ppdev->cjPointerAttributes, ALLOC_TAG);
-
-        if (ppdev->pPointerAttributes == NULL) {
-
-            DISPDBG((0, "bInitPointer EngAllocMem failed\n"));
-            return(FALSE);
-        }
-
-        ppdev->pPointerAttributes->Flags = ppdev->PointerCapabilities.Flags;
-        ppdev->pPointerAttributes->WidthInBytes = MaxWidth;
-        ppdev->pPointerAttributes->Width = ppdev->PointerCapabilities.MaxWidth;
-        ppdev->pPointerAttributes->Height = MaxHeight;
-        ppdev->pPointerAttributes->Column = 0;
-        ppdev->pPointerAttributes->Row = 0;
-        ppdev->pPointerAttributes->Enable = 0;
-    }
-
-    return(TRUE);
-}
-
-/******************************Public*Routine******************************\
-* vDisableSURF
-*
-* Disable the surface. Un-Maps the frame in memory.
-*
-\**************************************************************************/
-
-VOID NTAPI vDisableSURF(PPDEV ppdev)
-{
-    DWORD returnedDataLength;
-    VIDEO_MEMORY videoMemory;
-
-    videoMemory.RequestedVirtualAddress = (PVOID) ppdev->pjScreen;
-
-    if (EngDeviceIoControl(ppdev->hDriver,
-                           IOCTL_VIDEO_UNMAP_VIDEO_MEMORY,
-                           &videoMemory,
-                           sizeof(VIDEO_MEMORY),
-                           NULL,
-                           0,
-                           &returnedDataLength))
-    {
-        RIP("DISP vDisableSURF failed IOCTL_VIDEO_UNMAP\n");
-    }
-}
-
-
-/******************************Public*Routine******************************\
-* bInitPDEV
-*
-* Determine the mode we should be in based on the DEVMODE passed in.
-* Query mini-port to get information needed to fill in the DevInfo and the
-* GdiInfo .
-*
-\**************************************************************************/
-
-BOOL NTAPI bInitPDEV(
-PPDEV ppdev,
-DEVMODEW *pDevMode,
-GDIINFO *pGdiInfo,
-DEVINFO *pDevInfo)
-{
-    ULONG cModes;
-    PVIDEO_MODE_INFORMATION pVideoBuffer, pVideoModeSelected, pVideoTemp;
-    VIDEO_COLOR_CAPABILITIES colorCapabilities;
-    ULONG ulTemp;
-    BOOL bSelectDefault;
-    ULONG cbModeSize;
-
-    //
-    // calls the miniport to get mode information.
-    //
-
-    cModes = getAvailableModes(ppdev->hDriver, &pVideoBuffer, &cbModeSize);
-
-    if (cModes == 0)
-    {
-        return(FALSE);
-    }
-
-    //
-    // Now see if the requested mode has a match in that table.
-    //
-
-    pVideoModeSelected = NULL;
-    pVideoTemp = pVideoBuffer;
-
-    if ((pDevMode->dmPelsWidth        == 0) &&
-        (pDevMode->dmPelsHeight       == 0) &&
-        (pDevMode->dmBitsPerPel       == 0) &&
-        (pDevMode->dmDisplayFrequency == 0))
-    {
-        DISPDBG((2, "Default mode requested"));
-        bSelectDefault = TRUE;
-    }
-    else
-    {
-// eVb: 2.5 [DDK Change] - Add missing newlines to debug output
-        DISPDBG((2, "Requested mode...\n"));
-        DISPDBG((2, "   Screen width  -- %li\n", pDevMode->dmPelsWidth));
-        DISPDBG((2, "   Screen height -- %li\n", pDevMode->dmPelsHeight));
-        DISPDBG((2, "   Bits per pel  -- %li\n", pDevMode->dmBitsPerPel));
-        DISPDBG((2, "   Frequency     -- %li\n",
pDevMode->dmDisplayFrequency));
-// eVb: 2.5 [END]
-        bSelectDefault = FALSE;
-    }
-
-    while (cModes--)
-    {
-        if (pVideoTemp->Length != 0)
-        {
-            if (bSelectDefault ||
-                ((pVideoTemp->VisScreenWidth  == pDevMode->dmPelsWidth) &&
-                 (pVideoTemp->VisScreenHeight == pDevMode->dmPelsHeight) &&
-                 (pVideoTemp->BitsPerPlane *
-                  pVideoTemp->NumberOfPlanes  == pDevMode->dmBitsPerPel) &&
-                 (pVideoTemp->Frequency  == pDevMode->dmDisplayFrequency)))
-            {
-                pVideoModeSelected = pVideoTemp;
-                DISPDBG((3, "Found a match\n")) ;
-                break;
-            }
-        }
-
-        pVideoTemp = (PVIDEO_MODE_INFORMATION)
-            (((PUCHAR)pVideoTemp) + cbModeSize);
-    }
-
-    //
-    // If no mode has been found, return an error
-    //
-
-    if (pVideoModeSelected == NULL)
-    {
-        EngFreeMem(pVideoBuffer);
-        DISPDBG((0,"DISP bInitPDEV failed - no valid modes\n"));
-        return(FALSE);
-    }
-
-    //
-    // Fill in the GDIINFO data structure with the information returned from
-    // the kernel driver.
-    //
-
-    ppdev->ulMode = pVideoModeSelected->ModeIndex;
-    ppdev->cxScreen = pVideoModeSelected->VisScreenWidth;
-    ppdev->cyScreen = pVideoModeSelected->VisScreenHeight;
-    ppdev->ulBitCount = pVideoModeSelected->BitsPerPlane *
-                        pVideoModeSelected->NumberOfPlanes;
-    ppdev->lDeltaScreen = pVideoModeSelected->ScreenStride;
-
-    ppdev->flRed = pVideoModeSelected->RedMask;
-    ppdev->flGreen = pVideoModeSelected->GreenMask;
-    ppdev->flBlue = pVideoModeSelected->BlueMask;
-
-
-    pGdiInfo->ulVersion    = GDI_DRIVER_VERSION;
-    pGdiInfo->ulTechnology = DT_RASDISPLAY;
-    pGdiInfo->ulHorzSize   = pVideoModeSelected->XMillimeter;
-    pGdiInfo->ulVertSize   = pVideoModeSelected->YMillimeter;
-
-    pGdiInfo->ulHorzRes        = ppdev->cxScreen;
-    pGdiInfo->ulVertRes        = ppdev->cyScreen;
-    pGdiInfo->ulPanningHorzRes = ppdev->cxScreen;
-    pGdiInfo->ulPanningVertRes = ppdev->cyScreen;
-    pGdiInfo->cBitsPixel       = pVideoModeSelected->BitsPerPlane;
-    pGdiInfo->cPlanes          = pVideoModeSelected->NumberOfPlanes;
-    pGdiInfo->ulVRefresh       = pVideoModeSelected->Frequency;
-    pGdiInfo->ulBltAlignment   = 1;     // We don't have accelerated screen-
-                                        //   to-screen blts, and any
-                                        //   window alignment is okay
-
-    pGdiInfo->ulLogPixelsX = pDevMode->dmLogPixels;
-    pGdiInfo->ulLogPixelsY = pDevMode->dmLogPixels;
-
-#ifdef MIPS
-    if (ppdev->ulBitCount == 8)
-        pGdiInfo->flTextCaps = (TC_RA_ABLE | TC_SCROLLBLT);
-    else
-#endif
-    pGdiInfo->flTextCaps = TC_RA_ABLE;
-
-    pGdiInfo->flRaster = 0;           // flRaster is reserved by DDI
-
-    pGdiInfo->ulDACRed   = pVideoModeSelected->NumberRedBits;
-    pGdiInfo->ulDACGreen = pVideoModeSelected->NumberGreenBits;
-    pGdiInfo->ulDACBlue  = pVideoModeSelected->NumberBlueBits;
-
-    pGdiInfo->ulAspectX    = 0x24;    // One-to-one aspect ratio
-    pGdiInfo->ulAspectY    = 0x24;
-    pGdiInfo->ulAspectXY   = 0x33;
-
-    pGdiInfo->xStyleStep   = 1;       // A style unit is 3 pels
-    pGdiInfo->yStyleStep   = 1;
-    pGdiInfo->denStyleStep = 3;
-
-    pGdiInfo->ptlPhysOffset.x = 0;
-    pGdiInfo->ptlPhysOffset.y = 0;
-    pGdiInfo->szlPhysSize.cx  = 0;
-    pGdiInfo->szlPhysSize.cy  = 0;
-
-    // RGB and CMY color info.
-
-    //
-    // try to get it from the miniport.
-    // if the miniport doesn ot support this feature, use defaults.
-    //
-
-    if (EngDeviceIoControl(ppdev->hDriver,
-                           IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES,
-                           NULL,
-                           0,
-                           &colorCapabilities,
-                           sizeof(VIDEO_COLOR_CAPABILITIES),
-                           &ulTemp))
-    {
-
-        DISPDBG((2, "getcolorCapabilities failed \n"));
-
-        pGdiInfo->ciDevice.Red.x = 6700;
-        pGdiInfo->ciDevice.Red.y = 3300;
-        pGdiInfo->ciDevice.Red.Y = 0;
-        pGdiInfo->ciDevice.Green.x = 2100;
-        pGdiInfo->ciDevice.Green.y = 7100;
-        pGdiInfo->ciDevice.Green.Y = 0;
-        pGdiInfo->ciDevice.Blue.x = 1400;
-        pGdiInfo->ciDevice.Blue.y = 800;
-        pGdiInfo->ciDevice.Blue.Y = 0;
-        pGdiInfo->ciDevice.AlignmentWhite.x = 3127;
-        pGdiInfo->ciDevice.AlignmentWhite.y = 3290;
-        pGdiInfo->ciDevice.AlignmentWhite.Y = 0;
-
-        pGdiInfo->ciDevice.RedGamma = 20000;
-        pGdiInfo->ciDevice.GreenGamma = 20000;
-        pGdiInfo->ciDevice.BlueGamma = 20000;
-
-    }
-    else
-    {
-        pGdiInfo->ciDevice.Red.x = colorCapabilities.RedChromaticity_x;
-        pGdiInfo->ciDevice.Red.y = colorCapabilities.RedChromaticity_y;
-        pGdiInfo->ciDevice.Red.Y = 0;
-        pGdiInfo->ciDevice.Green.x = colorCapabilities.GreenChromaticity_x;
-        pGdiInfo->ciDevice.Green.y = colorCapabilities.GreenChromaticity_y;
-        pGdiInfo->ciDevice.Green.Y = 0;
-        pGdiInfo->ciDevice.Blue.x = colorCapabilities.BlueChromaticity_x;
-        pGdiInfo->ciDevice.Blue.y = colorCapabilities.BlueChromaticity_y;
-        pGdiInfo->ciDevice.Blue.Y = 0;
-        pGdiInfo->ciDevice.AlignmentWhite.x = colorCapabilities.WhiteChromaticity_x;
-        pGdiInfo->ciDevice.AlignmentWhite.y = colorCapabilities.WhiteChromaticity_y;
-        pGdiInfo->ciDevice.AlignmentWhite.Y = colorCapabilities.WhiteChromaticity_Y;
-
-        // if we have a color device store the three color gamma values,
-        // otherwise store the unique gamma value in all three.
-
-        if (colorCapabilities.AttributeFlags & VIDEO_DEVICE_COLOR)
-        {
-            pGdiInfo->ciDevice.RedGamma = colorCapabilities.RedGamma;
-            pGdiInfo->ciDevice.GreenGamma = colorCapabilities.GreenGamma;
-            pGdiInfo->ciDevice.BlueGamma = colorCapabilities.BlueGamma;
-        }
-        else
-        {
-            pGdiInfo->ciDevice.RedGamma = colorCapabilities.WhiteGamma;
-            pGdiInfo->ciDevice.GreenGamma = colorCapabilities.WhiteGamma;
-            pGdiInfo->ciDevice.BlueGamma = colorCapabilities.WhiteGamma;
-        }
-
-    };
-
-    pGdiInfo->ciDevice.Cyan.x = 0;
-    pGdiInfo->ciDevice.Cyan.y = 0;
-    pGdiInfo->ciDevice.Cyan.Y = 0;
-    pGdiInfo->ciDevice.Magenta.x = 0;
-    pGdiInfo->ciDevice.Magenta.y = 0;
-    pGdiInfo->ciDevice.Magenta.Y = 0;
-    pGdiInfo->ciDevice.Yellow.x = 0;
-    pGdiInfo->ciDevice.Yellow.y = 0;
-    pGdiInfo->ciDevice.Yellow.Y = 0;
-
-    // No dye correction for raster displays.
-
-    pGdiInfo->ciDevice.MagentaInCyanDye = 0;
-    pGdiInfo->ciDevice.YellowInCyanDye = 0;
-    pGdiInfo->ciDevice.CyanInMagentaDye = 0;
-    pGdiInfo->ciDevice.YellowInMagentaDye = 0;
-    pGdiInfo->ciDevice.CyanInYellowDye = 0;
-    pGdiInfo->ciDevice.MagentaInYellowDye = 0;
-
-    pGdiInfo->ulDevicePelsDPI = 0;   // For printers only
-    pGdiInfo->ulPrimaryOrder = PRIMARY_ORDER_CBA;
-
-    // BUGBUG this should be modified to take into account the size
-    // of the display and the resolution.
-
-    pGdiInfo->ulHTPatternSize = HT_PATSIZE_4x4_M;
-
-    pGdiInfo->flHTFlags = HT_FLAG_ADDITIVE_PRIMS;
-
-    // Fill in the basic devinfo structure
-
-    *pDevInfo = gDevInfoFrameBuffer;
-
-    // Fill in the rest of the devinfo and GdiInfo structures.
-
-    if (ppdev->ulBitCount == 8)
-    {
-        // It is Palette Managed.
-
-        pGdiInfo->ulNumColors = 20;
-        pGdiInfo->ulNumPalReg = 1 << ppdev->ulBitCount;
-// eVb: 2.7 [DDK CHANGE] - No dithering support
-        pDevInfo->flGraphicsCaps |= GCAPS_PALMANAGED;
-// eVb: 2.7 [END]
-        pGdiInfo->ulHTOutputFormat = HT_FORMAT_8BPP;
-        pDevInfo->iDitherFormat = BMF_8BPP;
-
-        // Assuming palette is orthogonal - all colors are same size.
-
-        ppdev->cPaletteShift   = 8 - pGdiInfo->ulDACRed;
-    }
-    else
-    {
-        pGdiInfo->ulNumColors = (ULONG) (-1);
-        pGdiInfo->ulNumPalReg = 0;
-
-        if (ppdev->ulBitCount == 16)
-        {
-            pGdiInfo->ulHTOutputFormat = HT_FORMAT_16BPP;
-            pDevInfo->iDitherFormat = BMF_16BPP;
-        }
-        else if (ppdev->ulBitCount == 24)
-        {
-            pGdiInfo->ulHTOutputFormat = HT_FORMAT_24BPP;
-            pDevInfo->iDitherFormat = BMF_24BPP;
-        }
-        else
-        {
-            pGdiInfo->ulHTOutputFormat = HT_FORMAT_32BPP;
-            pDevInfo->iDitherFormat = BMF_32BPP;
-        }
-    }
-
-    EngFreeMem(pVideoBuffer);
-
-    return(TRUE);
-}
-
-
-/******************************Public*Routine******************************\
-* getAvailableModes
-*
-* Calls the miniport to get the list of modes supported by the kernel driver,
-* and returns the list of modes supported by the diplay driver among those
-*
-* returns the number of entries in the videomode buffer.
-* 0 means no modes are supported by the miniport or that an error occured.
-*
-* NOTE: the buffer must be freed up by the caller.
-*
-\**************************************************************************/
-
-DWORD NTAPI getAvailableModes(
-HANDLE hDriver,
-PVIDEO_MODE_INFORMATION *modeInformation,
-DWORD *cbModeSize)
-{
-    ULONG ulTemp;
-    VIDEO_NUM_MODES modes;
-    PVIDEO_MODE_INFORMATION pVideoTemp;
-
-    //
-    // Get the number of modes supported by the mini-port
-    //
-
-    if (EngDeviceIoControl(hDriver,
-                           IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES,
-                           NULL,
-                           0,
-                           &modes,
-                           sizeof(VIDEO_NUM_MODES),
-                           &ulTemp))
-    {
-        DISPDBG((0, "getAvailableModes failed VIDEO_QUERY_NUM_AVAIL_MODES\n"));
-        return 0;
-    }
-
-    *cbModeSize = modes.ModeInformationLength;
-
-    //
-    // Allocate the buffer for the mini-port to write the modes in.
-    //
-
-    *modeInformation = (PVIDEO_MODE_INFORMATION)
-                        EngAllocMem(0, modes.NumModes *
-                                    modes.ModeInformationLength, ALLOC_TAG);
-
-    if (*modeInformation == NULL)
-    {
-        DISPDBG((0, "getAvailableModes failed EngAllocMem\n"));
-
-        return 0;
-    }
-
-    //
-    // Ask the mini-port to fill in the available modes.
-    //
-
-    if (EngDeviceIoControl(hDriver,
-                           IOCTL_VIDEO_QUERY_AVAIL_MODES,
-                           NULL,
-                           0,
-                           *modeInformation,
-                           modes.NumModes * modes.ModeInformationLength,
-                           &ulTemp))
-    {
-
-        DISPDBG((0, "getAvailableModes failed VIDEO_QUERY_AVAIL_MODES\n"));
-
-        EngFreeMem(*modeInformation);
-        *modeInformation = NULL;
-
-        return 0;
-    }
-
-    //
-    // Now see which of these modes are supported by the display driver.
-    // As an internal mechanism, set the length to 0 for the modes we
-    // DO NOT support.
-    //
-
-    ulTemp = modes.NumModes;
-    pVideoTemp = *modeInformation;
-
-    //
-    // Mode is rejected if it is not one plane, or not graphics, or is not
-    // one of 8, 16 or 32 bits per pel.
-    //
-
-    while (ulTemp--)
-    {
-        if ((pVideoTemp->NumberOfPlanes != 1 ) ||
-            !(pVideoTemp->AttributeFlags & VIDEO_MODE_GRAPHICS) ||
-// eVb: 2.6 [DDK CHANGE] - Do not process banked video modes
-             (pVideoTemp->AttributeFlags & VIDEO_MODE_BANKED) ||
-// eVb: 2.6 [END]
-            ((pVideoTemp->BitsPerPlane != 8) &&
-             (pVideoTemp->BitsPerPlane != 16) &&
-             (pVideoTemp->BitsPerPlane != 24) &&
-             (pVideoTemp->BitsPerPlane != 32)))
-        {
-            pVideoTemp->Length = 0;
-        }
-
-        pVideoTemp = (PVIDEO_MODE_INFORMATION)
-            (((PUCHAR)pVideoTemp) + modes.ModeInformationLength);
-    }
-
-    return modes.NumModes;
-
-}