Why the hell are you putting function headers in a header called "types"?
On Mon, May 19, 2008 at 2:33 AM,  <greatlrd(a)svn.reactos.org> wrote:
  Author: greatlrd
 Date: Sun May 18 13:33:27 2008
 New Revision: 33593
 URL: 
http://svn.reactos.org/svn/reactos?rev=33593&view=rev
 Log:
 adding 1 new syscall from vista : NtGdiCreateOPMProtectedOutputs
 Adding 62 new syscall from vista, they are known as D3DKMT for the graphic drv and
gdi32.dll, I have not fix the protype for I do not known if it same as the drv prototype
or not, yet.
NtGdiDdDDICheckExclusiveOwnership,NtGdiDdDDICheckMonitorPowerState,NtGdiDdDDICheckOcclusion,NtGdiDdDDICloseAdapter,
NtGdiDdDDICreateAllocation, NtGdiDdDDICreateContext, NtGdiDdDDICreateDCFromMemory,
NtGdiDdDDICreateDevice, NtGdiDdDDICreateOverlay, NtGdiDdDDICreateSynchronizationObject,
NtGdiDdDDIDestroyAllocation, NtGdiDdDDIDestroyContext, NtGdiDdDDIDestroyDCFromMemory,
NtGdiDdDDIDestroyDevice, NtGdiDdDDIDestroyOverlay, NtGdiDdDDIDestroySynchronizationObject,
NtGdiDdDDIEscape, NtGdiDdDDIFlipOverlay, NtGdiDdDDIGetContextSchedulingPriority,
NtGdiDdDDIGetDeviceState, NtGdiDdDDIGetDisplayModeList,
NtGdiDdDDIGetMultisampleMethodList, NtGdiDdDDIGetPresentHistory,
NtGdiDdDDIGetProcessSchedulingPriorityClass, NtGdiDdDDIGetRuntimeData,
NtGdiDdDDIGetScanLine, NtGdiDdDDIGetSharedPrimaryHandle, NtGdiDdDDIInvalidateActiveVidPn,
NtGdiDdDDILock, NtGdiDdDDIOpenAdapterFromDeviceName, NtGdiDdDDIOpenAdapterFromHdc,
NtGdiDdDDIOpenResource, NtGdiDdDDIPollDisplayChildren, NtGdiDdDDIPresent,
  NtGdiDdDDIQueryAdapterInfo, NtGdiDdDDIQueryAllocationResidency,
NtGdiDdDDIQueryResourceInfo, NtGdiDdDDIQueryStatistics,
NtGdiDdDDIReleaseProcessVidPnSourceOwners, NtGdiDdDDIRender,
NtGdiDdDDISetAllocationPriority, NtGdiDdDDISetContextSchedulingPriority,
NtGdiDdDDISetDisplayMode, NtGdiDdDDISetDisplayPrivateDriverFormat, NtGdiDdDDISetGammaRamp,
NtGdiDdDDISetProcessSchedulingPriorityClass, NtGdiDdDDISetQueuedLimit,
NtGdiDdDDISetVidPnSourceOwner, NtGdiDdDDISharedPrimaryLockNotification,
NtGdiDdDDISharedPrimaryUnLockNotification, NtGdiDdDDISignalSynchronizationObject,
NtGdiDdDDIUnlock, NtGdiDdDDIUpdateOverlay, NtGdiDdDDIWaitForIdle,
NtGdiDdDDIWaitForSynchronizationObject, NtGdiDdDDIWaitForVerticalBlankEvent,
NtGdiDDCCIGetCapabilitiesString, NtGdiDDCCIGetCapabilitiesStringLength,
NtGdiDDCCIGetTimingReport, NtGdiDDCCIGetVCPFeature, NtGdiDDCCISaveCurrentSettings,
NtGdiDDCCISetVCPFeature,
 Added:
    branches/win32k-gdi-dx/subsystems/win32/win32k/ntddraw/d3dkmt.c   (with props)
 Modified:
    branches/win32k-gdi-dx/include/reactos/win32k/ntgdityp.h
    branches/win32k-gdi-dx/subsystems/win32/win32k/stubs/stubs.c
    branches/win32k-gdi-dx/subsystems/win32/win32k/w32ksvc.db
 Modified: branches/win32k-gdi-dx/include/reactos/win32k/ntgdityp.h
 URL:
http://svn.reactos.org/svn/reactos/branches/win32k-gdi-dx/include/reactos/w…
 ==============================================================================
 --- branches/win32k-gdi-dx/include/reactos/win32k/ntgdityp.h [iso-8859-1] (original)
 +++ branches/win32k-gdi-dx/include/reactos/win32k/ntgdityp.h [iso-8859-1] Sun May 18
13:33:27 2008
 @@ -1,667 +1,738 @@
 -/*
 - * COPYRIGHT:       See COPYING in the top level directory
 - * PROJECT:         ReactOS Win32 Graphical Subsystem (WIN32K)
 - * FILE:            include/win32k/ntgdityp.h
 - * PURPOSE:         Win32 Shared GDI Types for NtGdi*
 - * PROGRAMMER:      Alex Ionescu (alex(a)relsoft.net)
 - */
 -
 -/* INCLUDES ******************************************************************/
 -
 -#ifndef _NTGDITYP_
 -#define _NTGDITYP_
 -
 -/* ENUMERATIONS **************************************************************/
 -
 -typedef enum _ARCTYPE
 -{
 -    GdiTypeArc,
 -    GdiTypeArcTo,
 -    GdiTypeChord,
 -    GdiTypePie,
 -} ARCTYPE, *PARCTYPE;
 -
 -typedef enum _PALFUNCTYPE
 -{
 -    GdiPalAnimate,
 -    GdiPalSetEntries,
 -    GdiPalGetEntries,
 -    GdiPalGetSystemEntries,
 -    GdiPalSetColorTable,
 -    GdiPalGetColorTable,
 -} PALFUNCTYPE, *PPALFUNCTYPE;
 -
 -typedef enum _POLYFUNCTYPE
 -{
 -    GdiPolyPolygon = 1,
 -    GdiPolyPolyLine,
 -    GdiPolyBezier,
 -    GdiPolyLineTo,
 -    GdiPolyBezierTo,
 -    GdiPolyPolyRgn,
 -} POLYFUNCTYPE, *PPOLYFUNCTYPE;
 -
 -typedef enum _GETDCDWORD
 -{
 -    GdiGetJournal,
 -    GdiGetRelAbs,
 -    GdiGetBreakExtra,
 -    GdiGerCharBreak,
 -    GdiGetArcDirection,
 -    GdiGetEMFRestorDc,
 -    GdiGetFontLanguageInfo,
 -    GdiGetIsMemDc,
 -    GdiGetMapMode,
 -    GdiGetTextCharExtra,
 -} GETDCDWORD, *PGETDCDWORD;
 -
 -typedef enum _GETSETDCDWORD
 -{
 -    GdiGetSetCopyCount = 2,
 -    GdiGetSetTextAlign,
 -    GdiGetSetRelAbs,
 -    GdiGetSetTextCharExtra,
 -    GdiGetSetSelectFont,
 -    GdiGetSetMapperFlagsInternal,
 -    GdiGetSetMapMode,
 -    GdiGetSetArcDirection,
 -} GETSETDCDWORD, *PGETSETDCDWORD;
 -
 -typedef enum _GETDCPOINT
 -{
 -    GdiGetViewPortExt = 1,
 -    GdiGetWindowExt,
 -    GdiGetViewPortOrg,
 -    GdiGetWindowOrg,
 -    GdiGetAspectRatioFilter,
 -    GdiGetDCOrg = 6,
 -} GETDCPOINT, *PGETDCPOINT;
 -
 -
 -typedef enum _GDIBATCHCMD
 -{
 -    GdiBCPatBlt,
 -    GdiBCPolyPatBlt,
 -    GdiBCTextOut,
 -    GdiBCExtTextOut,
 -    GdiBCSetBrushOrg,
 -    GdiBCExtSelClipRgn,
 -    GdiBCSelObj,
 -    GdiBCDelObj,
 -    GdiBCDelRgn,
 -} GDIBATCHCMD, *PGDIBATCHCMD;
 -
 -typedef enum _TRANSFORMTYPE
 -{
 -    GdiDpToLp,
 -    GdiLpToDp,
 -} TRANSFORMTYPE, *PTRANSFORMTYPE;
 -
 -typedef enum GDIObjType
 -{
 -    GDIObjType_DEF_TYPE = 0x00,
 -    GDIObjType_DC_TYPE = 0x01,
 -    GDIObjType_UNUSED1_TYPE = 0x02,
 -    GDIObjType_UNUSED2_TYPE = 0x03,
 -    GDIObjType_RGN_TYPE = 0x04,
 -    GDIObjType_SURF_TYPE = 0x05,
 -    GDIObjType_CLIENTOBJ_TYPE = 0x06,
 -    GDIObjType_PATH_TYPE = 0x07,
 -    GDIObjType_PAL_TYPE = 0x08,
 -    GDIObjType_ICMLCS_TYPE = 0x09,
 -    GDIObjType_LFONT_TYPE = 0x0a,
 -    GDIObjType_RFONT_TYPE = 0x0b,
 -    GDIObjType_PFE_TYPE = 0x0c,
 -    GDIObjType_PFT_TYPE = 0x0d,
 -    GDIObjType_ICMCXF_TYPE = 0x0e,
 -    GDIObjType_SPRITE_TYPE = 0x0f,
 -    GDIObjType_BRUSH_TYPE = 0x10,
 -    GDIObjType_UMPD_TYPE = 0x11,
 -    GDIObjType_UNUSED4_TYPE = 0x12,
 -    GDIObjType_SPACE_TYPE = 0x13,
 -    GDIObjType_UNUSED5_TYPE = 0x14,
 -    GDIObjType_META_TYPE = 0x15,
 -    GDIObjType_EFSTATE_TYPE = 0x16,
 -    GDIObjType_BMFD_TYPE = 0x17,
 -    GDIObjType_VTFD_TYPE = 0x18,
 -    GDIObjType_TTFD_TYPE = 0x19,
 -    GDIObjType_RC_TYPE = 0x1a,
 -    GDIObjType_TEMP_TYPE = 0x1b,
 -    GDIObjType_DRVOBJ_TYPE = 0x1c,
 -    GDIObjType_DCIOBJ_TYPE = 0x1d,
 -    GDIObjType_SPOOL_TYPE = 0x1e,
 -    GDIObjType_MAX_TYPE = 0x1e,
 -    GDIObjTypeTotal = 0x1f,
 -} GDIOBJTYPE, *PGDIOBJTYPE;
 -
 -typedef enum GDILoObjType
 -{
 -    GDILoObjType_LO_BRUSH_TYPE = 0x100000,
 -    GDILoObjType_LO_DC_TYPE = 0x10000,
 -    GDILoObjType_LO_BITMAP_TYPE = 0x50000,
 -    GDILoObjType_LO_PALETTE_TYPE = 0x80000,
 -    GDILoObjType_LO_FONT_TYPE = 0xa0000,
 -    GDILoObjType_LO_REGION_TYPE = 0x40000,
 -    GDILoObjType_LO_ICMLCS_TYPE = 0x90000,
 -    GDILoObjType_LO_CLIENTOBJ_TYPE = 0x60000,
 -    GDILoObjType_LO_ALTDC_TYPE = 0x210000,
 -    GDILoObjType_LO_PEN_TYPE = 0x300000,
 -    GDILoObjType_LO_EXTPEN_TYPE = 0x500000,
 -    GDILoObjType_LO_DIBSECTION_TYPE = 0x250000,
 -    GDILoObjType_LO_METAFILE16_TYPE = 0x260000,
 -    GDILoObjType_LO_METAFILE_TYPE = 0x460000,
 -    GDILoObjType_LO_METADC16_TYPE = 0x660000
 -} GDILOOBJTYPE, *PGDILOOBJTYPE;
 -
 -#define GdiWorldSpaceToPageSpace    0x203
 -
 -/* FIXME: Unknown */
 -typedef DWORD FULLSCREENCONTROL;
 -typedef DWORD LFTYPE;
 -
 -/* Public LAST_STOCK = 19, plus 2 more internal entries */
 -#define NB_STOCK_OBJECTS 22
 -
 -/* extra stock object: default 1x1 bitmap for memory DCs */
 -#define DEFAULT_BITMAP (21)
 -
 -
 -/* DEFINES *******************************************************************/
 -
 -#define GDIBATCHBUFSIZE 0x136*4
 -#define GDI_BATCH_LIMIT 20
 -
 -// NtGdiGetCharWidthW Flags
 -#define GCW_WIN32   0x0001
 -#define GCW_NOFLOAT 0x0002
 -#define GCW_INDICES 0x0008
 -
 -// NtGdiGetCharABCWidthW Flags
 -#define GCABCW_NOFLOAT 0x0001
 -#define GCABCW_INDICES 0x0002
 -
 -/* CAPS1 support */
 -//#define C1_TRANSPARENT    0x0001
 -#define TC_TT_ABLE        0x0002
 -#define C1_TT_CR_ANY      0x0004
 -#define C1_EMF_COMPLIANT  0x0008
 -#define C1_DIBENGINE      0x0010
 -#define C1_GAMMA_RAMP     0x0040
 -#define C1_REINIT_ABLE    0x0080
 -#define C1_GLYPH_INDEX    0x0100
 -#define C1_BIT_PACKED     0x0200
 -#define C1_BYTE_PACKED    0x0400
 -#define C1_COLORCURSOR    0x0800
 -#define C1_CMYK_ABLE      0x1000
 -#define C1_SLOW_CARD      0x2000
 -
 -/* TYPES *********************************************************************/
 -
 -typedef PVOID KERNEL_PVOID;
 -typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;
 -typedef LONG FIX;
 -
 -typedef struct _CHWIDTHINFO
 -{
 -   LONG    lMaxNegA;
 -   LONG    lMaxNegC;
 -   LONG    lMinWidthD;
 -} CHWIDTHINFO, *PCHWIDTHINFO;
 -
 -typedef struct _UNIVERSAL_FONT_ID
 -{
 -    DWORD  dwUfid[2];
 -} UNIVERSAL_FONT_ID, *PUNIVERSAL_FONT_ID;
 -
 -typedef struct _REALIZATION_INFO // Based on LOCALESIGNATURE
 -{
 -    DWORD  dwCsbDefault[2];
 -    DWORD  dwCsbSupported0;
 -} REALIZATION_INFO, *PREALIZATION_INFO;
 -
 -typedef struct _WIDTHDATA
 -{
 -    USHORT      sOverhang;
 -    USHORT      sHeight;
 -    USHORT      sCharInc;
 -    USHORT      sBreak;
 -    BYTE        jFirst;
 -    BYTE        jLast;
 -    BYTE        jBreak;
 -    BYTE        jDefault;
 -    USHORT      sDBCSInc;
 -    USHORT      sDefaultInc;
 -} WIDTHDATA, *PWIDTHDATA;
 -
 -typedef struct _DEVCAPS // Very similar to GDIINFO
 -{
 -    ULONG ulVersion;
 -    ULONG ulTechnology;
 -    ULONG ulHorzSizeM;
 -    ULONG ulVertSizeM;
 -    ULONG ulHorzSize;
 -    ULONG ulVertSize;
 -    ULONG ulHorzRes;
 -    ULONG ulVertRes;
 -    ULONG ulBitsPixel;
 -    ULONG ulPlanes;
 -    ULONG ulNumPens;
 -    ULONG ulNumFonts;
 -    ULONG ulNumColors;
 -    ULONG ulRasterCaps;
 -    ULONG ulAspectX;
 -    ULONG ulAspectY;
 -    ULONG ulAspectXY;
 -    ULONG ulLogPixelsX;
 -    ULONG ulLogPixelsY;
 -    ULONG ulSizePalette;
 -    ULONG ulColorRes;
 -    ULONG ulPhysicalWidth;
 -    ULONG ulPhysicalHeight;
 -    ULONG ulPhysicalOffsetX;
 -    ULONG ulPhysicalOffsetY;
 -    ULONG ulTextCaps;
 -    ULONG ulVRefresh;
 -    ULONG ulDesktopHorzRes;
 -    ULONG ulDesktopVertRes;
 -    ULONG ulBltAlignment;
 -    ULONG ulReserved[4];
 -    ULONG ulShadeBlend;
 -    ULONG ulColorMgmtCaps;
 -} DEVCAPS, *PDEVCAPS;
 -
 -/* Gdi Handle Cache Types and Structures */
 -#define GDI_CACHED_HADNLE_TYPES 4
 -#define CACHE_BRUSH_ENTRIES  10
 -#define CACHE_PEN_ENTRIES     8
 -#define CACHE_REGION_ENTRIES  8
 -#define CACHE_LFONT_ENTRIES   1
 -
 -typedef enum _HANDLECACHETYPE
 -{
 -    hctBrushHandle,
 -    hctPenHandle,
 -    hctRegionHandle,
 -    hctLFontHandle
 -} HANDLECACHETYPE,*PHANDLECACHETYPE;
 -
 -typedef struct _GDIHANDLECACHE
 -{
 -    ULONG           ulLock;
 -    ULONG           ulNumHandles[GDI_CACHED_HADNLE_TYPES];
 -    HANDLE
Handle[CACHE_BRUSH_ENTRIES+CACHE_PEN_ENTRIES+CACHE_REGION_ENTRIES+CACHE_LFONT_ENTRIES];
 -} GDIHANDLECACHE, *PGDIHANDLECACHE;
 -
 -/* Font Structures */
 -typedef struct _TMDIFF
 -{
 -    ULONG cjotma;
 -    CHAR chFirst;
 -    CHAR chLast;
 -    CHAR ChDefault;
 -    CHAR ChBreak;
 -} TMDIFF, *PTMDIFF;
 -
 -typedef struct _TMW_INTERNAL
 -{
 -    TEXTMETRICW TextMetric;
 -    TMDIFF Diff;
 -} TMW_INTERNAL, *PTMW_INTERNAL;
 -
 -typedef struct _NTMW_INTERNAL
 -{
 -    TMDIFF tmd;
 -    NEWTEXTMETRICEXW ntmw;
 -} NTMW_INTERNAL, *PNTMW_INTERNAL;
 -
 -typedef struct _ENUMFONTDATAW
 -{
 -    ULONG cbSize;
 -    ULONG ulNtmwiOffset;
 -    DWORD dwFontType;
 -    ENUMLOGFONTEXDVW elfexdv; /* variable size! */
 -    /* NTMW_INTERNAL ntmwi; use ulNtwmOffset */
 -} ENUMFONTDATAW, *PENUMFONTDATAW;
 -
 -/* Number Representation */
 -typedef struct _EFLOAT_S
 -{
 -    LONG lMant;
 -    LONG lExp;
 -} EFLOAT_S;
 -
 -/* XFORM Structures */
 -typedef struct _MATRIX_S
 -{
 -    EFLOAT_S efM11;
 -    EFLOAT_S efM12;
 -    EFLOAT_S efM21;
 -    EFLOAT_S efM22;
 -    EFLOAT_S efDx;
 -    EFLOAT_S efDy;
 -    FIX fxDx;
 -    FIX fxDy;
 -    FLONG flAccel;
 -} MATRIX_S;
 -
 -/* Gdi XForm storage union */
 -typedef union
 -{
 -  FLOAT f;
 -  ULONG l;
 -} gxf_long;
 -
 -typedef struct _CFONT
 -{
 -    struct _CFONT   *pcfNext;
 -    HFONT           hf;
 -    ULONG           cRef;               // Count of all pointers to this CFONT.
 -    FLONG           fl;
 -    LONG            lHeight;            // Precomputed logical height.
 -    HDC             hdc;                // HDC of realization.  0 for display.
 -    EFLOAT_S        efM11;              // efM11 of WtoD of DC of realization
 -    EFLOAT_S        efM22;              // efM22 of WtoD of DC of realization
 -    EFLOAT_S        efDtoWBaseline;     // Precomputed back transform.  (FXtoL)
 -    EFLOAT_S        efDtoWAscent;       // Precomputed back transform.  (FXtoL)
 -    WIDTHDATA       wd;
 -    FLONG           flInfo;
 -    USHORT          sWidth[256];        // Widths in pels.
 -    ULONG           ulAveWidth;         // bogus average used by USER
 -    TMW_INTERNAL    tmw;                // cached metrics
 -    LOCALESIGNATURE lsLocSig;           // font signature information
 -} CFONT, *PCFONT;
 -
 -//
 -// GDI Batch structures.
 -//
 -typedef struct _GDIBATCHHDR
 -{
 -  SHORT Size;
 -  SHORT Cmd;
 -} GDIBATCHHDR, *PGDIBATCHHDR;
 -
 -typedef struct _GDIBSPATBLT
 -{
 -  GDIBATCHHDR gbHdr;
 -  int nXLeft;
 -  int nYLeft;
 -  int nWidth;
 -  int nHeight;
 -  HANDLE hbrush;
 -  DWORD dwRop;
 -  COLORREF crForegroundClr;
 -  COLORREF crBackgroundClr;
 -  COLORREF crBrushClr;
 -  INT IcmBrushColor;
 -  POINTL ptlViewportOrg;
 -  ULONG ulForegroundClr;
 -  ULONG ulBackgroundClr;
 -  ULONG ulBrushClr;
 -} GDIBSPATBLT, *PGDIBSPATBLT;
 -
 -#ifndef _NTUSRTYP_
 -typedef struct _PATRECT
 -{
 -  RECT r;
 -  HBRUSH hBrush;
 -} PATRECT, * PPATRECT;
 -
 -typedef struct _W32CLIENTINFO
 -{
 -    ULONG CI_flags;
 -    ULONG cSpins;
 -    ULONG ulWindowsVersion;
 -    ULONG ulAppCompatFlags;
 -    ULONG ulAppCompatFlags2;
 -    ULONG W32ClientInfo[57];
 -} W32CLIENTINFO, *PW32CLIENTINFO;
 -#endif
 -
 -typedef struct _GDIBSPPATBLT
 -{
 -  GDIBATCHHDR gbHdr;
 -  DWORD rop4;
 -  DWORD Mode;
 -  DWORD Count;
 -  COLORREF crForegroundClr;
 -  COLORREF crBackgroundClr;
 -  COLORREF crBrushClr;
 -  ULONG ulForegroundClr;
 -  ULONG ulBackgroundClr;
 -  ULONG ulBrushClr;
 -  POINTL ptlViewportOrg;
 -  PATRECT pRect[1]; // POLYPATBLT
 -} GDIBSPPATBLT, *PGDIBSPPATBLT;
 -
 -typedef struct _GDIBSTEXTOUT
 -{
 -  GDIBATCHHDR gbHdr;
 -  COLORREF crForegroundClr;
 -  COLORREF crBackgroundClr;
 -  LONG lmBkMode;
 -  ULONG ulForegroundClr;
 -  ULONG ulBackgroundClr;
 -  int x;
 -  int y;
 -  UINT Options;
 -  RECT Rect;
 -  DWORD iCS_CP;
 -  UINT cbCount;
 -  UINT Size;
 -  HANDLE hlfntNew;
 -  FLONG flTextAlign;
 -  POINTL ptlViewportOrg;
 -  WCHAR String[2];
 -} GDIBSTEXTOUT, *PGDIBSTEXTOUT;
 -
 -typedef struct _GDIBSEXTTEXTOUT
 -{
 -  GDIBATCHHDR gbHdr;
 -  UINT Count;
 -  UINT Options;
 -  RECT Rect;
 -  POINTL ptlViewportOrg;
 -  ULONG ulBackgroundClr;
 -} GDIBSEXTTEXTOUT, *PGDIBSEXTTEXTOUT;
 -
 -typedef struct _GDIBSSETBRHORG
 -{
 -  GDIBATCHHDR gbHdr;
 -  POINTL ptlBrushOrigin;
 -} GDIBSSETBRHORG, *PGDIBSSETBRHORG;
 -
 -typedef struct _GDIBSEXTSELCLPRGN
 -{
 -  GDIBATCHHDR gbHdr;
 -  int fnMode;
 -  LONG right;
 -  LONG bottom;
 -  LONG left;
 -  LONG top;
 -} GDIBSEXTSELCLPRGN, *PGDIBSEXTSELCLPRGN;
 -//
 -//   Use with GdiBCSelObj, GdiBCDelObj and GdiBCDelRgn.
 -typedef struct _GDIBSOBJECT
 -{
 -  GDIBATCHHDR gbHdr;
 -  HGDIOBJ hgdiobj;
 -} GDIBSOBJECT, *PGDIBSOBJECT;
 -
 -//
 -//  Driver Functions
 -//
 -typedef BOOL (NTAPI *PGD_ENABLEDRIVER)(ULONG, ULONG, PDRVENABLEDATA);
 -typedef DHPDEV (NTAPI *PGD_ENABLEPDEV)(DEVMODEW  *, LPWSTR, ULONG, HSURF *, ULONG, ULONG
*, ULONG, DEVINFO  *, LPWSTR, LPWSTR, HANDLE);
 -typedef VOID (NTAPI *PGD_COMPLETEPDEV)(DHPDEV, HDEV);
 -typedef VOID (NTAPI *PGD_DISABLEPDEV)(DHPDEV);
 -typedef HSURF (NTAPI *PGD_ENABLESURFACE)(DHPDEV);
 -typedef VOID (NTAPI *PGD_DISABLESURFACE)(DHPDEV);
 -typedef BOOL (NTAPI *PGD_ASSERTMODE)(DHPDEV, BOOL);
 -typedef BOOL (NTAPI *PGD_OFFSET)(SURFOBJ*, LONG, LONG, FLONG);
 -typedef BOOL (NTAPI *PGD_RESETPDEV)(DHPDEV, DHPDEV);
 -typedef VOID (NTAPI *PGD_DISABLEDRIVER)(VOID);
 -typedef HBITMAP (NTAPI *PGD_CREATEDEVICEBITMAP)(DHPDEV, SIZEL, ULONG);
 -typedef VOID (NTAPI *PGD_DELETEDEVICEBITMAP)(DHSURF);
 -typedef BOOL (NTAPI *PGD_ALPHABLEND)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*,
RECTL*, BLENDOBJ*);
 -typedef BOOL (NTAPI *PGD_REALIZEBRUSH)(BRUSHOBJ*, SURFOBJ*, SURFOBJ*, SURFOBJ*,
XLATEOBJ*, ULONG);
 -typedef ULONG (NTAPI *PGD_DITHERCOLOR)(DHPDEV, ULONG, ULONG, PULONG);
 -typedef BOOL (NTAPI *PGD_STROKEPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*, BRUSHOBJ*,
POINTL*, PLINEATTRS, MIX);
 -typedef BOOL (NTAPI *PGD_FILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*,
MIX, ULONG);
 -typedef BOOL (NTAPI *PGD_STROKEANDFILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*,
BRUSHOBJ*, PLINEATTRS, BRUSHOBJ*, POINTL*, MIX, ULONG);
 -typedef BOOL (NTAPI *PGD_PAINT)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*, MIX);
 -typedef BOOL (NTAPI *PGD_BITBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
RECTL*, POINTL*, POINTL*, BRUSHOBJ*, POINTL*, ROP4);
 -typedef BOOL (NTAPI *PGD_TRANSPARENTBLT)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
RECTL*, RECTL*, ULONG, ULONG);
 -typedef BOOL (NTAPI *PGD_COPYBITS)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*,
POINTL*);
 -typedef BOOL (NTAPI *PGD_STRETCHBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
COLORADJUSTMENT*, POINTL*, RECTL*, RECTL*, POINTL*, ULONG);
 -typedef BOOL (NTAPI *PGD_STRETCHBLTROP)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*,
XLATEOBJ*, COLORADJUSTMENT*, POINTL*, RECTL*, RECTL*, POINTL*, ULONG, BRUSHOBJ*, DWORD);
 -typedef BOOL (NTAPI *PGD_SETPALETTE)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG);
 -typedef BOOL (NTAPI *PGD_TEXTOUT)(SURFOBJ*, STROBJ*, FONTOBJ*, CLIPOBJ*, RECTL*, RECTL*,
BRUSHOBJ*, BRUSHOBJ*, POINTL*, MIX);
 -typedef ULONG (NTAPI *PGD_ESCAPE)(SURFOBJ*, ULONG, ULONG, PVOID *, ULONG, PVOID *);
 -typedef ULONG (NTAPI *PGD_DRAWESCAPE)(SURFOBJ*, ULONG, CLIPOBJ*, RECTL*, ULONG, PVOID
*);
 -typedef PIFIMETRICS (NTAPI *PGD_QUERYFONT)(DHPDEV, ULONG, ULONG, PULONG);
 -typedef PVOID (NTAPI *PGD_QUERYFONTTREE)(DHPDEV, ULONG, ULONG, ULONG, PULONG);
 -typedef LONG (NTAPI *PGD_QUERYFONTDATA)(DHPDEV, FONTOBJ*, ULONG, HGLYPH, GLYPHDATA*,
PVOID, ULONG);
 -typedef ULONG (NTAPI *PGD_SETPOINTERSHAPE)(SURFOBJ*, SURFOBJ*, SURFOBJ*, XLATEOBJ*,
LONG, LONG, LONG, LONG, RECTL*, ULONG);
 -typedef VOID (NTAPI *PGD_MOVEPOINTER)(SURFOBJ*, LONG, LONG, RECTL*);
 -typedef BOOL (NTAPI *PGD_LINETO)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, LONG, LONG, LONG, LONG,
RECTL*, MIX);
 -typedef BOOL (NTAPI *PGD_SENDPAGE)(SURFOBJ*);
 -typedef BOOL (NTAPI *PGD_STARTPAGE)(SURFOBJ*);
 -typedef BOOL (NTAPI *PGD_ENDDOC)(SURFOBJ*, ULONG);
 -typedef BOOL (NTAPI *PGD_STARTDOC)(SURFOBJ*, PWSTR, DWORD);
 -typedef ULONG (NTAPI *PGD_GETGLYPHMODE)(DHPDEV, FONTOBJ*);
 -typedef VOID (NTAPI *PGD_SYNCHRONIZE)(DHPDEV, RECTL*);
 -typedef ULONG (NTAPI *PGD_SAVESCREENBITS)(SURFOBJ*, ULONG, ULONG, RECTL*);
 -typedef ULONG (NTAPI *PGD_GETMODES)(HANDLE, ULONG, PDEVMODEW);
 -typedef VOID (NTAPI *PGD_FREE)(PVOID, ULONG);
 -typedef VOID (NTAPI *PGD_DESTROYFONT)(FONTOBJ*);
 -typedef LONG (NTAPI *PGD_QUERYFONTCAPS)(ULONG, PULONG);
 -typedef ULONG (NTAPI *PGD_LOADFONTFILE)(ULONG, PVOID, ULONG, ULONG);
 -typedef BOOL (NTAPI *PGD_UNLOADFONTFILE)(ULONG);
 -typedef ULONG (NTAPI *PGD_FONTMANAGEMENT)(SURFOBJ*, FONTOBJ*, ULONG, ULONG, PVOID,
ULONG, PVOID);
 -typedef LONG (NTAPI *PGD_QUERYTRUETYPETABLE)(ULONG, ULONG, ULONG, PTRDIFF, ULONG,
PBYTE);
 -typedef LONG (NTAPI *PGD_QUERYTRUETYPEOUTLINE)(DHPDEV, FONTOBJ*, HGLYPH, BOOL,
GLYPHDATA*, ULONG, TTPOLYGONHEADER*);
 -typedef PVOID (NTAPI *PGD_GETTRUETYPEFILE)(ULONG, PULONG);
 -typedef LONG (NTAPI *PGD_QUERYFONTFILE)(ULONG, ULONG, ULONG, PULONG);
 -typedef BOOL (NTAPI *PGD_QUERYADVANCEWIDTHS)(DHPDEV, FONTOBJ*, ULONG, HGLYPH *, PVOID *,
ULONG);
 -typedef BOOL (NTAPI *PGD_SETPIXELFORMAT)(SURFOBJ*, LONG, ULONG);
 -typedef LONG (NTAPI *PGD_DESCRIBEPIXELFORMAT)(DHPDEV, LONG, ULONG,
PPIXELFORMATDESCRIPTOR);
 -typedef BOOL (NTAPI *PGD_SWAPBUFFERS)(SURFOBJ*, PWNDOBJ);
 -typedef BOOL (NTAPI *PGD_STARTBANDING)(SURFOBJ*, POINTL*);
 -typedef BOOL (NTAPI *PGD_NEXTBAND)(SURFOBJ*, POINTL*);
 -typedef BOOL (NTAPI *PGD_GETDIRECTDRAWINFO)(DHPDEV, PDD_HALINFO, PDWORD, VIDEOMEMORY*,
PDWORD, PDWORD);
 -typedef BOOL (NTAPI *PGD_ENABLEDIRECTDRAW)(DHPDEV, PDD_CALLBACKS, PDD_SURFACECALLBACKS,
PDD_PALETTECALLBACKS);
 -typedef VOID (NTAPI *PGD_DISABLEDIRECTDRAW)(DHPDEV);
 -typedef LONG (NTAPI *PGD_QUERYSPOOLTYPE)(DHPDEV, LPWSTR);
 -typedef BOOL (NTAPI *PGD_GRADIENTFILL)(SURFOBJ*, CLIPOBJ*, XLATEOBJ*, TRIVERTEX*, ULONG,
PVOID, ULONG, RECTL*, POINTL*, ULONG);
 -typedef VOID (NTAPI *PGD_SYNCHRONIZESURFACE)(SURFOBJ*, RECTL *, FLONG);
 -
 -//
 -// Most of these are definded in ddk/winddi.h
 -//
 -typedef struct _DRIVER_FUNCTIONS
 -{
 -    PGD_ENABLEPDEV                 EnablePDEV;
 -    PGD_COMPLETEPDEV               CompletePDEV;
 -    PGD_DISABLEPDEV                DisablePDEV;
 -    PGD_ENABLESURFACE              EnableSurface;
 -    PGD_DISABLESURFACE             DisableSurface;
 -    PGD_ASSERTMODE                 AssertMode;
 -    PGD_OFFSET                     Offset;
 -    PGD_RESETPDEV                  ResetPDEV;
 -    PGD_DISABLEDRIVER              DisableDriver;
 -    PVOID                          Unknown1;
 -    PGD_CREATEDEVICEBITMAP         CreateDeviceBitmap;
 -    PGD_DELETEDEVICEBITMAP         DeleteDeviceBitmap;
 -    PGD_REALIZEBRUSH               RealizeBrush;
 -    PGD_DITHERCOLOR                DitherColor;
 -    PGD_STROKEPATH                 StrokePath;
 -    PGD_FILLPATH                   FillPath;
 -    PGD_STROKEANDFILLPATH          StrokeAndFillPath;
 -    PGD_PAINT                      Paint;
 -    PGD_BITBLT                     BitBlt;
 -    PGD_COPYBITS                   CopyBits;
 -    PGD_STRETCHBLT                 StretchBlt;
 -    PVOID                          Unknown2;
 -    PGD_SETPALETTE                 SetPalette;
 -    PGD_TEXTOUT                    TextOut;
 -    PGD_ESCAPE                     Escape;
 -    PGD_DRAWESCAPE                 DrawEscape;
 -    PGD_QUERYFONT                  QueryFont;
 -    PGD_QUERYFONTTREE              QueryFontTree;
 -    PGD_QUERYFONTDATA              QueryFontData;
 -    PGD_SETPOINTERSHAPE            SetPointerShape;
 -    PGD_MOVEPOINTER                MovePointer;
 -    PGD_LINETO                     LineTo;
 -    PGD_SENDPAGE                   SendPage;
 -    PGD_STARTPAGE                  StartPage;
 -    PGD_ENDDOC                     EndDoc;
 -    PGD_STARTDOC                   StartDoc;
 -    PVOID                          Unknown3;
 -    PGD_GETGLYPHMODE               GetGlyphMode;
 -    PGD_SYNCHRONIZE                Synchronize;
 -    PVOID                          Unknown4;
 -    PGD_SAVESCREENBITS             SaveScreenBits;
 -    PGD_GETMODES                   GetModes;
 -    PGD_FREE                       Free;
 -    PGD_DESTROYFONT                DestroyFont;
 -    PGD_QUERYFONTCAPS              QueryFontCaps;
 -    PGD_LOADFONTFILE               LoadFontFile;
 -    PGD_UNLOADFONTFILE             UnloadFontFile;
 -    PGD_FONTMANAGEMENT             FontManagement;
 -    PGD_QUERYTRUETYPETABLE         QueryTrueTypeTable;
 -    PGD_QUERYTRUETYPEOUTLINE       QueryTrueTypeOutline;
 -    PGD_GETTRUETYPEFILE            GetTrueTypeFile;
 -    PGD_QUERYFONTFILE              QueryFontFile;
 -    PFN_DrvMovePanning             MovePanning;
 -    PGD_QUERYADVANCEWIDTHS         QueryAdvanceWidths;
 -    PGD_SETPIXELFORMAT             SetPixelFormat;
 -    PGD_DESCRIBEPIXELFORMAT        DescribePixelFormat;
 -    PGD_SWAPBUFFERS                SwapBuffers;
 -    PGD_STARTBANDING               StartBanding;
 -    PGD_NEXTBAND                   NextBand;
 -    PGD_GETDIRECTDRAWINFO          GetDirectDrawInfo;
 -    PGD_ENABLEDIRECTDRAW           EnableDirectDraw;
 -    PGD_DISABLEDIRECTDRAW          DisableDirectDraw;
 -    PGD_QUERYSPOOLTYPE             QuerySpoolType;
 -    PVOID                          Unknown5;
 -    PFN_DrvIcmCreateColorTransform IcmCreateColorTransform;
 -    PFN_DrvIcmDeleteColorTransform IcmDeleteColorTransform;
 -    PFN_DrvIcmCheckBitmapBits      IcmCheckBitmapBits;
 -    PFN_DrvIcmSetDeviceGammaRamp   IcmSetDeviceGammaRamp;
 -    PGD_GRADIENTFILL               GradientFill;
 -    PGD_STRETCHBLTROP              StretchBltROP;
 -    PFN_DrvPlgBlt                  PlgBlt;
 -    PGD_ALPHABLEND                 AlphaBlend;
 -    PVOID                          SynthesizeFont;
 -    PVOID                          GetSynthesizedFontFiles;
 -    PGD_TRANSPARENTBLT             TransparentBlt;
 -    PFN_DrvQueryPerBandInfo        QueryPerBandInfo;
 -    PFN_DrvQueryDeviceSupport      QueryDeviceSupport;
 -    PVOID                          Reserved1;
 -    PVOID                          Reserved2;
 -    PVOID                          Reserved3;
 -    PVOID                          Reserved4;
 -    PVOID                          Reserved5;
 -    PVOID                          Reserved6;
 -    PVOID                          Reserved7;
 -    PVOID                          Reserved8;
 -    PFN_DrvDeriveSurface           DeriveSurface;
 -    PFN_DrvQueryGlyphAttrs         QueryGlyphAttrs;
 -    PFN_DrvNotify                  Notify;
 -    PGD_SYNCHRONIZESURFACE         SynchronizeSurface;
 -    PFN_DrvResetDevice             ResetDevice;
 -    PVOID                          Reserved9;
 -    PVOID                          Reserved10;
 -    PVOID                          Reserved11; /* 92 */
 -
 -    /* ReactOS specify */
 -    PGD_ENABLEDRIVER               EnableDriver; //ReactOS Extra
 -} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
 -
 -/* FIXME move to more proper place, Vista syscall */
 -DWORD
 -STDCALL
 -NtGdiConfigureOPMProtectedOutput(DWORD x1, DWORD x2, DWORD x3, DWORD x4);
 -
 -
 -#endif
 +/*
 + * COPYRIGHT:       See COPYING in the top level directory
 + * PROJECT:         ReactOS Win32 Graphical Subsystem (WIN32K)
 + * FILE:            include/win32k/ntgdityp.h
 + * PURPOSE:         Win32 Shared GDI Types for NtGdi*
 + * PROGRAMMER:      Alex Ionescu (alex(a)relsoft.net)
 + */
 +
 +/* INCLUDES ******************************************************************/
 +
 +#ifndef _NTGDITYP_
 +#define _NTGDITYP_
 +
 +/* ENUMERATIONS **************************************************************/
 +
 +typedef enum _ARCTYPE
 +{
 +    GdiTypeArc,
 +    GdiTypeArcTo,
 +    GdiTypeChord,
 +    GdiTypePie,
 +} ARCTYPE, *PARCTYPE;
 +
 +typedef enum _PALFUNCTYPE
 +{
 +    GdiPalAnimate,
 +    GdiPalSetEntries,
 +    GdiPalGetEntries,
 +    GdiPalGetSystemEntries,
 +    GdiPalSetColorTable,
 +    GdiPalGetColorTable,
 +} PALFUNCTYPE, *PPALFUNCTYPE;
 +
 +typedef enum _POLYFUNCTYPE
 +{
 +    GdiPolyPolygon = 1,
 +    GdiPolyPolyLine,
 +    GdiPolyBezier,
 +    GdiPolyLineTo,
 +    GdiPolyBezierTo,
 +    GdiPolyPolyRgn,
 +} POLYFUNCTYPE, *PPOLYFUNCTYPE;
 +
 +typedef enum _GETDCDWORD
 +{
 +    GdiGetJournal,
 +    GdiGetRelAbs,
 +    GdiGetBreakExtra,
 +    GdiGerCharBreak,
 +    GdiGetArcDirection,
 +    GdiGetEMFRestorDc,
 +    GdiGetFontLanguageInfo,
 +    GdiGetIsMemDc,
 +    GdiGetMapMode,
 +    GdiGetTextCharExtra,
 +} GETDCDWORD, *PGETDCDWORD;
 +
 +typedef enum _GETSETDCDWORD
 +{
 +    GdiGetSetCopyCount = 2,
 +    GdiGetSetTextAlign,
 +    GdiGetSetRelAbs,
 +    GdiGetSetTextCharExtra,
 +    GdiGetSetSelectFont,
 +    GdiGetSetMapperFlagsInternal,
 +    GdiGetSetMapMode,
 +    GdiGetSetArcDirection,
 +} GETSETDCDWORD, *PGETSETDCDWORD;
 +
 +typedef enum _GETDCPOINT
 +{
 +    GdiGetViewPortExt = 1,
 +    GdiGetWindowExt,
 +    GdiGetViewPortOrg,
 +    GdiGetWindowOrg,
 +    GdiGetAspectRatioFilter,
 +    GdiGetDCOrg = 6,
 +} GETDCPOINT, *PGETDCPOINT;
 +
 +
 +typedef enum _GDIBATCHCMD
 +{
 +    GdiBCPatBlt,
 +    GdiBCPolyPatBlt,
 +    GdiBCTextOut,
 +    GdiBCExtTextOut,
 +    GdiBCSetBrushOrg,
 +    GdiBCExtSelClipRgn,
 +    GdiBCSelObj,
 +    GdiBCDelObj,
 +    GdiBCDelRgn,
 +} GDIBATCHCMD, *PGDIBATCHCMD;
 +
 +typedef enum _TRANSFORMTYPE
 +{
 +    GdiDpToLp,
 +    GdiLpToDp,
 +} TRANSFORMTYPE, *PTRANSFORMTYPE;
 +
 +typedef enum GDIObjType
 +{
 +    GDIObjType_DEF_TYPE = 0x00,
 +    GDIObjType_DC_TYPE = 0x01,
 +    GDIObjType_UNUSED1_TYPE = 0x02,
 +    GDIObjType_UNUSED2_TYPE = 0x03,
 +    GDIObjType_RGN_TYPE = 0x04,
 +    GDIObjType_SURF_TYPE = 0x05,
 +    GDIObjType_CLIENTOBJ_TYPE = 0x06,
 +    GDIObjType_PATH_TYPE = 0x07,
 +    GDIObjType_PAL_TYPE = 0x08,
 +    GDIObjType_ICMLCS_TYPE = 0x09,
 +    GDIObjType_LFONT_TYPE = 0x0a,
 +    GDIObjType_RFONT_TYPE = 0x0b,
 +    GDIObjType_PFE_TYPE = 0x0c,
 +    GDIObjType_PFT_TYPE = 0x0d,
 +    GDIObjType_ICMCXF_TYPE = 0x0e,
 +    GDIObjType_SPRITE_TYPE = 0x0f,
 +    GDIObjType_BRUSH_TYPE = 0x10,
 +    GDIObjType_UMPD_TYPE = 0x11,
 +    GDIObjType_UNUSED4_TYPE = 0x12,
 +    GDIObjType_SPACE_TYPE = 0x13,
 +    GDIObjType_UNUSED5_TYPE = 0x14,
 +    GDIObjType_META_TYPE = 0x15,
 +    GDIObjType_EFSTATE_TYPE = 0x16,
 +    GDIObjType_BMFD_TYPE = 0x17,
 +    GDIObjType_VTFD_TYPE = 0x18,
 +    GDIObjType_TTFD_TYPE = 0x19,
 +    GDIObjType_RC_TYPE = 0x1a,
 +    GDIObjType_TEMP_TYPE = 0x1b,
 +    GDIObjType_DRVOBJ_TYPE = 0x1c,
 +    GDIObjType_DCIOBJ_TYPE = 0x1d,
 +    GDIObjType_SPOOL_TYPE = 0x1e,
 +    GDIObjType_MAX_TYPE = 0x1e,
 +    GDIObjTypeTotal = 0x1f,
 +} GDIOBJTYPE, *PGDIOBJTYPE;
 +
 +typedef enum GDILoObjType
 +{
 +    GDILoObjType_LO_BRUSH_TYPE = 0x100000,
 +    GDILoObjType_LO_DC_TYPE = 0x10000,
 +    GDILoObjType_LO_BITMAP_TYPE = 0x50000,
 +    GDILoObjType_LO_PALETTE_TYPE = 0x80000,
 +    GDILoObjType_LO_FONT_TYPE = 0xa0000,
 +    GDILoObjType_LO_REGION_TYPE = 0x40000,
 +    GDILoObjType_LO_ICMLCS_TYPE = 0x90000,
 +    GDILoObjType_LO_CLIENTOBJ_TYPE = 0x60000,
 +    GDILoObjType_LO_ALTDC_TYPE = 0x210000,
 +    GDILoObjType_LO_PEN_TYPE = 0x300000,
 +    GDILoObjType_LO_EXTPEN_TYPE = 0x500000,
 +    GDILoObjType_LO_DIBSECTION_TYPE = 0x250000,
 +    GDILoObjType_LO_METAFILE16_TYPE = 0x260000,
 +    GDILoObjType_LO_METAFILE_TYPE = 0x460000,
 +    GDILoObjType_LO_METADC16_TYPE = 0x660000
 +} GDILOOBJTYPE, *PGDILOOBJTYPE;
 +
 +#define GdiWorldSpaceToPageSpace    0x203
 +
 +/* FIXME: Unknown */
 +typedef DWORD FULLSCREENCONTROL;
 +typedef DWORD LFTYPE;
 +
 +/* Public LAST_STOCK = 19, plus 2 more internal entries */
 +#define NB_STOCK_OBJECTS 22
 +
 +/* extra stock object: default 1x1 bitmap for memory DCs */
 +#define DEFAULT_BITMAP (21)
 +
 +
 +/* DEFINES *******************************************************************/
 +
 +#define GDIBATCHBUFSIZE 0x136*4
 +#define GDI_BATCH_LIMIT 20
 +
 +// NtGdiGetCharWidthW Flags
 +#define GCW_WIN32   0x0001
 +#define GCW_NOFLOAT 0x0002
 +#define GCW_INDICES 0x0008
 +
 +// NtGdiGetCharABCWidthW Flags
 +#define GCABCW_NOFLOAT 0x0001
 +#define GCABCW_INDICES 0x0002
 +
 +/* CAPS1 support */
 +//#define C1_TRANSPARENT    0x0001
 +#define TC_TT_ABLE        0x0002
 +#define C1_TT_CR_ANY      0x0004
 +#define C1_EMF_COMPLIANT  0x0008
 +#define C1_DIBENGINE      0x0010
 +#define C1_GAMMA_RAMP     0x0040
 +#define C1_REINIT_ABLE    0x0080
 +#define C1_GLYPH_INDEX    0x0100
 +#define C1_BIT_PACKED     0x0200
 +#define C1_BYTE_PACKED    0x0400
 +#define C1_COLORCURSOR    0x0800
 +#define C1_CMYK_ABLE      0x1000
 +#define C1_SLOW_CARD      0x2000
 +
 +/* TYPES *********************************************************************/
 +
 +typedef PVOID KERNEL_PVOID;
 +typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;
 +typedef LONG FIX;
 +
 +typedef struct _CHWIDTHINFO
 +{
 +   LONG    lMaxNegA;
 +   LONG    lMaxNegC;
 +   LONG    lMinWidthD;
 +} CHWIDTHINFO, *PCHWIDTHINFO;
 +
 +typedef struct _UNIVERSAL_FONT_ID
 +{
 +    DWORD  dwUfid[2];
 +} UNIVERSAL_FONT_ID, *PUNIVERSAL_FONT_ID;
 +
 +typedef struct _REALIZATION_INFO // Based on LOCALESIGNATURE
 +{
 +    DWORD  dwCsbDefault[2];
 +    DWORD  dwCsbSupported0;
 +} REALIZATION_INFO, *PREALIZATION_INFO;
 +
 +typedef struct _WIDTHDATA
 +{
 +    USHORT      sOverhang;
 +    USHORT      sHeight;
 +    USHORT      sCharInc;
 +    USHORT      sBreak;
 +    BYTE        jFirst;
 +    BYTE        jLast;
 +    BYTE        jBreak;
 +    BYTE        jDefault;
 +    USHORT      sDBCSInc;
 +    USHORT      sDefaultInc;
 +} WIDTHDATA, *PWIDTHDATA;
 +
 +typedef struct _DEVCAPS // Very similar to GDIINFO
 +{
 +    ULONG ulVersion;
 +    ULONG ulTechnology;
 +    ULONG ulHorzSizeM;
 +    ULONG ulVertSizeM;
 +    ULONG ulHorzSize;
 +    ULONG ulVertSize;
 +    ULONG ulHorzRes;
 +    ULONG ulVertRes;
 +    ULONG ulBitsPixel;
 +    ULONG ulPlanes;
 +    ULONG ulNumPens;
 +    ULONG ulNumFonts;
 +    ULONG ulNumColors;
 +    ULONG ulRasterCaps;
 +    ULONG ulAspectX;
 +    ULONG ulAspectY;
 +    ULONG ulAspectXY;
 +    ULONG ulLogPixelsX;
 +    ULONG ulLogPixelsY;
 +    ULONG ulSizePalette;
 +    ULONG ulColorRes;
 +    ULONG ulPhysicalWidth;
 +    ULONG ulPhysicalHeight;
 +    ULONG ulPhysicalOffsetX;
 +    ULONG ulPhysicalOffsetY;
 +    ULONG ulTextCaps;
 +    ULONG ulVRefresh;
 +    ULONG ulDesktopHorzRes;
 +    ULONG ulDesktopVertRes;
 +    ULONG ulBltAlignment;
 +    ULONG ulReserved[4];
 +    ULONG ulShadeBlend;
 +    ULONG ulColorMgmtCaps;
 +} DEVCAPS, *PDEVCAPS;
 +
 +/* Gdi Handle Cache Types and Structures */
 +#define GDI_CACHED_HADNLE_TYPES 4
 +#define CACHE_BRUSH_ENTRIES  10
 +#define CACHE_PEN_ENTRIES     8
 +#define CACHE_REGION_ENTRIES  8
 +#define CACHE_LFONT_ENTRIES   1
 +
 +typedef enum _HANDLECACHETYPE
 +{
 +    hctBrushHandle,
 +    hctPenHandle,
 +    hctRegionHandle,
 +    hctLFontHandle
 +} HANDLECACHETYPE,*PHANDLECACHETYPE;
 +
 +typedef struct _GDIHANDLECACHE
 +{
 +    ULONG           ulLock;
 +    ULONG           ulNumHandles[GDI_CACHED_HADNLE_TYPES];
 +    HANDLE
Handle[CACHE_BRUSH_ENTRIES+CACHE_PEN_ENTRIES+CACHE_REGION_ENTRIES+CACHE_LFONT_ENTRIES];
 +} GDIHANDLECACHE, *PGDIHANDLECACHE;
 +
 +/* Font Structures */
 +typedef struct _TMDIFF
 +{
 +    ULONG cjotma;
 +    CHAR chFirst;
 +    CHAR chLast;
 +    CHAR ChDefault;
 +    CHAR ChBreak;
 +} TMDIFF, *PTMDIFF;
 +
 +typedef struct _TMW_INTERNAL
 +{
 +    TEXTMETRICW TextMetric;
 +    TMDIFF Diff;
 +} TMW_INTERNAL, *PTMW_INTERNAL;
 +
 +typedef struct _NTMW_INTERNAL
 +{
 +    TMDIFF tmd;
 +    NEWTEXTMETRICEXW ntmw;
 +} NTMW_INTERNAL, *PNTMW_INTERNAL;
 +
 +typedef struct _ENUMFONTDATAW
 +{
 +    ULONG cbSize;
 +    ULONG ulNtmwiOffset;
 +    DWORD dwFontType;
 +    ENUMLOGFONTEXDVW elfexdv; /* variable size! */
 +    /* NTMW_INTERNAL ntmwi; use ulNtwmOffset */
 +} ENUMFONTDATAW, *PENUMFONTDATAW;
 +
 +/* Number Representation */
 +typedef struct _EFLOAT_S
 +{
 +    LONG lMant;
 +    LONG lExp;
 +} EFLOAT_S;
 +
 +/* XFORM Structures */
 +typedef struct _MATRIX_S
 +{
 +    EFLOAT_S efM11;
 +    EFLOAT_S efM12;
 +    EFLOAT_S efM21;
 +    EFLOAT_S efM22;
 +    EFLOAT_S efDx;
 +    EFLOAT_S efDy;
 +    FIX fxDx;
 +    FIX fxDy;
 +    FLONG flAccel;
 +} MATRIX_S;
 +
 +/* Gdi XForm storage union */
 +typedef union
 +{
 +  FLOAT f;
 +  ULONG l;
 +} gxf_long;
 +
 +typedef struct _CFONT
 +{
 +    struct _CFONT   *pcfNext;
 +    HFONT           hf;
 +    ULONG           cRef;               // Count of all pointers to this CFONT.
 +    FLONG           fl;
 +    LONG            lHeight;            // Precomputed logical height.
 +    HDC             hdc;                // HDC of realization.  0 for display.
 +    EFLOAT_S        efM11;              // efM11 of WtoD of DC of realization
 +    EFLOAT_S        efM22;              // efM22 of WtoD of DC of realization
 +    EFLOAT_S        efDtoWBaseline;     // Precomputed back transform.  (FXtoL)
 +    EFLOAT_S        efDtoWAscent;       // Precomputed back transform.  (FXtoL)
 +    WIDTHDATA       wd;
 +    FLONG           flInfo;
 +    USHORT          sWidth[256];        // Widths in pels.
 +    ULONG           ulAveWidth;         // bogus average used by USER
 +    TMW_INTERNAL    tmw;                // cached metrics
 +    LOCALESIGNATURE lsLocSig;           // font signature information
 +} CFONT, *PCFONT;
 +
 +//
 +// GDI Batch structures.
 +//
 +typedef struct _GDIBATCHHDR
 +{
 +  SHORT Size;
 +  SHORT Cmd;
 +} GDIBATCHHDR, *PGDIBATCHHDR;
 +
 +typedef struct _GDIBSPATBLT
 +{
 +  GDIBATCHHDR gbHdr;
 +  int nXLeft;
 +  int nYLeft;
 +  int nWidth;
 +  int nHeight;
 +  HANDLE hbrush;
 +  DWORD dwRop;
 +  COLORREF crForegroundClr;
 +  COLORREF crBackgroundClr;
 +  COLORREF crBrushClr;
 +  INT IcmBrushColor;
 +  POINTL ptlViewportOrg;
 +  ULONG ulForegroundClr;
 +  ULONG ulBackgroundClr;
 +  ULONG ulBrushClr;
 +} GDIBSPATBLT, *PGDIBSPATBLT;
 +
 +#ifndef _NTUSRTYP_
 +typedef struct _PATRECT
 +{
 +  RECT r;
 +  HBRUSH hBrush;
 +} PATRECT, * PPATRECT;
 +
 +typedef struct _W32CLIENTINFO
 +{
 +    ULONG CI_flags;
 +    ULONG cSpins;
 +    ULONG ulWindowsVersion;
 +    ULONG ulAppCompatFlags;
 +    ULONG ulAppCompatFlags2;
 +    ULONG W32ClientInfo[57];
 +} W32CLIENTINFO, *PW32CLIENTINFO;
 +#endif
 +
 +typedef struct _GDIBSPPATBLT
 +{
 +  GDIBATCHHDR gbHdr;
 +  DWORD rop4;
 +  DWORD Mode;
 +  DWORD Count;
 +  COLORREF crForegroundClr;
 +  COLORREF crBackgroundClr;
 +  COLORREF crBrushClr;
 +  ULONG ulForegroundClr;
 +  ULONG ulBackgroundClr;
 +  ULONG ulBrushClr;
 +  POINTL ptlViewportOrg;
 +  PATRECT pRect[1]; // POLYPATBLT
 +} GDIBSPPATBLT, *PGDIBSPPATBLT;
 +
 +typedef struct _GDIBSTEXTOUT
 +{
 +  GDIBATCHHDR gbHdr;
 +  COLORREF crForegroundClr;
 +  COLORREF crBackgroundClr;
 +  LONG lmBkMode;
 +  ULONG ulForegroundClr;
 +  ULONG ulBackgroundClr;
 +  int x;
 +  int y;
 +  UINT Options;
 +  RECT Rect;
 +  DWORD iCS_CP;
 +  UINT cbCount;
 +  UINT Size;
 +  HANDLE hlfntNew;
 +  FLONG flTextAlign;
 +  POINTL ptlViewportOrg;
 +  WCHAR String[2];
 +} GDIBSTEXTOUT, *PGDIBSTEXTOUT;
 +
 +typedef struct _GDIBSEXTTEXTOUT
 +{
 +  GDIBATCHHDR gbHdr;
 +  UINT Count;
 +  UINT Options;
 +  RECT Rect;
 +  POINTL ptlViewportOrg;
 +  ULONG ulBackgroundClr;
 +} GDIBSEXTTEXTOUT, *PGDIBSEXTTEXTOUT;
 +
 +typedef struct _GDIBSSETBRHORG
 +{
 +  GDIBATCHHDR gbHdr;
 +  POINTL ptlBrushOrigin;
 +} GDIBSSETBRHORG, *PGDIBSSETBRHORG;
 +
 +typedef struct _GDIBSEXTSELCLPRGN
 +{
 +  GDIBATCHHDR gbHdr;
 +  int fnMode;
 +  LONG right;
 +  LONG bottom;
 +  LONG left;
 +  LONG top;
 +} GDIBSEXTSELCLPRGN, *PGDIBSEXTSELCLPRGN;
 +//
 +//   Use with GdiBCSelObj, GdiBCDelObj and GdiBCDelRgn.
 +typedef struct _GDIBSOBJECT
 +{
 +  GDIBATCHHDR gbHdr;
 +  HGDIOBJ hgdiobj;
 +} GDIBSOBJECT, *PGDIBSOBJECT;
 +
 +//
 +//  Driver Functions
 +//
 +typedef BOOL (NTAPI *PGD_ENABLEDRIVER)(ULONG, ULONG, PDRVENABLEDATA);
 +typedef DHPDEV (NTAPI *PGD_ENABLEPDEV)(DEVMODEW  *, LPWSTR, ULONG, HSURF *, ULONG, ULONG
*, ULONG, DEVINFO  *, LPWSTR, LPWSTR, HANDLE);
 +typedef VOID (NTAPI *PGD_COMPLETEPDEV)(DHPDEV, HDEV);
 +typedef VOID (NTAPI *PGD_DISABLEPDEV)(DHPDEV);
 +typedef HSURF (NTAPI *PGD_ENABLESURFACE)(DHPDEV);
 +typedef VOID (NTAPI *PGD_DISABLESURFACE)(DHPDEV);
 +typedef BOOL (NTAPI *PGD_ASSERTMODE)(DHPDEV, BOOL);
 +typedef BOOL (NTAPI *PGD_OFFSET)(SURFOBJ*, LONG, LONG, FLONG);
 +typedef BOOL (NTAPI *PGD_RESETPDEV)(DHPDEV, DHPDEV);
 +typedef VOID (NTAPI *PGD_DISABLEDRIVER)(VOID);
 +typedef HBITMAP (NTAPI *PGD_CREATEDEVICEBITMAP)(DHPDEV, SIZEL, ULONG);
 +typedef VOID (NTAPI *PGD_DELETEDEVICEBITMAP)(DHSURF);
 +typedef BOOL (NTAPI *PGD_ALPHABLEND)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*,
RECTL*, BLENDOBJ*);
 +typedef BOOL (NTAPI *PGD_REALIZEBRUSH)(BRUSHOBJ*, SURFOBJ*, SURFOBJ*, SURFOBJ*,
XLATEOBJ*, ULONG);
 +typedef ULONG (NTAPI *PGD_DITHERCOLOR)(DHPDEV, ULONG, ULONG, PULONG);
 +typedef BOOL (NTAPI *PGD_STROKEPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*, BRUSHOBJ*,
POINTL*, PLINEATTRS, MIX);
 +typedef BOOL (NTAPI *PGD_FILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*,
MIX, ULONG);
 +typedef BOOL (NTAPI *PGD_STROKEANDFILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*,
BRUSHOBJ*, PLINEATTRS, BRUSHOBJ*, POINTL*, MIX, ULONG);
 +typedef BOOL (NTAPI *PGD_PAINT)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*, MIX);
 +typedef BOOL (NTAPI *PGD_BITBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
RECTL*, POINTL*, POINTL*, BRUSHOBJ*, POINTL*, ROP4);
 +typedef BOOL (NTAPI *PGD_TRANSPARENTBLT)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
RECTL*, RECTL*, ULONG, ULONG);
 +typedef BOOL (NTAPI *PGD_COPYBITS)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*,
POINTL*);
 +typedef BOOL (NTAPI *PGD_STRETCHBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
COLORADJUSTMENT*, POINTL*, RECTL*, RECTL*, POINTL*, ULONG);
 +typedef BOOL (NTAPI *PGD_STRETCHBLTROP)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*,
XLATEOBJ*, COLORADJUSTMENT*, POINTL*, RECTL*, RECTL*, POINTL*, ULONG, BRUSHOBJ*, DWORD);
 +typedef BOOL (NTAPI *PGD_SETPALETTE)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG);
 +typedef BOOL (NTAPI *PGD_TEXTOUT)(SURFOBJ*, STROBJ*, FONTOBJ*, CLIPOBJ*, RECTL*, RECTL*,
BRUSHOBJ*, BRUSHOBJ*, POINTL*, MIX);
 +typedef ULONG (NTAPI *PGD_ESCAPE)(SURFOBJ*, ULONG, ULONG, PVOID *, ULONG, PVOID *);
 +typedef ULONG (NTAPI *PGD_DRAWESCAPE)(SURFOBJ*, ULONG, CLIPOBJ*, RECTL*, ULONG, PVOID
*);
 +typedef PIFIMETRICS (NTAPI *PGD_QUERYFONT)(DHPDEV, ULONG, ULONG, PULONG);
 +typedef PVOID (NTAPI *PGD_QUERYFONTTREE)(DHPDEV, ULONG, ULONG, ULONG, PULONG);
 +typedef LONG (NTAPI *PGD_QUERYFONTDATA)(DHPDEV, FONTOBJ*, ULONG, HGLYPH, GLYPHDATA*,
PVOID, ULONG);
 +typedef ULONG (NTAPI *PGD_SETPOINTERSHAPE)(SURFOBJ*, SURFOBJ*, SURFOBJ*, XLATEOBJ*,
LONG, LONG, LONG, LONG, RECTL*, ULONG);
 +typedef VOID (NTAPI *PGD_MOVEPOINTER)(SURFOBJ*, LONG, LONG, RECTL*);
 +typedef BOOL (NTAPI *PGD_LINETO)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, LONG, LONG, LONG, LONG,
RECTL*, MIX);
 +typedef BOOL (NTAPI *PGD_SENDPAGE)(SURFOBJ*);
 +typedef BOOL (NTAPI *PGD_STARTPAGE)(SURFOBJ*);
 +typedef BOOL (NTAPI *PGD_ENDDOC)(SURFOBJ*, ULONG);
 +typedef BOOL (NTAPI *PGD_STARTDOC)(SURFOBJ*, PWSTR, DWORD);
 +typedef ULONG (NTAPI *PGD_GETGLYPHMODE)(DHPDEV, FONTOBJ*);
 +typedef VOID (NTAPI *PGD_SYNCHRONIZE)(DHPDEV, RECTL*);
 +typedef ULONG (NTAPI *PGD_SAVESCREENBITS)(SURFOBJ*, ULONG, ULONG, RECTL*);
 +typedef ULONG (NTAPI *PGD_GETMODES)(HANDLE, ULONG, PDEVMODEW);
 +typedef VOID (NTAPI *PGD_FREE)(PVOID, ULONG);
 +typedef VOID (NTAPI *PGD_DESTROYFONT)(FONTOBJ*);
 +typedef LONG (NTAPI *PGD_QUERYFONTCAPS)(ULONG, PULONG);
 +typedef ULONG (NTAPI *PGD_LOADFONTFILE)(ULONG, PVOID, ULONG, ULONG);
 +typedef BOOL (NTAPI *PGD_UNLOADFONTFILE)(ULONG);
 +typedef ULONG (NTAPI *PGD_FONTMANAGEMENT)(SURFOBJ*, FONTOBJ*, ULONG, ULONG, PVOID,
ULONG, PVOID);
 +typedef LONG (NTAPI *PGD_QUERYTRUETYPETABLE)(ULONG, ULONG, ULONG, PTRDIFF, ULONG,
PBYTE);
 +typedef LONG (NTAPI *PGD_QUERYTRUETYPEOUTLINE)(DHPDEV, FONTOBJ*, HGLYPH, BOOL,
GLYPHDATA*, ULONG, TTPOLYGONHEADER*);
 +typedef PVOID (NTAPI *PGD_GETTRUETYPEFILE)(ULONG, PULONG);
 +typedef LONG (NTAPI *PGD_QUERYFONTFILE)(ULONG, ULONG, ULONG, PULONG);
 +typedef BOOL (NTAPI *PGD_QUERYADVANCEWIDTHS)(DHPDEV, FONTOBJ*, ULONG, HGLYPH *, PVOID *,
ULONG);
 +typedef BOOL (NTAPI *PGD_SETPIXELFORMAT)(SURFOBJ*, LONG, ULONG);
 +typedef LONG (NTAPI *PGD_DESCRIBEPIXELFORMAT)(DHPDEV, LONG, ULONG,
PPIXELFORMATDESCRIPTOR);
 +typedef BOOL (NTAPI *PGD_SWAPBUFFERS)(SURFOBJ*, PWNDOBJ);
 +typedef BOOL (NTAPI *PGD_STARTBANDING)(SURFOBJ*, POINTL*);
 +typedef BOOL (NTAPI *PGD_NEXTBAND)(SURFOBJ*, POINTL*);
 +typedef BOOL (NTAPI *PGD_GETDIRECTDRAWINFO)(DHPDEV, PDD_HALINFO, PDWORD, VIDEOMEMORY*,
PDWORD, PDWORD);
 +typedef BOOL (NTAPI *PGD_ENABLEDIRECTDRAW)(DHPDEV, PDD_CALLBACKS, PDD_SURFACECALLBACKS,
PDD_PALETTECALLBACKS);
 +typedef VOID (NTAPI *PGD_DISABLEDIRECTDRAW)(DHPDEV);
 +typedef LONG (NTAPI *PGD_QUERYSPOOLTYPE)(DHPDEV, LPWSTR);
 +typedef BOOL (NTAPI *PGD_GRADIENTFILL)(SURFOBJ*, CLIPOBJ*, XLATEOBJ*, TRIVERTEX*, ULONG,
PVOID, ULONG, RECTL*, POINTL*, ULONG);
 +typedef VOID (NTAPI *PGD_SYNCHRONIZESURFACE)(SURFOBJ*, RECTL *, FLONG);
 +
 +//
 +// Most of these are definded in ddk/winddi.h
 +//
 +typedef struct _DRIVER_FUNCTIONS
 +{
 +    PGD_ENABLEPDEV                 EnablePDEV;
 +    PGD_COMPLETEPDEV               CompletePDEV;
 +    PGD_DISABLEPDEV                DisablePDEV;
 +    PGD_ENABLESURFACE              EnableSurface;
 +    PGD_DISABLESURFACE             DisableSurface;
 +    PGD_ASSERTMODE                 AssertMode;
 +    PGD_OFFSET                     Offset;
 +    PGD_RESETPDEV                  ResetPDEV;
 +    PGD_DISABLEDRIVER              DisableDriver;
 +    PVOID                          Unknown1;
 +    PGD_CREATEDEVICEBITMAP         CreateDeviceBitmap;
 +    PGD_DELETEDEVICEBITMAP         DeleteDeviceBitmap;
 +    PGD_REALIZEBRUSH               RealizeBrush;
 +    PGD_DITHERCOLOR                DitherColor;
 +    PGD_STROKEPATH                 StrokePath;
 +    PGD_FILLPATH                   FillPath;
 +    PGD_STROKEANDFILLPATH          StrokeAndFillPath;
 +    PGD_PAINT                      Paint;
 +    PGD_BITBLT                     BitBlt;
 +    PGD_COPYBITS                   CopyBits;
 +    PGD_STRETCHBLT                 StretchBlt;
 +    PVOID                          Unknown2;
 +    PGD_SETPALETTE                 SetPalette;
 +    PGD_TEXTOUT                    TextOut;
 +    PGD_ESCAPE                     Escape;
 +    PGD_DRAWESCAPE                 DrawEscape;
 +    PGD_QUERYFONT                  QueryFont;
 +    PGD_QUERYFONTTREE              QueryFontTree;
 +    PGD_QUERYFONTDATA              QueryFontData;
 +    PGD_SETPOINTERSHAPE            SetPointerShape;
 +    PGD_MOVEPOINTER                MovePointer;
 +    PGD_LINETO                     LineTo;
 +    PGD_SENDPAGE                   SendPage;
 +    PGD_STARTPAGE                  StartPage;
 +    PGD_ENDDOC                     EndDoc;
 +    PGD_STARTDOC                   StartDoc;
 +    PVOID                          Unknown3;
 +    PGD_GETGLYPHMODE               GetGlyphMode;
 +    PGD_SYNCHRONIZE                Synchronize;
 +    PVOID                          Unknown4;
 +    PGD_SAVESCREENBITS             SaveScreenBits;
 +    PGD_GETMODES                   GetModes;
 +    PGD_FREE                       Free;
 +    PGD_DESTROYFONT                DestroyFont;
 +    PGD_QUERYFONTCAPS              QueryFontCaps;
 +    PGD_LOADFONTFILE               LoadFontFile;
 +    PGD_UNLOADFONTFILE             UnloadFontFile;
 +    PGD_FONTMANAGEMENT             FontManagement;
 +    PGD_QUERYTRUETYPETABLE         QueryTrueTypeTable;
 +    PGD_QUERYTRUETYPEOUTLINE       QueryTrueTypeOutline;
 +    PGD_GETTRUETYPEFILE            GetTrueTypeFile;
 +    PGD_QUERYFONTFILE              QueryFontFile;
 +    PFN_DrvMovePanning             MovePanning;
 +    PGD_QUERYADVANCEWIDTHS         QueryAdvanceWidths;
 +    PGD_SETPIXELFORMAT             SetPixelFormat;
 +    PGD_DESCRIBEPIXELFORMAT        DescribePixelFormat;
 +    PGD_SWAPBUFFERS                SwapBuffers;
 +    PGD_STARTBANDING               StartBanding;
 +    PGD_NEXTBAND                   NextBand;
 +    PGD_GETDIRECTDRAWINFO          GetDirectDrawInfo;
 +    PGD_ENABLEDIRECTDRAW           EnableDirectDraw;
 +    PGD_DISABLEDIRECTDRAW          DisableDirectDraw;
 +    PGD_QUERYSPOOLTYPE             QuerySpoolType;
 +    PVOID                          Unknown5;
 +    PFN_DrvIcmCreateColorTransform IcmCreateColorTransform;
 +    PFN_DrvIcmDeleteColorTransform IcmDeleteColorTransform;
 +    PFN_DrvIcmCheckBitmapBits      IcmCheckBitmapBits;
 +    PFN_DrvIcmSetDeviceGammaRamp   IcmSetDeviceGammaRamp;
 +    PGD_GRADIENTFILL               GradientFill;
 +    PGD_STRETCHBLTROP              StretchBltROP;
 +    PFN_DrvPlgBlt                  PlgBlt;
 +    PGD_ALPHABLEND                 AlphaBlend;
 +    PVOID                          SynthesizeFont;
 +    PVOID                          GetSynthesizedFontFiles;
 +    PGD_TRANSPARENTBLT             TransparentBlt;
 +    PFN_DrvQueryPerBandInfo        QueryPerBandInfo;
 +    PFN_DrvQueryDeviceSupport      QueryDeviceSupport;
 +    PVOID                          Reserved1;
 +    PVOID                          Reserved2;
 +    PVOID                          Reserved3;
 +    PVOID                          Reserved4;
 +    PVOID                          Reserved5;
 +    PVOID                          Reserved6;
 +    PVOID                          Reserved7;
 +    PVOID                          Reserved8;
 +    PFN_DrvDeriveSurface           DeriveSurface;
 +    PFN_DrvQueryGlyphAttrs         QueryGlyphAttrs;
 +    PFN_DrvNotify                  Notify;
 +    PGD_SYNCHRONIZESURFACE         SynchronizeSurface;
 +    PFN_DrvResetDevice             ResetDevice;
 +    PVOID                          Reserved9;
 +    PVOID                          Reserved10;
 +    PVOID                          Reserved11; /* 92 */
 +
 +    /* ReactOS specify */
 +    PGD_ENABLEDRIVER               EnableDriver; //ReactOS Extra
 +} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
 +
 +/* FIXME move to more proper place, Vista syscall */
 +DWORD STDCALL NtGdiConfigureOPMProtectedOutput(DWORD x1, DWORD x2, DWORD x3, DWORD x4);
 +DWORD STDCALL NtGdiCreateOPMProtectedOutputs(DWORD x1, DWORD x2, DWORD x3, DWORD x4,
DWORD x5);
 +
 +/* Doc exists in msdn see ReactOS def file which D3DKMT* it is, rember I have not check
if the doc are correct,
 + * it is for the drv, which api it should export.
 + * comucate way
 + * gdi32.dll -- Direcly syscall --> win33k.sys
 + * win33k.sys -- doing direct call to -->dxkrnl.sys (note dxkrnl doing allot work
here)
 + * dxkrnl.sys (note dxkrnl doing allot work here) -- the drv export function -->
graphic drv,
 + * this api should move to more proper place later.
 + */
 +DWORD STDCALL NtGdiDdDDICheckExclusiveOwnership();
 +DWORD STDCALL NtGdiDdDDICheckMonitorPowerState(DWORD x1);
 +DWORD STDCALL NtGdiDdDDICheckOcclusion(DWORD x1);
 +DWORD STDCALL NtGdiDdDDICloseAdapter(DWORD x1);
 +DWORD STDCALL NtGdiDdDDICreateAllocation(DWORD x1);
 +DWORD STDCALL NtGdiDdDDICreateContext(DWORD x1);
 +DWORD STDCALL NtGdiDdDDICreateDCFromMemory(DWORD x1);
 +DWORD STDCALL NtGdiDdDDICreateDevice(DWORD x1);
 +DWORD STDCALL NtGdiDdDDICreateOverlay(DWORD x1);
 +DWORD STDCALL NtGdiDdDDICreateSynchronizationObject(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIDestroyAllocation(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIDestroyContext(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIDestroyDCFromMemory(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIDestroyDevice(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIDestroyOverlay(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIDestroySynchronizationObject(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIEscape(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIFlipOverlay(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIGetContextSchedulingPriority(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIGetDeviceState(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIGetDisplayModeList(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIGetMultisampleMethodList(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIGetPresentHistory(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIGetProcessSchedulingPriorityClass(DWORD x1, DWORD x2);
 +DWORD STDCALL NtGdiDdDDIGetRuntimeData(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIGetScanLine(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIGetSharedPrimaryHandle(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIInvalidateActiveVidPn(DWORD x1);
 +DWORD STDCALL NtGdiDdDDILock(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIOpenAdapterFromDeviceName(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIOpenAdapterFromHdc(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIOpenResource(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIPollDisplayChildren(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIPresent(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIQueryAdapterInfo(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIQueryAllocationResidency(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIQueryResourceInfo(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIQueryStatistics(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIReleaseProcessVidPnSourceOwners(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIRender(DWORD x1);
 +DWORD STDCALL NtGdiDdDDISetAllocationPriority(DWORD x1);
 +DWORD STDCALL NtGdiDdDDISetContextSchedulingPriority(DWORD x1);
 +DWORD STDCALL NtGdiDdDDISetDisplayMode(DWORD x1);
 +DWORD STDCALL NtGdiDdDDISetDisplayPrivateDriverFormat(DWORD x1);
 +DWORD STDCALL NtGdiDdDDISetGammaRamp(DWORD x1);
 +DWORD STDCALL NtGdiDdDDISetProcessSchedulingPriorityClass(DWORD x1, x2);
 +DWORD STDCALL NtGdiDdDDISetQueuedLimit(DWORD x1);
 +DWORD STDCALL NtGdiDdDDISetVidPnSourceOwner(DWORD x1);
 +DWORD STDCALL NtGdiDdDDISharedPrimaryLockNotification(DWORD x1);
 +DWORD STDCALL NtGdiDdDDISharedPrimaryUnLockNotification(DWORD x1);
 +DWORD STDCALL NtGdiDdDDISignalSynchronizationObject(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIUnlock(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIUpdateOverlay(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIWaitForIdle(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIWaitForSynchronizationObject(DWORD x1);
 +DWORD STDCALL NtGdiDdDDIWaitForVerticalBlankEvent(DWORD x1);
 +DWORD STDCALL NtGdiDDCCIGetCapabilitiesString(DWORD x1, DWORD x2, DWORD x3);
 +DWORD STDCALL NtGdiDDCCIGetCapabilitiesStringLength(DWORD x1, DWORD x2);
 +DWORD STDCALL NtGdiDDCCIGetTimingReport(DWORD x1, DWORD x2);
 +DWORD STDCALL NtGdiDDCCIGetVCPFeature(DWORD x1, DWORD x2, DWORD x3, DWORD x4);
 +DWORD STDCALL NtGdiDDCCISaveCurrentSettings(DWORD x1);
 +DWORD STDCALL NtGdiDDCCISetVCPFeature(DWORD x1, DWORD x2, DWORD x3);
 +
 +
 +
 +#endif
 Added: branches/win32k-gdi-dx/subsystems/win32/win32k/ntddraw/d3dkmt.c
 URL:
http://svn.reactos.org/svn/reactos/branches/win32k-gdi-dx/subsystems/win32/…
 ==============================================================================
 --- branches/win32k-gdi-dx/subsystems/win32/win32k/ntddraw/d3dkmt.c (added)
 +++ branches/win32k-gdi-dx/subsystems/win32/win32k/ntddraw/d3dkmt.c [iso-8859-1] Sun May
18 13:33:27 2008
 @@ -1,0 +1,507 @@
 +/*
 + * COPYRIGHT:        See COPYING in the top level directory
 + * PROJECT:          ReactOS kernel
 + * PURPOSE:          Native DirectDraw implementation
 + * FILE:             subsys/win32k/ntddraw/d3d.c
 + * PROGRAMER:        Magnus olsen (magnus(a)greatlord.com)
 + * REVISION HISTORY:
 + *       18/5-2008   Magnus Olsen
 + */
 +
 +
 +#include <w32k.h>
 +#include <debug.h>
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDICheckExclusiveOwnership()
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDICheckMonitorPowerState(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDICheckOcclusion(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDICloseAdapter(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDICreateAllocation(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDICreateContext(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDICreateDCFromMemory(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDICreateDevice(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDICreateOverlay(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDICreateSynchronizationObject(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIDestroyAllocation(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +NtGdiDdDDIDestroyContext(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIDestroyDCFromMemory(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIDestroyDevice(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIDestroyOverlay(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIDestroySynchronizationObject(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIEscape(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIFlipOverlay(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIGetContextSchedulingPriority(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIGetDeviceState(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIGetDisplayModeList(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIGetMultisampleMethodList(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIGetPresentHistory(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIGetProcessSchedulingPriorityClass
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIGetRuntimeData(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIGetScanLine(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIGetSharedPrimaryHandle(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIInvalidateActiveVidPn(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDILock(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIOpenAdapterFromDeviceName(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIOpenAdapterFromHdc(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIOpenResource(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIPollDisplayChildren(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIPresent(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIQueryAdapterInfo(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIQueryAllocationResidency(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIQueryResourceInfo(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIQueryStatistics(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIReleaseProcessVidPnSourceOwners(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIRender(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDISetAllocationPriority(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDISetContextSchedulingPriority(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDISetDisplayMode(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDISetDisplayPrivateDriverFormat(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDISetGammaRamp(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDISetProcessSchedulingPriorityClass(DWORD x1, x2)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDISetQueuedLimit(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDISetVidPnSourceOwner(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDISharedPrimaryLockNotification(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDISharedPrimaryUnLockNotification(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDISignalSynchronizationObject(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIUnlock(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIUpdateOverlay(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIWaitForIdle(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIWaitForSynchronizationObject(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDdDDIWaitForVerticalBlankEvent(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDDCCIGetCapabilitiesString(DWORD x1, DWORD x2, DWORD x3)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDDCCIGetCapabilitiesStringLength(DWORD x1, DWORD x2)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDDCCIGetTimingReport(DWORD x1, DWORD x2)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDDCCIGetVCPFeature(DWORD x1, DWORD x2, DWORD x3, DWORD x4)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDDCCISaveCurrentSettings(DWORD x1)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 +
 +DWORD
 +STDCALL
 +NtGdiDDCCISetVCPFeature(DWORD x1, DWORD x2, DWORD x3)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 Propchange: branches/win32k-gdi-dx/subsystems/win32/win32k/ntddraw/d3dkmt.c
 ------------------------------------------------------------------------------
    svn:eol-style = native
 Modified: branches/win32k-gdi-dx/subsystems/win32/win32k/stubs/stubs.c
 URL:
http://svn.reactos.org/svn/reactos/branches/win32k-gdi-dx/subsystems/win32/…
 ==============================================================================
 --- branches/win32k-gdi-dx/subsystems/win32/win32k/stubs/stubs.c [iso-8859-1] (original)
 +++ branches/win32k-gdi-dx/subsystems/win32/win32k/stubs/stubs.c [iso-8859-1] Sun May 18
13:33:27 2008
 @@ -2974,3 +2974,11 @@
        UNIMPLEMENTED;
        return 0
  }
 +
 +DWORD
 +STDCALL
 +NtGdiCreateOPMProtectedOutputs(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5)
 +{
 +       UNIMPLEMENTED;
 +       return 0
 +}
 Modified: branches/win32k-gdi-dx/subsystems/win32/win32k/w32ksvc.db
 URL:
http://svn.reactos.org/svn/reactos/branches/win32k-gdi-dx/subsystems/win32/…
 ==============================================================================
 --- branches/win32k-gdi-dx/subsystems/win32/win32k/w32ksvc.db [iso-8859-1] (original)
 +++ branches/win32k-gdi-dx/subsystems/win32/win32k/w32ksvc.db [iso-8859-1] Sun May 18
13:33:27 2008
 @@ -674,7 +674,70 @@
  #
  #
  # Vista Syscall add on
 -NtGdiConfigureOPMProtectedOutput                 4
 +NtGdiConfigureOPMProtectedOutput                4
 +NtGdiCreateOPMProtectedOutputs                  5
 +NtGdiDdDDICheckExclusiveOwnership               0
 +NtGdiDdDDICheckMonitorPowerState                1
 +NtGdiDdDDICheckOcclusion                        1
 +NtGdiDdDDICloseAdapter                          1
 +NtGdiDdDDICreateAllocation                      1
 +NtGdiDdDDICreateContext                         1
 +NtGdiDdDDICreateDCFromMemory                    1
 +NtGdiDdDDICreateDevice                          1
 +NtGdiDdDDICreateOverlay                         1
 +NtGdiDdDDICreateSynchronizationObject           1
 +NtGdiDdDDIDestroyAllocation                     1
 +NtGdiDdDDIDestroyContext                        1
 +NtGdiDdDDIDestroyDCFromMemory                   1
 +NtGdiDdDDIDestroyDevice                         1
 +NtGdiDdDDIDestroyOverlay                        1
 +NtGdiDdDDIDestroySynchronizationObject          1
 +NtGdiDdDDIEscape                                1
 +NtGdiDdDDIFlipOverlay                           1
 +NtGdiDdDDIGetContextSchedulingPriority          1
 +NtGdiDdDDIGetDeviceState                        1
 +NtGdiDdDDIGetDisplayModeList                    1
 +NtGdiDdDDIGetMultisampleMethodList              1
 +NtGdiDdDDIGetPresentHistory                     1
 +NtGdiDdDDIGetProcessSchedulingPriorityClass     2
 +NtGdiDdDDIGetRuntimeData                        1
 +NtGdiDdDDIGetScanLine                           1
 +NtGdiDdDDIGetSharedPrimaryHandle                1
 +NtGdiDdDDIInvalidateActiveVidPn                 1
 +NtGdiDdDDILock                                  1
 +NtGdiDdDDIOpenAdapterFromDeviceName             1
 +NtGdiDdDDIOpenAdapterFromHdc                    1
 +NtGdiDdDDIOpenResource                          1
 +NtGdiDdDDIPollDisplayChildren                   1
 +NtGdiDdDDIPresent                               1
 +NtGdiDdDDIQueryAdapterInfo                      1
 +NtGdiDdDDIQueryAllocationResidency              1
 +NtGdiDdDDIQueryResourceInfo                     1
 +NtGdiDdDDIQueryStatistics                       1
 +NtGdiDdDDIReleaseProcessVidPnSourceOwners       1
 +NtGdiDdDDIRender                                1
 +NtGdiDdDDISetAllocationPriority                 1
 +NtGdiDdDDISetContextSchedulingPriority          1
 +NtGdiDdDDISetDisplayMode                        1
 +NtGdiDdDDISetDisplayPrivateDriverFormat         1
 +NtGdiDdDDISetGammaRamp                          1
 +NtGdiDdDDISetProcessSchedulingPriorityClass     1
 +NtGdiDdDDISetQueuedLimit                        1
 +NtGdiDdDDISetVidPnSourceOwner                   1
 +NtGdiDdDDISharedPrimaryLockNotification         1
 +NtGdiDdDDISharedPrimaryUnLockNotification       1
 +NtGdiDdDDISignalSynchronizationObject           1
 +NtGdiDdDDIUnlock                                1
 +NtGdiDdDDIUpdateOverlay                         1
 +NtGdiDdDDIWaitForIdle                           1
 +NtGdiDdDDIWaitForSynchronizationObject          1
 +NtGdiDdDDIWaitForVerticalBlankEvent             1
 +NtGdiDDCCIGetCapabilitiesString                 3
 +NtGdiDDCCIGetCapabilitiesStringLength           2
 +NtGdiDDCCIGetTimingReport                       2
 +NtGdiDDCCIGetVCPFeature                         4
 +NtGdiDDCCISaveCurrentSettings                   1
 +NtGdiDDCCISetVCPFeature                         3
  #
  #
  #ReactOS specific syscalls