From 37c39cc09a51dc886d7f2ea4a5c4e36fc028edc2 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sat, 15 Jun 2002 14:58:25 +0000 Subject: [PATCH] Changed the calling convention used by the video miniport/port driver interface and the display driver/win32k interface (DrvXxx functions) to STDCALL. The EngXxx and other funtions will be changed in a second step. svn path=/trunk/; revision=3095 --- reactos/drivers/dd/vga/display/main/enable.c | 158 ++--- .../drivers/dd/vga/display/objects/bitblt.c | 17 +- .../drivers/dd/vga/display/objects/lineto.c | 13 +- .../drivers/dd/vga/display/objects/paint.c | 10 +- .../drivers/dd/vga/display/objects/pointer.c | 22 +- .../drivers/dd/vga/display/objects/transblt.c | 13 +- reactos/drivers/dd/vga/display/vgaddi.def | 4 +- reactos/drivers/dd/vga/display/vgaddi.edf | 4 +- reactos/drivers/dd/vga/miniport/vgamp.c | 79 ++- reactos/include/ddk/ntddvid.h | 252 +++---- reactos/include/ddk/winddi.h | 630 ++++++++++-------- reactos/include/win32k/driver.h | 122 ++-- 12 files changed, 735 insertions(+), 589 deletions(-) diff --git a/reactos/drivers/dd/vga/display/main/enable.c b/reactos/drivers/dd/vga/display/main/enable.c index f584233d100..57deba4c7c3 100644 --- a/reactos/drivers/dd/vga/display/main/enable.c +++ b/reactos/drivers/dd/vga/display/main/enable.c @@ -1,9 +1,9 @@ /* * entry.c * - * $Revision: 1.17 $ - * $Author: chorns $ - * $Date: 2002/02/08 02:57:09 $ + * $Revision: 1.18 $ + * $Author: ekohl $ + * $Date: 2002/06/15 14:57:26 $ * */ @@ -13,62 +13,23 @@ #define DBG_PREFIX "VGADDI: " -VOID VGADDIAssertMode(IN DHPDEV DPev, - IN BOOL Enable); -VOID VGADDICompletePDEV(IN DHPDEV PDev, - IN HDEV Dev); -VOID VGADDIDisablePDEV(IN DHPDEV PDev); -VOID VGADDIDisableSurface(IN DHPDEV PDev); -DHPDEV VGADDIEnablePDEV(IN DEVMODEW *DM, - IN LPWSTR LogAddress, - IN ULONG PatternCount, - OUT HSURF *SurfPatterns, - IN ULONG CapsSize, - OUT ULONG *DevCaps, - IN ULONG DevInfoSize, - OUT DEVINFO *DI, - IN LPWSTR DevDataFile, - IN LPWSTR DeviceName, - IN HANDLE Driver); -HSURF VGADDIEnableSurface(IN DHPDEV PDev); -ULONG VGADDIGetModes(IN HANDLE Driver, - IN ULONG DataSize, - OUT PDEVMODEW DM); -BOOL VGADDILineTo(SURFOBJ *Surface, CLIPOBJ *Clip, BRUSHOBJ *Brush, - LONG x1, LONG y1, LONG x2, LONG y2, - RECTL *RectBounds, MIX mix); -BOOL VGADDIPaint(IN SURFOBJ *Surface, IN CLIPOBJ *ClipRegion, - IN BRUSHOBJ *Brush, IN POINTL *BrushOrigin, - IN MIX Mix); -BOOL VGADDIBitBlt(SURFOBJ *Dest, SURFOBJ *Source, SURFOBJ *Mask, - CLIPOBJ *Clip, XLATEOBJ *ColorTranslation, - RECTL *DestRect, POINTL *SourcePoint, POINTL *MaskPoint, - BRUSHOBJ *Brush, POINTL *BrushPoint, ROP4 rop4); -VOID VGADDIMovePointer(PSURFOBJ pso, LONG x, LONG y, PRECTL prcl); -ULONG VGADDISetPointerShape(PSURFOBJ pso, PSURFOBJ psoMask, PSURFOBJ psoColor, PXLATEOBJ pxlo, - LONG xHot, LONG yHot, LONG x, LONG y, - PRECTL prcl, ULONG fl); -BOOL VGADDITransparentBlt(PSURFOBJ Dest, PSURFOBJ Source, - PCLIPOBJ Clip, PXLATEOBJ ColorTranslation, - PRECTL DestRect, PRECTL SourceRect, - ULONG TransparentColor, ULONG Reserved); DRVFN FuncList[] = { /* Required Display driver fuctions */ - {INDEX_DrvAssertMode, (PFN) VGADDIAssertMode}, - {INDEX_DrvCompletePDEV, (PFN) VGADDICompletePDEV}, - {INDEX_DrvDisablePDEV, (PFN) VGADDIDisablePDEV}, - {INDEX_DrvDisableSurface, (PFN) VGADDIDisableSurface}, - {INDEX_DrvEnablePDEV, (PFN) VGADDIEnablePDEV}, - {INDEX_DrvEnableSurface, (PFN) VGADDIEnableSurface}, - {INDEX_DrvGetModes, (PFN) VGADDIGetModes}, - {INDEX_DrvLineTo, (PFN) VGADDILineTo}, - {INDEX_DrvPaint, (PFN) VGADDIPaint}, - {INDEX_DrvBitBlt, (PFN) VGADDIBitBlt}, - {INDEX_DrvTransparentBlt, (PFN) VGADDITransparentBlt}, - {INDEX_DrvMovePointer, (PFN) VGADDIMovePointer}, - {INDEX_DrvSetPointerShape, (PFN) VGADDISetPointerShape}, + {INDEX_DrvAssertMode, (PFN) DrvAssertMode}, + {INDEX_DrvCompletePDEV, (PFN) DrvCompletePDEV}, + {INDEX_DrvDisablePDEV, (PFN) DrvDisablePDEV}, + {INDEX_DrvDisableSurface, (PFN) DrvDisableSurface}, + {INDEX_DrvEnablePDEV, (PFN) DrvEnablePDEV}, + {INDEX_DrvEnableSurface, (PFN) DrvEnableSurface}, + {INDEX_DrvGetModes, (PFN) DrvGetModes}, + {INDEX_DrvLineTo, (PFN) DrvLineTo}, + {INDEX_DrvPaint, (PFN) DrvPaint}, + {INDEX_DrvBitBlt, (PFN) DrvBitBlt}, + {INDEX_DrvTransparentBlt, (PFN) DrvTransparentBlt}, + {INDEX_DrvMovePointer, (PFN) DrvMovePointer}, + {INDEX_DrvSetPointerShape, (PFN) DrvSetPointerShape}, #if 0 /* Optional Display driver functions */ @@ -98,10 +59,10 @@ DRVFN FuncList[] = }; -BOOL -DrvEnableDriver(IN ULONG EngineVersion, - IN ULONG SizeOfDED, - OUT PDRVENABLEDATA DriveEnableData) +BOOL STDCALL +DrvEnableDriver(IN ULONG EngineVersion, + IN ULONG SizeOfDED, + OUT PDRVENABLEDATA DriveEnableData) { EngDebugPrint("VGADDI", "DrvEnableDriver called...\n", 0); @@ -125,7 +86,8 @@ DrvEnableDriver(IN ULONG EngineVersion, // RETURNS: // NONE -VOID DrvDisableDriver(VOID) +VOID STDCALL +DrvDisableDriver(VOID) { return; } @@ -153,26 +115,27 @@ VOID DrvDisableDriver(VOID) // RETURNS: // DHPDEV a handle to a DPev object -DHPDEV VGADDIEnablePDEV(IN DEVMODEW *DM, - IN LPWSTR LogAddress, - IN ULONG PatternCount, - OUT HSURF *SurfPatterns, - IN ULONG CapsSize, - OUT ULONG *DevCaps, - IN ULONG DevInfoSize, - OUT DEVINFO *DI, - IN LPWSTR DevDataFile, - IN LPWSTR DeviceName, - IN HANDLE Driver) +DHPDEV STDCALL +DrvEnablePDEV(IN DEVMODEW *DM, + IN LPWSTR LogAddress, + IN ULONG PatternCount, + OUT HSURF *SurfPatterns, + IN ULONG CapsSize, + OUT ULONG *DevCaps, + IN ULONG DevInfoSize, + OUT DEVINFO *DI, + IN LPWSTR DevDataFile, + IN LPWSTR DeviceName, + IN HANDLE Driver) { PPDEV PDev; PDev = EngAllocMem(FL_ZERO_MEMORY, sizeof(PDEV), ALLOC_TAG); if (PDev == NULL) - { - EngDebugPrint(DBG_PREFIX, "EngAllocMem failed for PDEV\n", 0); - return NULL; - } + { + EngDebugPrint(DBG_PREFIX, "EngAllocMem failed for PDEV\n", 0); + return(NULL); + } PDev->KMDriver = Driver; DPRINT( "PDev: %x, Driver: %x\n", PDev, PDev->KMDriver ); PDev->xyCursor.x = 320; @@ -184,28 +147,31 @@ DHPDEV VGADDIEnablePDEV(IN DEVMODEW *DM, // FIXME: fill out DevCaps // FIXME: full out DevInfo - devinfoVGA.hpalDefault = EngCreatePalette(PAL_INDEXED, 16, (PULONG)(VGApalette.PaletteEntry), 0, 0, 0); + devinfoVGA.hpalDefault = EngCreatePalette(PAL_INDEXED, 16, (PULONG *)VGApalette.PaletteEntry, 0, 0, 0); DPRINT("Palette from Driver: %u\n", devinfoVGA.hpalDefault); *DI = devinfoVGA; DPRINT("Palette from Driver 2: %u and DI is %08x\n", DI->hpalDefault, DI); - return PDev; + return(PDev); } -// DrvEnablePDEV + +// DrvCompletePDEV // DESCRIPTION // Called after initialization of PDEV is complete. Supplies // a reference to the GDI handle for the PDEV. -VOID VGADDICompletePDEV(IN DHPDEV PDev, - IN HDEV Dev) +VOID STDCALL +DrvCompletePDEV(IN DHPDEV PDev, + IN HDEV Dev) { ((PPDEV) PDev)->GDIDevHandle = Dev; // Handle to the DC } -VOID VGADDIAssertMode(IN DHPDEV DPev, - IN BOOL Enable) +BOOL STDCALL +DrvAssertMode(IN DHPDEV DPev, + IN BOOL Enable) { PPDEV ppdev = (PPDEV)DPev; ULONG returnedDataLength; @@ -238,7 +204,9 @@ VOID VGADDIAssertMode(IN DHPDEV DPev, } } -VOID VGADDIDisablePDEV(IN DHPDEV PDev) + +VOID STDCALL +DrvDisablePDEV(IN DHPDEV PDev) { PPDEV ppdev = (PPDEV)PDev; @@ -256,7 +224,9 @@ VOID VGADDIDisablePDEV(IN DHPDEV PDev) EngFreeMem(PDev); } -VOID VGADDIDisableSurface(IN DHPDEV PDev) + +VOID STDCALL +DrvDisableSurface(IN DHPDEV PDev) { PPDEV ppdev = (PPDEV)PDev; PDEVSURF pdsurf = ppdev->AssociatedSurf; @@ -296,7 +266,9 @@ VOID VGADDIDisableSurface(IN DHPDEV PDev) // EngFreeMem(pdsurf); // free the surface } -VOID InitSavedBits(PPDEV ppdev) + +static VOID +InitSavedBits(PPDEV ppdev) { if (!(ppdev->fl & DRIVER_OFFSCREEN_REFRESHED)) { @@ -338,18 +310,23 @@ VOID InitSavedBits(PPDEV ppdev) return; } -HSURF VGADDIEnableSurface(IN DHPDEV PDev) + +HSURF STDCALL +DrvEnableSurface(IN DHPDEV PDev) { PPDEV ppdev = (PPDEV)PDev; PDEVSURF pdsurf; DHSURF dhsurf; HSURF hsurf; + DPRINT1("DrvEnableSurface() called\n"); + // Initialize the VGA if (!InitVGA(ppdev, TRUE)) { goto error_done; } +CHECKPOINT1; // dhsurf is of type DEVSURF, which is the drivers specialized surface type dhsurf = (DHSURF)EngAllocMem(0, sizeof(DEVSURF), ALLOC_TAG); @@ -416,9 +393,11 @@ error_done: return((HSURF)0); } -ULONG VGADDIGetModes(IN HANDLE Driver, - IN ULONG DataSize, - OUT PDEVMODEW DM) + +ULONG STDCALL +DrvGetModes(IN HANDLE Driver, + IN ULONG DataSize, + OUT PDEVMODEW DM) { DWORD NumModes; DWORD ModeSize; @@ -487,4 +466,3 @@ ULONG VGADDIGetModes(IN HANDLE Driver, } /* EOF */ - diff --git a/reactos/drivers/dd/vga/display/objects/bitblt.c b/reactos/drivers/dd/vga/display/objects/bitblt.c index f72941d24cf..cc89dc50196 100644 --- a/reactos/drivers/dd/vga/display/objects/bitblt.c +++ b/reactos/drivers/dd/vga/display/objects/bitblt.c @@ -200,10 +200,19 @@ BOOL VGAtoVGA( return TRUE; } -BOOL VGADDIBitBlt(SURFOBJ *Dest, SURFOBJ *Source, SURFOBJ *Mask, - CLIPOBJ *Clip, XLATEOBJ *ColorTranslation, - RECTL *DestRect, POINTL *SourcePoint, POINTL *MaskPoint, - BRUSHOBJ *Brush, POINTL *BrushPoint, ROP4 rop4) + +BOOL STDCALL +DrvBitBlt(SURFOBJ *Dest, + SURFOBJ *Source, + SURFOBJ *Mask, + CLIPOBJ *Clip, + XLATEOBJ *ColorTranslation, + RECTL *DestRect, + POINTL *SourcePoint, + POINTL *MaskPoint, + BRUSHOBJ *Brush, + POINTL *BrushPoint, + ROP4 rop4) { RECT_ENUM RectEnum; BOOL EnumMore; diff --git a/reactos/drivers/dd/vga/display/objects/lineto.c b/reactos/drivers/dd/vga/display/objects/lineto.c index d5a861a48d3..3485a7aa033 100644 --- a/reactos/drivers/dd/vga/display/objects/lineto.c +++ b/reactos/drivers/dd/vga/display/objects/lineto.c @@ -2,9 +2,16 @@ #include "../vgavideo/vgavideo.h" -BOOL VGADDILineTo(SURFOBJ *Surface, CLIPOBJ *Clip, BRUSHOBJ *Brush, - LONG x1, LONG y1, LONG x2, LONG y2, - RECTL *RectBounds, MIX mix) +BOOL STDCALL +DrvLineTo(SURFOBJ *Surface, + CLIPOBJ *Clip, + BRUSHOBJ *Brush, + LONG x1, + LONG y1, + LONG x2, + LONG y2, + RECTL *RectBounds, + MIX mix) // FIXME: Use ClipObj and RectBounds to clip the line where required // FIXME: Use Mix to perform ROPs diff --git a/reactos/drivers/dd/vga/display/objects/paint.c b/reactos/drivers/dd/vga/display/objects/paint.c index 60c78a43deb..72ec6712f21 100644 --- a/reactos/drivers/dd/vga/display/objects/paint.c +++ b/reactos/drivers/dd/vga/display/objects/paint.c @@ -102,9 +102,13 @@ BOOL VGADDIPaintRgn(SURFOBJ *Surface, CLIPOBJ *ClipRegion, ULONG iColor, MIX Mix } } -BOOL VGADDIPaint(IN SURFOBJ *Surface, IN CLIPOBJ *ClipRegion, - IN BRUSHOBJ *Brush, IN POINTL *BrushOrigin, - IN MIX Mix) + +BOOL STDCALL +DrvPaint(IN SURFOBJ *Surface, + IN CLIPOBJ *ClipRegion, + IN BRUSHOBJ *Brush, + IN POINTL *BrushOrigin, + IN MIX Mix) { ULONG iSolidColor; diff --git a/reactos/drivers/dd/vga/display/objects/pointer.c b/reactos/drivers/dd/vga/display/objects/pointer.c index b7a098dd26a..c449c77237c 100644 --- a/reactos/drivers/dd/vga/display/objects/pointer.c +++ b/reactos/drivers/dd/vga/display/objects/pointer.c @@ -33,7 +33,12 @@ BOOL InitPointer(PPDEV ppdev) return TRUE; } -VOID VGADDIMovePointer(PSURFOBJ pso, LONG x, LONG y, PRECTL prcl) + +VOID STDCALL +DrvMovePointer(IN PSURFOBJ pso, + IN LONG x, + IN LONG y, + IN PRECTL prcl) { PPDEV ppdev = (PPDEV)pso->dhpdev; @@ -53,9 +58,18 @@ VOID VGADDIMovePointer(PSURFOBJ pso, LONG x, LONG y, PRECTL prcl) // if (prcl != NULL) ComputePointerRect(ppdev, prcl); } -ULONG VGADDISetPointerShape(PSURFOBJ pso, PSURFOBJ psoMask, PSURFOBJ psoColor, PXLATEOBJ pxlo, - LONG xHot, LONG yHot, LONG x, LONG y, - PRECTL prcl, ULONG fl) + +ULONG STDCALL +DrvSetPointerShape(PSURFOBJ pso, + PSURFOBJ psoMask, + PSURFOBJ psoColor, + PXLATEOBJ pxlo, + LONG xHot, + LONG yHot, + LONG x, + LONG y, + PRECTL prcl, + ULONG fl) { PPDEV ppdev = (PPDEV)pso->dhpdev; PCHAR DFBTmp; diff --git a/reactos/drivers/dd/vga/display/objects/transblt.c b/reactos/drivers/dd/vga/display/objects/transblt.c index 1a453fcba2f..f4f8fd203e3 100644 --- a/reactos/drivers/dd/vga/display/objects/transblt.c +++ b/reactos/drivers/dd/vga/display/objects/transblt.c @@ -6,10 +6,15 @@ #include "brush.h" #include "bitblt.h" -BOOL VGADDITransparentBlt(PSURFOBJ Dest, PSURFOBJ Source, - PCLIPOBJ Clip, PXLATEOBJ ColorTranslation, - PRECTL DestRect, PRECTL SourceRect, - ULONG TransparentColor, ULONG Reserved) +BOOL STDCALL +DrvTransparentBlt(PSURFOBJ Dest, + PSURFOBJ Source, + PCLIPOBJ Clip, + PXLATEOBJ ColorTranslation, + PRECTL DestRect, + PRECTL SourceRect, + ULONG TransparentColor, + ULONG Reserved) { LONG dx, dy, sx, sy; diff --git a/reactos/drivers/dd/vga/display/vgaddi.def b/reactos/drivers/dd/vga/display/vgaddi.def index dd8945486ea..bee64589f35 100644 --- a/reactos/drivers/dd/vga/display/vgaddi.def +++ b/reactos/drivers/dd/vga/display/vgaddi.def @@ -1,4 +1,4 @@ -; $Id: vgaddi.def,v 1.1 2000/03/10 12:45:44 jfilby Exp $ +; $Id: vgaddi.def,v 1.2 2002/06/15 14:56:53 ekohl Exp $ ; ; vgaddi.def ; @@ -8,4 +8,4 @@ ; LIBRARY vgaddi.dll EXPORTS -DrvEnableDriver +DrvEnableDriver@12 diff --git a/reactos/drivers/dd/vga/display/vgaddi.edf b/reactos/drivers/dd/vga/display/vgaddi.edf index c9babeddd29..34972175c87 100644 --- a/reactos/drivers/dd/vga/display/vgaddi.edf +++ b/reactos/drivers/dd/vga/display/vgaddi.edf @@ -1,4 +1,4 @@ -; $Id: vgaddi.edf,v 1.1 2000/03/10 12:45:44 jfilby Exp $ +; $Id: vgaddi.edf,v 1.2 2002/06/15 14:56:53 ekohl Exp $ ; ; vgaddi.def ; @@ -8,4 +8,4 @@ ; LIBRARY vgaddi.dll EXPORTS -DrvEnableDriver=DrvEnableDriver +DrvEnableDriver=DrvEnableDriver@12 diff --git a/reactos/drivers/dd/vga/miniport/vgamp.c b/reactos/drivers/dd/vga/miniport/vgamp.c index c28b6d6067c..8dd9ba31662 100644 --- a/reactos/drivers/dd/vga/miniport/vgamp.c +++ b/reactos/drivers/dd/vga/miniport/vgamp.c @@ -11,20 +11,26 @@ #define VERSION "0.0.0" // ---------------------------------------------------- Forward Declarations -static VP_STATUS VGAFindAdapter(PVOID DeviceExtension, - PVOID Context, - PWSTR ArgumentString, - PVIDEO_PORT_CONFIG_INFO ConfigInfo, - PUCHAR Again); -static BOOLEAN VGAInitialize(PVOID DeviceExtension); -static BOOLEAN VGAStartIO(PVOID DeviceExtension, - PVIDEO_REQUEST_PACKET RequestPacket); +static VP_STATUS STDCALL +VGAFindAdapter(PVOID DeviceExtension, + PVOID Context, + PWSTR ArgumentString, + PVIDEO_PORT_CONFIG_INFO ConfigInfo, + PUCHAR Again); +static BOOLEAN STDCALL +VGAInitialize(PVOID DeviceExtension); +static BOOLEAN STDCALL +VGAStartIO(PVOID DeviceExtension, + PVIDEO_REQUEST_PACKET RequestPacket); /* -static BOOLEAN VGAInterrupt(PVOID DeviceExtension); -static BOOLEAN VGAResetHw(PVOID DeviceExtension, - ULONG Columns, - ULONG Rows); -static VOID VGATimer(PVOID DeviceExtension); +static BOOLEAN STDCALL +VGAInterrupt(PVOID DeviceExtension); +static BOOLEAN STDCALL +VGAResetHw(PVOID DeviceExtension, + ULONG Columns, + ULONG Rows); +static VOID STDCALL +VGATimer(PVOID DeviceExtension); */ /* Mandatory IoControl routines */ @@ -69,8 +75,8 @@ VOID VGAUnshareVideoMemory(IN PVIDEO_MEMORY MemoryToUnshare, // VP_STATUS VP_STATUS STDCALL -DriverEntry(IN PVOID Context1, - IN PVOID Context2) +DriverEntry(IN PVOID Context1, + IN PVOID Context2) { VIDEO_HW_INITIALIZATION_DATA InitData; @@ -116,12 +122,12 @@ DriverEntry(IN PVOID Context1, // RETURNS: // VP_STATUS -static VP_STATUS -VGAFindAdapter(PVOID DeviceExtension, - PVOID Context, - PWSTR ArgumentString, - PVIDEO_PORT_CONFIG_INFO ConfigInfo, - PUCHAR Again) +static VP_STATUS STDCALL +VGAFindAdapter(PVOID DeviceExtension, + PVOID Context, + PWSTR ArgumentString, + PVIDEO_PORT_CONFIG_INFO ConfigInfo, + PUCHAR Again) { /* FIXME: Determine if the adapter is present */ *Again = FALSE; @@ -148,8 +154,8 @@ VGAFindAdapter(PVOID DeviceExtension, // PVOID DeviceExtension // RETURNS: // BOOLEAN Success or failure -static BOOLEAN -VGAInitialize(PVOID DeviceExtension) +static BOOLEAN STDCALL +VGAInitialize(PVOID DeviceExtension) { return FALSE; } @@ -205,9 +211,9 @@ VGAInitialize(PVOID DeviceExtension) // BOOLEAN This function must return TRUE, and complete the work or // set an error status in the VRP. -static BOOLEAN -VGAStartIO(PVOID DeviceExtension, - PVIDEO_REQUEST_PACKET RequestPacket) +static BOOLEAN STDCALL +VGAStartIO(PVOID DeviceExtension, + PVIDEO_REQUEST_PACKET RequestPacket) { switch (RequestPacket->IoControlCode) { @@ -328,7 +334,11 @@ VGAStartIO(PVOID DeviceExtension, // RETURNS: // BOOLEAN TRUE if the interrupt was handled by the routine -static BOOLEAN VGAInterrupt(PVOID DeviceExtension); +static BOOLEAN STDCALL +VGAInterrupt(PVOID DeviceExtension) +{ + return(TRUE); +} // VGAResetHw // @@ -347,9 +357,13 @@ static BOOLEAN VGAInterrupt(PVOID DeviceExtension); // BOOLEAN TRUE if no further action is necessary, FALSE if the system // needs to still do a BOIS int 10 reset. -static BOOLEAN VGAResetHw(PVOID DeviceExtension, - ULONG Columns, - ULONG Rows); +static BOOLEAN STDCALL +VGAResetHw(PVOID DeviceExtension, + ULONG Columns, + ULONG Rows) +{ + return(TRUE); +} // VGATimer // @@ -364,7 +378,10 @@ static BOOLEAN VGAResetHw(PVOID DeviceExtension, // RETURNS: // VOID -static VOID VGATimer(PVOID DeviceExtension); +static VOID STDCALL +VGATimer(PVOID DeviceExtension) +{ +} #endif diff --git a/reactos/include/ddk/ntddvid.h b/reactos/include/ddk/ntddvid.h index 176fe05e570..324039626df 100644 --- a/reactos/include/ddk/ntddvid.h +++ b/reactos/include/ddk/ntddvid.h @@ -40,85 +40,92 @@ typedef LONG VP_STATUS, *PVP_STATUS; #define VIDEO_MEMORY_SPACE_DENSE 0x04 #define VIDEO_MEMORY_SPACE_P6CACHE 0x08 -typedef struct _VIDEO_POINTER_CAPABILITIES { - ULONG Flags; - ULONG MaxWidth; - ULONG MaxHeight; - ULONG HWPtrBitmapStart; - ULONG HWPtrBitmapEnd; +typedef struct _VIDEO_POINTER_CAPABILITIES +{ + ULONG Flags; + ULONG MaxWidth; + ULONG MaxHeight; + ULONG HWPtrBitmapStart; + ULONG HWPtrBitmapEnd; } VIDEO_POINTER_CAPABILITIES, *PVIDEO_POINTER_CAPABILITIES; -typedef struct _VIDEO_POINTER_ATTRIBUTES { - ULONG Flags; - ULONG Width; - ULONG Height; - ULONG WidthInBytes; - ULONG Enable; - SHORT Column; - SHORT Row; - UCHAR Pixels[1]; +typedef struct _VIDEO_POINTER_ATTRIBUTES +{ + ULONG Flags; + ULONG Width; + ULONG Height; + ULONG WidthInBytes; + ULONG Enable; + SHORT Column; + SHORT Row; + UCHAR Pixels[1]; } VIDEO_POINTER_ATTRIBUTES, *PVIDEO_POINTER_ATTRIBUTES; -typedef enum _VIDEO_BANK_TYPE { - VideoNotBanked = 0, - VideoBanked1RW, - VideoBanked1R1W, - VideoBanked2RW, - NumVideoBankTypes +typedef enum _VIDEO_BANK_TYPE +{ + VideoNotBanked = 0, + VideoBanked1RW, + VideoBanked1R1W, + VideoBanked2RW, + NumVideoBankTypes } VIDEO_BANK_TYPE, *PVIDEO_BANK_TYPE; -typedef struct _VIDEO_BANK_SELECT { - ULONG Length; - ULONG Size; - ULONG BankingFlags; - ULONG BankingType; - ULONG PlanarHCBankingType; - ULONG BitmapWidthInBytes; - ULONG BitmapSize; - ULONG Granularity; - ULONG PlanarHCGranularity; - ULONG CodeOffset; - ULONG PlanarHCBankCodeOffset; - ULONG PlanarHCEnableCodeOffset; - ULONG PlanarHCDisableCodeOffset; +typedef struct _VIDEO_BANK_SELECT +{ + ULONG Length; + ULONG Size; + ULONG BankingFlags; + ULONG BankingType; + ULONG PlanarHCBankingType; + ULONG BitmapWidthInBytes; + ULONG BitmapSize; + ULONG Granularity; + ULONG PlanarHCGranularity; + ULONG CodeOffset; + ULONG PlanarHCBankCodeOffset; + ULONG PlanarHCEnableCodeOffset; + ULONG PlanarHCDisableCodeOffset; } VIDEO_BANK_SELECT, *PVIDEO_BANK_SELECT; -typedef struct _VIDEO_CLUTDATA { - UCHAR Red; - UCHAR Green; - UCHAR Blue; - UCHAR Unused; +typedef struct _VIDEO_CLUTDATA +{ + UCHAR Red; + UCHAR Green; + UCHAR Blue; + UCHAR Unused; } VIDEO_CLUTDATA, *PVIDEO_CLUTDATA; -typedef struct _VIDEO_NUM_MODES { - ULONG NumModes; - ULONG ModeInformationLength; +typedef struct _VIDEO_NUM_MODES +{ + ULONG NumModes; + ULONG ModeInformationLength; } VIDEO_NUM_MODES, *PVIDEO_NUM_MODES; -typedef struct _VIDEO_MODE_INFORMATION { - ULONG Length; - ULONG ModeIndex; - ULONG VisScreenWidth; - ULONG VisScreenHeight; - ULONG ScreenStride; - ULONG NumberOfPlanes; - ULONG BitsPerPlane; - ULONG Frequency; - ULONG XMillimeter; - ULONG YMillimeter; - ULONG NumberRedBits; - ULONG NumberGreenBits; - ULONG NumberBlueBits; - ULONG RedMask; - ULONG GreenMask; - ULONG BlueMask; - ULONG AttributeFlags; - ULONG VideoMemoryBitmapWidth; - ULONG VideoMemoryBitmapHeight; - ULONG DriverSpecificAttributeFlags; +typedef struct _VIDEO_MODE_INFORMATION +{ + ULONG Length; + ULONG ModeIndex; + ULONG VisScreenWidth; + ULONG VisScreenHeight; + ULONG ScreenStride; + ULONG NumberOfPlanes; + ULONG BitsPerPlane; + ULONG Frequency; + ULONG XMillimeter; + ULONG YMillimeter; + ULONG NumberRedBits; + ULONG NumberGreenBits; + ULONG NumberBlueBits; + ULONG RedMask; + ULONG GreenMask; + ULONG BlueMask; + ULONG AttributeFlags; + ULONG VideoMemoryBitmapWidth; + ULONG VideoMemoryBitmapHeight; + ULONG DriverSpecificAttributeFlags; } VIDEO_MODE_INFORMATION, *PVIDEO_MODE_INFORMATION; -typedef enum _VIDEO_DEVICE_DATA_TYPE +typedef enum _VIDEO_DEVICE_DATA_TYPE { VpMachineData, VpCmosData, @@ -127,20 +134,20 @@ typedef enum _VIDEO_DEVICE_DATA_TYPE VpMonitorData } VIDEO_DEVICE_DATA_TYPE, *PVIDEO_DEVICE_DATA_TYPE; -typedef enum _VIDEO_SYNCHRONIZE_PRIORITY +typedef enum _VIDEO_SYNCHRONIZE_PRIORITY { VpLowPriority, VpMediumPriority, VpHighPriority } VIDEO_SYNCHRONIZE_PRIORITY, *PVIDEO_SYNCHRONIZE_PRIORITY; -typedef struct _STATUS_BLOCK +typedef struct _STATUS_BLOCK { VP_STATUS Status; ULONG Information; } STATUS_BLOCK, *PSTATUS_BLOCK; -typedef struct _VIDEO_REQUEST_PACKET +typedef struct _VIDEO_REQUEST_PACKET { ULONG IoControlCode; PSTATUS_BLOCK StatusBlock; @@ -184,7 +191,7 @@ typedef struct _VIDEO_REQUEST_PACKET #define IOCTL_VIDEO_SET_PALETTE_REGISTERS CTL_CODE(FILE_DEVICE_VIDEO, 31, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_VIDEO_LOAD_AND_SET_FONT CTL_CODE(FILE_DEVICE_VIDEO, 32, METHOD_BUFFERED, FILE_ANY_ACCESS) -typedef struct _VIDEO_PORT_CONFIG_INFO +typedef struct _VIDEO_PORT_CONFIG_INFO { ULONG Length; ULONG SystemIoBusNumber; @@ -204,21 +211,32 @@ typedef struct _VIDEO_PORT_CONFIG_INFO UCHAR InterruptShareable; } VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO; -typedef VP_STATUS (*PVIDEO_HW_FIND_ADAPTER) (PVOID HwDeviceExtension, - PVOID HwContext, - PWSTR ArgumentString, - PVIDEO_PORT_CONFIG_INFO ConfigInfo, - PUCHAR Again); -typedef BOOLEAN (*PVIDEO_HW_INITIALIZE)(PVOID HwDeviceExtension); -typedef BOOLEAN (*PVIDEO_HW_INTERRUPT)(PVOID HwDeviceExtension); -typedef BOOLEAN (*PVIDEO_HW_START_IO)(PVOID HwDeviceExtension, - PVIDEO_REQUEST_PACKET RequestPacket); -typedef BOOLEAN (*PVIDEO_HW_RESET_HW)(PVOID HwDeviceExtension, - ULONG Columns, - ULONG Rows); -typedef VOID (*PVIDEO_HW_TIMER)(PVOID HwDeviceExtension); +typedef VP_STATUS STDCALL +(*PVIDEO_HW_FIND_ADAPTER)(PVOID HwDeviceExtension, + PVOID HwContext, + PWSTR ArgumentString, + PVIDEO_PORT_CONFIG_INFO ConfigInfo, + PUCHAR Again); -typedef struct _VIDEO_HW_INITIALIZATION_DATA +typedef BOOLEAN STDCALL +(*PVIDEO_HW_INITIALIZE)(PVOID HwDeviceExtension); + +typedef BOOLEAN STDCALL +(*PVIDEO_HW_INTERRUPT)(PVOID HwDeviceExtension); + +typedef BOOLEAN STDCALL +(*PVIDEO_HW_START_IO)(PVOID HwDeviceExtension, + PVIDEO_REQUEST_PACKET RequestPacket); + +typedef BOOLEAN STDCALL +(*PVIDEO_HW_RESET_HW)(PVOID HwDeviceExtension, + ULONG Columns, + ULONG Rows); + +typedef VOID STDCALL +(*PVIDEO_HW_TIMER)(PVOID HwDeviceExtension); + +typedef struct _VIDEO_HW_INITIALIZATION_DATA { ULONG HwInitDataSize; INTERFACE_TYPE AdapterInterfaceType; @@ -232,23 +250,28 @@ typedef struct _VIDEO_HW_INITIALIZATION_DATA PVIDEO_HW_TIMER HwTimer; } VIDEO_HW_INITIALIZATION_DATA, *PVIDEO_HW_INITIALIZATION_DATA; -typedef VP_STATUS (*PMINIPORT_GET_REGISTRY_ROUTINE)(PVOID HwDeviceExtension, - PVOID Context, - PWSTR ValueName, - PVOID ValueData, - ULONG ValueLength); -typedef VP_STATUS (*PMINIPORT_QUERY_DEVICE_ROUTINE)(PVOID HwDeviceExtension, - PVOID Context, - VIDEO_DEVICE_DATA_TYPE DeviceDataType, - PVOID Identifier, - ULONG IdentiferLength, - PVOID ConfigurationData, - ULONG ConfigurationDataLength, - PVOID ComponentInformation, - ULONG ComponentInformationLength); -typedef BOOLEAN (*PMINIPORT_SYNCHRONIZE_ROUTINE)(PVOID Context); +typedef VP_STATUS STDCALL +(*PMINIPORT_GET_REGISTRY_ROUTINE)(PVOID HwDeviceExtension, + PVOID Context, + PWSTR ValueName, + PVOID ValueData, + ULONG ValueLength); -typedef struct _VIDEO_ACCESS_RANGE +typedef VP_STATUS STDCALL +(*PMINIPORT_QUERY_DEVICE_ROUTINE)(PVOID HwDeviceExtension, + PVOID Context, + VIDEO_DEVICE_DATA_TYPE DeviceDataType, + PVOID Identifier, + ULONG IdentiferLength, + PVOID ConfigurationData, + ULONG ConfigurationDataLength, + PVOID ComponentInformation, + ULONG ComponentInformationLength); + +typedef BOOLEAN STDCALL +(*PMINIPORT_SYNCHRONIZE_ROUTINE)(PVOID Context); + +typedef struct _VIDEO_ACCESS_RANGE { PHYSICAL_ADDRESS RangeStart; ULONG RangeLength; @@ -257,7 +280,7 @@ typedef struct _VIDEO_ACCESS_RANGE UCHAR RangeShareable; } VIDEO_ACCESS_RANGE, *PVIDEO_ACCESS_RANGE; -typedef struct _VIDEO_X86_BIOS_ARGUMENTS +typedef struct _VIDEO_X86_BIOS_ARGUMENTS { ULONG Eax; ULONG Ebx; @@ -268,23 +291,28 @@ typedef struct _VIDEO_X86_BIOS_ARGUMENTS ULONG Ebp; } VIDEO_X86_BIOS_ARGUMENTS, *PVIDEO_X86_BIOS_ARGUMENTS; -typedef VOID (*PBANKED_SECTION_ROUTINE)(IN ULONG ReadBank, IN ULONG WriteBank, IN PVOID Context); +typedef VOID STDCALL +(*PBANKED_SECTION_ROUTINE)(IN ULONG ReadBank, + IN ULONG WriteBank, + IN PVOID Context); -typedef struct { - USHORT NumEntries; - USHORT FirstEntry; - union { - VIDEO_CLUTDATA RgbArray; - ULONG RgbLong; +typedef struct +{ + USHORT NumEntries; + USHORT FirstEntry; + union + { + VIDEO_CLUTDATA RgbArray; + ULONG RgbLong; } LookupTable[1]; } VIDEO_CLUT, *PVIDEO_CLUT; -typedef struct _VIDEO_MEMORY +typedef struct _VIDEO_MEMORY { - PVOID RequestedVirtualAddress; + PVOID RequestedVirtualAddress; } VIDEO_MEMORY, *PVIDEO_MEMORY; -typedef struct _VIDEO_MEMORY_INFORMATION +typedef struct _VIDEO_MEMORY_INFORMATION { PVOID VideoRamBase; ULONG VideoRamLength; @@ -292,12 +320,12 @@ typedef struct _VIDEO_MEMORY_INFORMATION ULONG FrameBufferLength; } VIDEO_MEMORY_INFORMATION, *PVIDEO_MEMORY_INFORMATION; -typedef struct _VIDEO_MODE +typedef struct _VIDEO_MODE { ULONG RequestedMode; } VIDEO_MODE, *PVIDEO_MODE; -typedef struct _VIDEO_SHARE_MEMORY +typedef struct _VIDEO_SHARE_MEMORY { HANDLE ProcessHandle; ULONG ViewOffset; diff --git a/reactos/include/ddk/winddi.h b/reactos/include/ddk/winddi.h index ca1d4750787..a16f4d0c257 100644 --- a/reactos/include/ddk/winddi.h +++ b/reactos/include/ddk/winddi.h @@ -679,207 +679,257 @@ typedef struct _XFORMOBJ */ /* GDI --> DDI calls */ -BOOL DrvAssertMode(IN DHPDEV PDev, - IN BOOL ShouldEnable); -BOOL DrvBitBlt(IN PSURFOBJ DestSurface, - IN PSURFOBJ SrcSurface, - IN PSURFOBJ MaskSurface, - IN PCLIPOBJ ClipObj, - IN PXLATEOBJ XLateObj, - IN PRECTL DestRectL, - IN PPOINTL SrcPointL, - IN PPOINTL MaskPointL, - IN PBRUSHOBJ BrushObj, - IN PPOINTL BrushPointL, - IN ROP4 RasterOp); -VOID DrvCompletePDEV(IN DHPDEV PDev, - IN HDEV Dev); -BOOL DrvCopyBits(OUT PSURFOBJ DestSurface, - IN PSURFOBJ SrcSurface, - IN PCLIPOBJ ClipObj, - IN PXLATEOBJ XLateObj, - IN PRECTL DestRectL, - IN PPOINTL SrcPointL); -HBITMAP DrvCreateDeviceBitmap(IN DHPDEV DPev, - IN SIZEL SizeL, - IN ULONG Format); -VOID DrvDeleteDeviceBitmap(IN DHSURF Surface); -LONG DrvDescribePixelFormat(IN DHPDEV DPev, - IN LONG PixelFormat, - IN ULONG DescriptorSize, - OUT PPIXELFORMATDESCRIPTOR PFD); -VOID DrvDestroyFont(IN PFONTOBJ FontObj); -VOID DrvDisableDirectDraw(IN DHPDEV PDev); -VOID DrvDisableDriver(VOID); -VOID DrvDisablePDEV(IN DHPDEV PDev); -VOID DrvDisableSurface(IN DHPDEV PDev); -ULONG DrvDitherColor(IN DHPDEV DPev, - IN ULONG Mode, - IN ULONG RGB, - OUT PULONG DitherBits); -ULONG DrvDrawEscape(IN PSURFOBJ SurfObj, - IN ULONG EscCode, - IN PCLIPOBJ ClipObj, - IN PRECTL RectL, - IN ULONG InputSize, - IN PVOID *InputData); -BOOL DrvEnableDirectDraw(IN DHPDEV PDev, - IN PDD_CALLBACKS Callbacks, - IN PDD_SURFACECALLBACKS SurfaceCallbacks, - IN PDD_PALETTECALLBACKS PaletteCallbacks); -BOOL DrvEnableDriver(IN ULONG Version, - IN ULONG DEDSize, - OUT PDRVENABLEDATA DED); -DHPDEV DrvEnablePDEV(IN DEVMODEW *DM, - IN LPWSTR LogAddress, - IN ULONG PatternCount, - OUT HSURF *SurfPatterns, - IN ULONG CapsSize, - OUT ULONG *DevCaps, - IN ULONG DevInfoSize, - OUT DEVINFO *DI, - IN LPWSTR DevDataFile, - IN LPWSTR DeviceName, - IN HANDLE Driver); -HSURF DrvEnableSurface(IN DHPDEV PDev); -BOOL DrvEndDoc(IN PSURFOBJ SurfObj, - IN ULONG Flags); -ULONG DrvEscape(IN PSURFOBJ SurfObj, - IN ULONG EscCode, - IN ULONG InputSize, - IN PVOID *InputData, - IN ULONG OutputSize, - OUT PVOID *OutputData); -BOOL DrvFillPath(IN PSURFOBJ SurfObj, - IN PPATHOBJ PathObj, - IN PCLIPOBJ ClipObj, - IN PBRUSHOBJ BrushObj, - IN PPOINTL BrushOrg, - IN MIX Mix, - IN ULONG Options); -ULONG DrvFontManagement(IN PSURFOBJ SurfObj, - IN PFONTOBJ FontObj, - IN ULONG Mode, - IN ULONG InputSize, - IN PVOID InputData, - IN ULONG OutputSize, - OUT PVOID OutputData); -VOID DrvFree(IN PVOID Obj, - IN ULONG ID); -BOOL DrvGetDirectDrawInfo(IN DHPDEV PDev, - IN PDD_HALINFO HalInfo, - IN PDWORD NumHeaps, - IN PVIDEOMEMORY List, - IN PDWORD NumFourCCCodes, - IN PDWORD FourCC); -ULONG DrvGetGlyphMode(IN DHPDEV DPev, - IN PFONTOBJ FontObj); -ULONG DrvGetModes(IN HANDLE Driver, - IN ULONG DataSize, - OUT PDEVMODEW DM); -PVOID DrvGetTrueTypeFile(IN ULONG FileNumber, - IN PULONG Size); -BOOL DrvLineTo(IN PSURFOBJ SurfObj, - IN PCLIPOBJ ClipObj, - IN PBRUSHOBJ BrushObj, - IN LONG x1, - IN LONG y1, - IN LONG x2, - IN LONG y2, - IN PRECTL Bounds, - IN MIX Mix); -ULONG DrvLoadFontFile(IN ULONG FileNumber, - IN PVOID ViewData, - IN ULONG ViewSize, - IN ULONG LangID); -VOID DrvMovePointer(IN PSURFOBJ SurfObj, - IN LONG x, - IN LONG y, - IN PRECTL RectL); -BOOL DrvNextBand(IN PSURFOBJ SurfObj, - OUT PPOINTL PointL); -BOOL DrvPaint(IN PSURFOBJ SurfObj, - IN PCLIPOBJ ClipObj, - IN PBRUSHOBJ BrushObj, - IN PPOINTL BrushOrg, - IN MIX Mix); -BOOL DrvQueryAdvanceWidths(IN DHPDEV DPev, - IN PFONTOBJ FontObj, - IN ULONG Mode, - IN HGLYPH Glyph, - OUT PVOID *Widths, - IN ULONG NumGlyphs); -PIFIMETRICS DrvQueryFont(IN DHPDEV PDev, - IN ULONG FileNumber, - IN ULONG FaceIndex, - IN PULONG Identifier); -LONG DrvQueryFontCaps(IN ULONG CapsSize, - OUT PULONG CapsData); -LONG DrvQueryFontData(IN DHPDEV DPev, - IN PFONTOBJ FontObj, - IN ULONG Mode, - IN HGLYPH Glyph, - IN PGLYPHDATA GlyphData, - IN PVOID DataBuffer, - IN ULONG BufferSize); -LONG DrvQueryFontFile(IN ULONG FileNumber, - IN ULONG Mode, - IN ULONG BufSize, - OUT PULONG Buf); -PVOID DrvQueryFontTree(IN DHPDEV PDev, - IN ULONG FileNumber, - IN ULONG FaceIndex, - IN ULONG Mode, - OUT ULONG *ID); -BOOL DrvQuerySpoolType(DHPDEV PDev, - LPWSTR SpoolType); -LONG DrvQueryTrueTypeOutline(IN DHPDEV PDev, - IN PFONTOBJ FontObj, - IN HGLYPH Glyph, - IN BOOL MetricsOnly, - IN PGLYPHDATA GlyphData, - IN ULONG BufSize, - OUT PTTPOLYGONHEADER Polygons); -LONG DrvQueryTrueTypeTable(IN ULONG FileNumber, - IN ULONG Font, - IN ULONG Tag, - IN PTRDIFF Start, - IN ULONG BufSize, - OUT BYTE *Buf); -BOOL DrvRealizeBrush(IN PBRUSHOBJ BrushObj, - IN PSURFOBJ TargetSurface, - IN PSURFOBJ PatternSurface, - IN PSURFOBJ MaskSurface, - IN PXLATEOBJ XLateObj, - IN ULONG iHatch); -BOOL DrvResetPDEV(IN DHPDEV PDevOld, - IN DHPDEV PDevNew); -ULONG DrvSaveScreenBits(IN PSURFOBJ SurfObj, - IN ULONG Mode, - IN ULONG ID, - IN PRECTL RectL); -BOOL DrvSendPage(IN PSURFOBJ SurfObj); -BOOL DrvSetPalette(IN DHPDEV PDev, - IN PPALOBJ PaletteObj, - IN ULONG Flags, - IN ULONG Start, - IN ULONG NumColors); -ULONG DrvSetPointerShape(IN PSURFOBJ SurfObj, - IN PSURFOBJ MaskSurface, - IN PSURFOBJ ColorSurface, - IN PXLATEOBJ XLateObj, - IN LONG xHot, - IN LONG yHot, - IN LONG x, - IN LONG y, - IN PRECTL RectL, - IN ULONG Flags); -BOOL DrvStartBanding(IN PSURFOBJ SurfObj, - IN PPOINTL PointL); -BOOL DrvStartDoc(IN PSURFOBJ SurfObj, - IN LPWSTR DocName, - IN DWORD JobID); -BOOL DrvStartPage(IN PSURFOBJ SurfObj); +BOOL STDCALL +DrvAssertMode(IN DHPDEV PDev, + IN BOOL ShouldEnable); +BOOL STDCALL +DrvBitBlt(IN PSURFOBJ DestSurface, + IN PSURFOBJ SrcSurface, + IN PSURFOBJ MaskSurface, + IN PCLIPOBJ ClipObj, + IN PXLATEOBJ XLateObj, + IN PRECTL DestRectL, + IN PPOINTL SrcPointL, + IN PPOINTL MaskPointL, + IN PBRUSHOBJ BrushObj, + IN PPOINTL BrushPointL, + IN ROP4 RasterOp); +VOID STDCALL +DrvCompletePDEV(IN DHPDEV PDev, + IN HDEV Dev); +BOOL STDCALL +DrvCopyBits(OUT PSURFOBJ DestSurface, + IN PSURFOBJ SrcSurface, + IN PCLIPOBJ ClipObj, + IN PXLATEOBJ XLateObj, + IN PRECTL DestRectL, + IN PPOINTL SrcPointL); +HBITMAP STDCALL +DrvCreateDeviceBitmap(IN DHPDEV DPev, + IN SIZEL SizeL, + IN ULONG Format); +VOID STDCALL +DrvDeleteDeviceBitmap(IN DHSURF Surface); +LONG STDCALL +DrvDescribePixelFormat(IN DHPDEV DPev, + IN LONG PixelFormat, + IN ULONG DescriptorSize, + OUT PPIXELFORMATDESCRIPTOR PFD); +VOID STDCALL +DrvDestroyFont(IN PFONTOBJ FontObj); +VOID STDCALL +DrvDisableDirectDraw(IN DHPDEV PDev); +VOID STDCALL +DrvDisableDriver(VOID); +VOID STDCALL +DrvDisablePDEV(IN DHPDEV PDev); +VOID STDCALL +DrvDisableSurface(IN DHPDEV PDev); +ULONG STDCALL +DrvDitherColor(IN DHPDEV DPev, + IN ULONG Mode, + IN ULONG RGB, + OUT PULONG DitherBits); +ULONG STDCALL +DrvDrawEscape(IN PSURFOBJ SurfObj, + IN ULONG EscCode, + IN PCLIPOBJ ClipObj, + IN PRECTL RectL, + IN ULONG InputSize, + IN PVOID *InputData); +BOOL STDCALL +DrvEnableDirectDraw(IN DHPDEV PDev, + IN PDD_CALLBACKS Callbacks, + IN PDD_SURFACECALLBACKS SurfaceCallbacks, + IN PDD_PALETTECALLBACKS PaletteCallbacks); +BOOL STDCALL +DrvEnableDriver(IN ULONG Version, + IN ULONG DEDSize, + OUT PDRVENABLEDATA DED); +DHPDEV STDCALL +DrvEnablePDEV(IN DEVMODEW *DM, + IN LPWSTR LogAddress, + IN ULONG PatternCount, + OUT HSURF *SurfPatterns, + IN ULONG CapsSize, + OUT ULONG *DevCaps, + IN ULONG DevInfoSize, + OUT DEVINFO *DI, + IN LPWSTR DevDataFile, + IN LPWSTR DeviceName, + IN HANDLE Driver); +HSURF STDCALL +DrvEnableSurface(IN DHPDEV PDev); +BOOL STDCALL +DrvEndDoc(IN PSURFOBJ SurfObj, + IN ULONG Flags); +ULONG STDCALL +DrvEscape(IN PSURFOBJ SurfObj, + IN ULONG EscCode, + IN ULONG InputSize, + IN PVOID *InputData, + IN ULONG OutputSize, + OUT PVOID *OutputData); +BOOL STDCALL +DrvFillPath(IN PSURFOBJ SurfObj, + IN PPATHOBJ PathObj, + IN PCLIPOBJ ClipObj, + IN PBRUSHOBJ BrushObj, + IN PPOINTL BrushOrg, + IN MIX Mix, + IN ULONG Options); +ULONG STDCALL +DrvFontManagement(IN PSURFOBJ SurfObj, + IN PFONTOBJ FontObj, + IN ULONG Mode, + IN ULONG InputSize, + IN PVOID InputData, + IN ULONG OutputSize, + OUT PVOID OutputData); +VOID STDCALL +DrvFree(IN PVOID Obj, + IN ULONG ID); +BOOL STDCALL +DrvGetDirectDrawInfo(IN DHPDEV PDev, + IN PDD_HALINFO HalInfo, + IN PDWORD NumHeaps, + IN PVIDEOMEMORY List, + IN PDWORD NumFourCCCodes, + IN PDWORD FourCC); +ULONG STDCALL +DrvGetGlyphMode(IN DHPDEV DPev, + IN PFONTOBJ FontObj); +ULONG STDCALL +DrvGetModes(IN HANDLE Driver, + IN ULONG DataSize, + OUT PDEVMODEW DM); +PVOID STDCALL +DrvGetTrueTypeFile(IN ULONG FileNumber, + IN PULONG Size); +BOOL STDCALL +DrvLineTo(IN PSURFOBJ SurfObj, + IN PCLIPOBJ ClipObj, + IN PBRUSHOBJ BrushObj, + IN LONG x1, + IN LONG y1, + IN LONG x2, + IN LONG y2, + IN PRECTL Bounds, + IN MIX Mix); +ULONG STDCALL +DrvLoadFontFile(IN ULONG FileNumber, + IN PVOID ViewData, + IN ULONG ViewSize, + IN ULONG LangID); +VOID STDCALL +DrvMovePointer(IN PSURFOBJ SurfObj, + IN LONG x, + IN LONG y, + IN PRECTL RectL); +BOOL STDCALL +DrvNextBand(IN PSURFOBJ SurfObj, + OUT PPOINTL PointL); +BOOL STDCALL +DrvPaint(IN PSURFOBJ SurfObj, + IN PCLIPOBJ ClipObj, + IN PBRUSHOBJ BrushObj, + IN PPOINTL BrushOrg, + IN MIX Mix); +BOOL STDCALL +DrvQueryAdvanceWidths(IN DHPDEV DPev, + IN PFONTOBJ FontObj, + IN ULONG Mode, + IN HGLYPH Glyph, + OUT PVOID *Widths, + IN ULONG NumGlyphs); +PIFIMETRICS STDCALL +DrvQueryFont(IN DHPDEV PDev, + IN ULONG FileNumber, + IN ULONG FaceIndex, + IN PULONG Identifier); +LONG STDCALL +DrvQueryFontCaps(IN ULONG CapsSize, + OUT PULONG CapsData); +LONG STDCALL +DrvQueryFontData(IN DHPDEV DPev, + IN PFONTOBJ FontObj, + IN ULONG Mode, + IN HGLYPH Glyph, + IN PGLYPHDATA GlyphData, + IN PVOID DataBuffer, + IN ULONG BufferSize); +LONG STDCALL +DrvQueryFontFile(IN ULONG FileNumber, + IN ULONG Mode, + IN ULONG BufSize, + OUT PULONG Buf); +PVOID STDCALL +DrvQueryFontTree(IN DHPDEV PDev, + IN ULONG FileNumber, + IN ULONG FaceIndex, + IN ULONG Mode, + OUT ULONG *ID); +BOOL STDCALL +DrvQuerySpoolType(DHPDEV PDev, + LPWSTR SpoolType); +LONG STDCALL +DrvQueryTrueTypeOutline(IN DHPDEV PDev, + IN PFONTOBJ FontObj, + IN HGLYPH Glyph, + IN BOOL MetricsOnly, + IN PGLYPHDATA GlyphData, + IN ULONG BufSize, + OUT PTTPOLYGONHEADER Polygons); +LONG STDCALL +DrvQueryTrueTypeTable(IN ULONG FileNumber, + IN ULONG Font, + IN ULONG Tag, + IN PTRDIFF Start, + IN ULONG BufSize, + OUT BYTE *Buf); +BOOL STDCALL +DrvRealizeBrush(IN PBRUSHOBJ BrushObj, + IN PSURFOBJ TargetSurface, + IN PSURFOBJ PatternSurface, + IN PSURFOBJ MaskSurface, + IN PXLATEOBJ XLateObj, + IN ULONG iHatch); +BOOL STDCALL +DrvResetPDEV(IN DHPDEV PDevOld, + IN DHPDEV PDevNew); +ULONG STDCALL +DrvSaveScreenBits(IN PSURFOBJ SurfObj, + IN ULONG Mode, + IN ULONG ID, + IN PRECTL RectL); +BOOL STDCALL +DrvSendPage(IN PSURFOBJ SurfObj); +BOOL STDCALL +DrvSetPalette(IN DHPDEV PDev, + IN PPALOBJ PaletteObj, + IN ULONG Flags, + IN ULONG Start, + IN ULONG NumColors); +ULONG STDCALL +DrvSetPointerShape(IN PSURFOBJ SurfObj, + IN PSURFOBJ MaskSurface, + IN PSURFOBJ ColorSurface, + IN PXLATEOBJ XLateObj, + IN LONG xHot, + IN LONG yHot, + IN LONG x, + IN LONG y, + IN PRECTL RectL, + IN ULONG Flags); +BOOL STDCALL +DrvStartBanding(IN PSURFOBJ SurfObj, + IN PPOINTL PointL); +BOOL STDCALL +DrvStartDoc(IN PSURFOBJ SurfObj, + IN LPWSTR DocName, + IN DWORD JobID); +BOOL STDCALL +DrvStartPage(IN PSURFOBJ SurfObj); BOOL DrvStretchBlt(IN PSURFOBJ DestSurface, IN PSURFOBJ SrcSurface, IN PSURFOBJ MaskSurface, @@ -891,37 +941,51 @@ BOOL DrvStretchBlt(IN PSURFOBJ DestSurface, IN PRECTL Src, IN PPOINTL Mask, IN ULONG Mode); -BOOL DrvStrokeAndFillPath(IN PSURFOBJ SurfObj, - IN PPATHOBJ PathObj, - IN PCLIPOBJ ClipObj, - IN PXFORMOBJ XFormObj, - IN PBRUSHOBJ StrokeBrush, - IN PLINEATTRS LineAttrs, - IN PBRUSHOBJ FillBrush, - IN PPOINTL BrushOrg, - IN MIX MixFill, - IN ULONG Options); -BOOL DrvStrokePath(IN PSURFOBJ SurfObj, - IN PPATHOBJ PathObj, - IN PCLIPOBJ PClipObj, - IN PXFORMOBJ XFormObj, - IN PBRUSHOBJ BrushObj, - IN PPOINTL BrushOrg, - IN PLINEATTRS LineAttrs, - IN MIX Mix); -VOID DrvSynchronize(IN DHPDEV PDev, - IN PRECTL RectL); -BOOL DrvTextOut(IN PSURFOBJ SurfObj, - IN PSTROBJ StrObj, - IN PFONTOBJ FontObj, - IN PCLIPOBJ ClipObj, - IN PRECTL ExtraRect, - IN PRECTL OpaqueRect, - IN PBRUSHOBJ ForegroundBrush, - IN PBRUSHOBJ OpaqueBrush, - IN PPOINTL OrgPoint, - IN MIX Mix); -BOOL DrvUnloadFontFile(IN ULONG FileNumber); +BOOL STDCALL +DrvStrokeAndFillPath(IN PSURFOBJ SurfObj, + IN PPATHOBJ PathObj, + IN PCLIPOBJ ClipObj, + IN PXFORMOBJ XFormObj, + IN PBRUSHOBJ StrokeBrush, + IN PLINEATTRS LineAttrs, + IN PBRUSHOBJ FillBrush, + IN PPOINTL BrushOrg, + IN MIX MixFill, + IN ULONG Options); +BOOL STDCALL +DrvStrokePath(IN PSURFOBJ SurfObj, + IN PPATHOBJ PathObj, + IN PCLIPOBJ PClipObj, + IN PXFORMOBJ XFormObj, + IN PBRUSHOBJ BrushObj, + IN PPOINTL BrushOrg, + IN PLINEATTRS LineAttrs, + IN MIX Mix); +VOID STDCALL +DrvSynchronize(IN DHPDEV PDev, + IN PRECTL RectL); +BOOL STDCALL +DrvTextOut(IN PSURFOBJ SurfObj, + IN PSTROBJ StrObj, + IN PFONTOBJ FontObj, + IN PCLIPOBJ ClipObj, + IN PRECTL ExtraRect, + IN PRECTL OpaqueRect, + IN PBRUSHOBJ ForegroundBrush, + IN PBRUSHOBJ OpaqueBrush, + IN PPOINTL OrgPoint, + IN MIX Mix); +BOOL STDCALL +DrvTransparentBlt(PSURFOBJ Dest, + PSURFOBJ Source, + PCLIPOBJ Clip, + PXLATEOBJ ColorTranslation, + PRECTL DestRect, + PRECTL SourceRect, + ULONG TransparentColor, + ULONG Reserved); +BOOL STDCALL +DrvUnloadFontFile(IN ULONG FileNumber); /* DDI --> GDI calls */ PVOID BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj, @@ -944,16 +1008,19 @@ EngAcquireSemaphore /* FIXME: find correct defines for following symbols */ #define FL_ZERO_MEMORY 1 -PVOID APIENTRY EngAllocMem(ULONG Flags, - ULONG MemSize, - ULONG Tag); +PVOID STDCALL +EngAllocMem(ULONG Flags, + ULONG MemSize, + ULONG Tag); -PVOID STDCALL EngAllocUserMem(ULONG cj, - ULONG tag); +PVOID STDCALL +EngAllocUserMem(ULONG cj, + ULONG tag); -BOOL EngAssociateSurface(IN HSURF Surface, - IN HDEV Dev, - IN ULONG Hooks); +BOOL +EngAssociateSurface(IN HSURF Surface, + IN HDEV Dev, + IN ULONG Hooks); /* EngBitBlt @@ -962,32 +1029,36 @@ EngComputeGlyphSet EngCopyBits */ -HBITMAP EngCreateBitmap(IN SIZEL Size, - IN LONG Width, - IN ULONG Format, - IN ULONG Flags, - IN PVOID Bits); +HBITMAP +EngCreateBitmap(IN SIZEL Size, + IN LONG Width, + IN ULONG Format, + IN ULONG Flags, + IN PVOID Bits); /* EngCreateClip EngCreateDeviceBitmap */ -HSURF EngCreateDeviceSurface(IN DHSURF Surface, - IN SIZEL Size, - IN ULONG FormatVersion); +HSURF +EngCreateDeviceSurface(IN DHSURF Surface, + IN SIZEL Size, + IN ULONG FormatVersion); /* EngCreateDriverObj EngCreateEvent */ -HPALETTE EngCreatePalette(IN ULONG Mode, - IN ULONG NumColors, - IN PULONG *Colors, - IN ULONG Red, - IN ULONG Green, - IN ULONG Blue); +HPALETTE +EngCreatePalette(IN ULONG Mode, + IN ULONG NumColors, + IN PULONG *Colors, + IN ULONG Red, + IN ULONG Green, + IN ULONG Blue); + /* EngCreatePath EngCreateSemaphore @@ -995,24 +1066,10 @@ EngCreateWnd EngDebugBreak = NTOSKRNL.DbgBreakPoint */ -VOID APIENTRY EngDebugPrint(PCHAR StandardPrefix, - PCHAR DebugMessage, - va_list ArgList); - -HANDLE STDCALL EngLoadImage(LPWSTR DriverName); - -DWORD APIENTRY EngDeviceIoControl( - HANDLE hDevice, - DWORD dwIoControlCode, - LPVOID lpInBuffer, - DWORD nInBufferSize, - LPVOID lpOutBuffer, - DWORD nOutBufferSize, - DWORD *lpBytesReturned); - -VOID STDCALL EngFreeMem(PVOID Mem); - -VOID STDCALL EngFreeUserMem(PVOID pv); +VOID APIENTRY +EngDebugPrint(PCHAR StandardPrefix, + PCHAR DebugMessage, + va_list ArgList); /* EngDeleteClip @@ -1023,11 +1080,33 @@ EngDeletePath EngDeleteSemaphore EngDeleteSurface EngDeleteWnd +*/ + + +DWORD APIENTRY +EngDeviceIoControl(HANDLE hDevice, + DWORD dwIoControlCode, + LPVOID lpInBuffer, + DWORD nInBufferSize, + LPVOID lpOutBuffer, + DWORD nOutBufferSize, + DWORD *lpBytesReturned); + +/* EngEnumForms EngEraseSurface EngFillPath EngFindImageProcAddress EngFindResource +*/ + +VOID STDCALL +EngFreeMem(PVOID Mem); + +VOID STDCALL +EngFreeUserMem(PVOID pv); + +/* EngFreeModule EngGetCurrentCodePage EngGetDriverName @@ -1041,7 +1120,12 @@ EngGetPrinterDataFileName EngGetProcessHandle EngGetType1FontList EngLineTo -EngLoadImage +*/ + +HANDLE STDCALL +EngLoadImage(LPWSTR DriverName); + +/* EngLoadModule EngLoadModuleForWrite EngLockDriverObj diff --git a/reactos/include/win32k/driver.h b/reactos/include/win32k/driver.h index 6e537cdc56d..ccd4e162d4c 100644 --- a/reactos/include/win32k/driver.h +++ b/reactos/include/win32k/driver.h @@ -4,8 +4,8 @@ #include -typedef BOOL (*PGD_ENABLEDRIVER)(ULONG, ULONG, PDRVENABLEDATA); -typedef DHPDEV (*PGD_ENABLEPDEV)(DEVMODEW *, +typedef BOOL STDCALL (*PGD_ENABLEDRIVER)(ULONG, ULONG, PDRVENABLEDATA); +typedef DHPDEV STDCALL (*PGD_ENABLEPDEV)(DEVMODEW *, LPWSTR, ULONG, HSURF *, @@ -16,79 +16,79 @@ typedef DHPDEV (*PGD_ENABLEPDEV)(DEVMODEW *, LPWSTR, LPWSTR, HANDLE); -typedef VOID (*PGD_COMPLETEPDEV)(DHPDEV, HDEV); -typedef VOID (*PGD_DISABLEPDEV)(DHPDEV); -typedef HSURF (*PGD_ENABLESURFACE)(DHPDEV); -typedef VOID (*PGD_DISABLESURFACE)(DHPDEV); -typedef VOID (*PGD_ASSERTMODE)(DHPDEV, BOOL); -typedef BOOL (*PGD_RESETPDEV)(DHPDEV, DHPDEV); -typedef HBITMAP (*PGD_CREATEDEVICEBITMAP)(DHPDEV, SIZEL, ULONG); -typedef VOID (*PGD_DELETEDEVICEBITMAP)(DHSURF); -typedef BOOL (*PGD_REALIZEBRUSH)(PBRUSHOBJ, PSURFOBJ, PSURFOBJ, PSURFOBJ, +typedef VOID STDCALL (*PGD_COMPLETEPDEV)(DHPDEV, HDEV); +typedef VOID STDCALL (*PGD_DISABLEPDEV)(DHPDEV); +typedef HSURF STDCALL (*PGD_ENABLESURFACE)(DHPDEV); +typedef VOID STDCALL (*PGD_DISABLESURFACE)(DHPDEV); +typedef BOOL STDCALL (*PGD_ASSERTMODE)(DHPDEV, BOOL); +typedef BOOL STDCALL (*PGD_RESETPDEV)(DHPDEV, DHPDEV); +typedef HBITMAP STDCALL (*PGD_CREATEDEVICEBITMAP)(DHPDEV, SIZEL, ULONG); +typedef VOID STDCALL (*PGD_DELETEDEVICEBITMAP)(DHSURF); +typedef BOOL STDCALL (*PGD_REALIZEBRUSH)(PBRUSHOBJ, PSURFOBJ, PSURFOBJ, PSURFOBJ, PXLATEOBJ, ULONG); -typedef ULONG (*PGD_DITHERCOLOR)(DHPDEV, ULONG, ULONG, PULONG); -typedef BOOL (*PGD_STROKEPATH)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, PXFORMOBJ, +typedef ULONG STDCALL (*PGD_DITHERCOLOR)(DHPDEV, ULONG, ULONG, PULONG); +typedef BOOL STDCALL (*PGD_STROKEPATH)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, PXFORMOBJ, PBRUSHOBJ, PPOINTL, PLINEATTRS, MIX); -typedef BOOL (*PGD_FILLPATH)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, PBRUSHOBJ, +typedef BOOL STDCALL (*PGD_FILLPATH)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, PBRUSHOBJ, PPOINTL, MIX, ULONG); -typedef BOOL (*PGD_STROKEANDFILLPATH)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, +typedef BOOL STDCALL (*PGD_STROKEANDFILLPATH)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, PXFORMOBJ, PBRUSHOBJ, PLINEATTRS, PBRUSHOBJ, PPOINTL, MIX, ULONG); -typedef BOOL (*PGD_PAINT)(PSURFOBJ, PCLIPOBJ, PBRUSHOBJ, PPOINTL, MIX); -typedef BOOL (*PGD_BITBLT)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PCLIPOBJ, +typedef BOOL STDCALL (*PGD_PAINT)(PSURFOBJ, PCLIPOBJ, PBRUSHOBJ, PPOINTL, MIX); +typedef BOOL STDCALL (*PGD_BITBLT)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PCLIPOBJ, PXLATEOBJ, PRECTL, PPOINTL, PPOINTL, PBRUSHOBJ, PPOINTL, ROP4); -typedef BOOL (*PGD_TRANSPARENTBLT)(PSURFOBJ, PSURFOBJ, PCLIPOBJ, PXLATEOBJ, PRECTL, PRECTL, ULONG, ULONG); -typedef BOOL (*PGD_COPYBITS)(PSURFOBJ, PSURFOBJ, PCLIPOBJ, PXLATEOBJ, +typedef BOOL STDCALL (*PGD_TRANSPARENTBLT)(PSURFOBJ, PSURFOBJ, PCLIPOBJ, PXLATEOBJ, PRECTL, PRECTL, ULONG, ULONG); +typedef BOOL STDCALL (*PGD_COPYBITS)(PSURFOBJ, PSURFOBJ, PCLIPOBJ, PXLATEOBJ, PRECTL, PPOINTL); -typedef BOOL (*PGD_STRETCHBLT)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PCLIPOBJ, +typedef BOOL STDCALL (*PGD_STRETCHBLT)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PCLIPOBJ, PXLATEOBJ, PCOLORADJUSTMENT, PPOINTL, PRECTL, PRECTL, PPOINTL, ULONG); -typedef BOOL (*PGD_SETPALETTE)(DHPDEV, PPALOBJ, ULONG, ULONG, ULONG); -typedef BOOL (*PGD_TEXTOUT)(PSURFOBJ, PSTROBJ, PFONTOBJ, PCLIPOBJ, PRECTL, +typedef BOOL STDCALL (*PGD_SETPALETTE)(DHPDEV, PPALOBJ, ULONG, ULONG, ULONG); +typedef BOOL STDCALL (*PGD_TEXTOUT)(PSURFOBJ, PSTROBJ, PFONTOBJ, PCLIPOBJ, PRECTL, PRECTL, PBRUSHOBJ, PBRUSHOBJ, PPOINTL, MIX); -typedef ULONG (*PGD_ESCAPE)(PSURFOBJ, ULONG, ULONG, PVOID *, ULONG, PVOID *); -typedef ULONG (*PGD_DRAWESCAPE)(PSURFOBJ, ULONG, PCLIPOBJ, PRECTL, ULONG, +typedef ULONG STDCALL (*PGD_ESCAPE)(PSURFOBJ, ULONG, ULONG, PVOID *, ULONG, PVOID *); +typedef ULONG STDCALL (*PGD_DRAWESCAPE)(PSURFOBJ, ULONG, PCLIPOBJ, PRECTL, ULONG, PVOID *); -typedef PIFIMETRICS (*PGD_QUERYFONT)(DHPDEV, ULONG, ULONG, PULONG); -typedef PVOID (*PGD_QUERYFONTTREE)(DHPDEV, ULONG, ULONG, ULONG, PULONG); -typedef LONG (*PGD_QUERYFONTDATA)(DHPDEV, PFONTOBJ, ULONG, HGLYPH, PGLYPHDATA, +typedef PIFIMETRICS STDCALL (*PGD_QUERYFONT)(DHPDEV, ULONG, ULONG, PULONG); +typedef PVOID STDCALL (*PGD_QUERYFONTTREE)(DHPDEV, ULONG, ULONG, ULONG, PULONG); +typedef LONG STDCALL (*PGD_QUERYFONTDATA)(DHPDEV, PFONTOBJ, ULONG, HGLYPH, PGLYPHDATA, PVOID, ULONG); -typedef ULONG (*PGD_SETPOINTERSHAPE)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PXLATEOBJ, +typedef ULONG STDCALL (*PGD_SETPOINTERSHAPE)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PXLATEOBJ, LONG, LONG, LONG, LONG, PRECTL, ULONG); -typedef VOID (*PGD_MOVEPOINTER)(PSURFOBJ, LONG, LONG, PRECTL); -typedef BOOL (*PGD_LINETO)(PSURFOBJ, PCLIPOBJ, PBRUSHOBJ, LONG, LONG, LONG, - LONG, PRECTL, MIX); -typedef BOOL (*PGD_SENDPAGE)(PSURFOBJ); -typedef BOOL (*PGD_STARTPAGE)(PSURFOBJ); -typedef BOOL (*PGD_ENDDOC)(PSURFOBJ, ULONG); -typedef BOOL (*PGD_STARTDOC)(PSURFOBJ, PWSTR, DWORD); -typedef ULONG (*PGD_GETGLYPHMODE)(DHPDEV, PFONTOBJ); -typedef VOID (*PGD_SYNCHRONIZE)(DHPDEV, PRECTL); -typedef ULONG (*PGD_SAVESCREENBITS)(PSURFOBJ, ULONG, ULONG, PRECTL); -typedef ULONG (*PGD_GETMODES)(HANDLE, ULONG, PDEVMODEW); -typedef VOID (*PGD_FREE)(PVOID, ULONG); -typedef VOID (*PGD_DESTROYFONT)(PFONTOBJ); -typedef LONG (*PGD_QUERYFONTCAPS)(ULONG, PULONG); -typedef ULONG (*PGD_LOADFONTFILE)(ULONG, PVOID, ULONG, ULONG); -typedef BOOL (*PGD_UNLOADFONTFILE)(ULONG); -typedef ULONG (*PGD_FONTMANAGEMENT)(PSURFOBJ, PFONTOBJ, ULONG, ULONG, PVOID, - ULONG, PVOID); -typedef LONG (*PGD_QUERYTRUETYPETABLE)(ULONG, ULONG, ULONG, PTRDIFF, ULONG, - PBYTE); -typedef LONG (*PGD_QUERYTRUETYPEOUTLINE)(DHPDEV, PFONTOBJ, HGLYPH, BOOL, - PGLYPHDATA, ULONG, PTTPOLYGONHEADER); -typedef PVOID (*PGD_GETTRUETYPEFILE)(ULONG, PULONG); -typedef LONG (*PGD_QUERYFONTFILE)(ULONG, ULONG, ULONG, PULONG); -typedef BOOL (*PGD_QUERYADVANCEWIDTHS)(DHPDEV, PFONTOBJ, ULONG, HGLYPH *, - PVOID *, ULONG); -typedef BOOL (*PGD_SETPIXELFORMAT)(PSURFOBJ, LONG, ULONG); -typedef LONG (*PGD_DESCRIBEPIXELFORMAT)(DHPDEV, LONG, ULONG, - PPIXELFORMATDESCRIPTOR); -typedef BOOL (*PGD_SWAPBUFFERS)(PSURFOBJ, PWNDOBJ); -typedef BOOL (*PGD_STARTBANDING)(PSURFOBJ, PPOINTL); -typedef BOOL (*PGD_NEXTBAND)(PSURFOBJ, PPOINTL); -typedef LONG (*PGD_QUERYSPOOLTYPE)(DHPDEV, LPWSTR); +typedef VOID STDCALL (*PGD_MOVEPOINTER)(PSURFOBJ, LONG, LONG, PRECTL); +typedef BOOL STDCALL (*PGD_LINETO)(PSURFOBJ, PCLIPOBJ, PBRUSHOBJ, LONG, LONG, LONG, + LONG, PRECTL, MIX); +typedef BOOL STDCALL (*PGD_SENDPAGE)(PSURFOBJ); +typedef BOOL STDCALL (*PGD_STARTPAGE)(PSURFOBJ); +typedef BOOL STDCALL (*PGD_ENDDOC)(PSURFOBJ, ULONG); +typedef BOOL STDCALL (*PGD_STARTDOC)(PSURFOBJ, PWSTR, DWORD); +typedef ULONG STDCALL (*PGD_GETGLYPHMODE)(DHPDEV, PFONTOBJ); +typedef VOID STDCALL (*PGD_SYNCHRONIZE)(DHPDEV, PRECTL); +typedef ULONG STDCALL (*PGD_SAVESCREENBITS)(PSURFOBJ, ULONG, ULONG, PRECTL); +typedef ULONG STDCALL (*PGD_GETMODES)(HANDLE, ULONG, PDEVMODEW); +typedef VOID STDCALL (*PGD_FREE)(PVOID, ULONG); +typedef VOID STDCALL (*PGD_DESTROYFONT)(PFONTOBJ); +typedef LONG STDCALL (*PGD_QUERYFONTCAPS)(ULONG, PULONG); +typedef ULONG STDCALL (*PGD_LOADFONTFILE)(ULONG, PVOID, ULONG, ULONG); +typedef BOOL STDCALL (*PGD_UNLOADFONTFILE)(ULONG); +typedef ULONG STDCALL (*PGD_FONTMANAGEMENT)(PSURFOBJ, PFONTOBJ, ULONG, ULONG, PVOID, + ULONG, PVOID); +typedef LONG STDCALL (*PGD_QUERYTRUETYPETABLE)(ULONG, ULONG, ULONG, PTRDIFF, ULONG, + PBYTE); +typedef LONG STDCALL (*PGD_QUERYTRUETYPEOUTLINE)(DHPDEV, PFONTOBJ, HGLYPH, BOOL, + PGLYPHDATA, ULONG, PTTPOLYGONHEADER); +typedef PVOID STDCALL (*PGD_GETTRUETYPEFILE)(ULONG, PULONG); +typedef LONG STDCALL (*PGD_QUERYFONTFILE)(ULONG, ULONG, ULONG, PULONG); +typedef BOOL STDCALL (*PGD_QUERYADVANCEWIDTHS)(DHPDEV, PFONTOBJ, ULONG, HGLYPH *, + PVOID *, ULONG); +typedef BOOL STDCALL (*PGD_SETPIXELFORMAT)(PSURFOBJ, LONG, ULONG); +typedef LONG STDCALL (*PGD_DESCRIBEPIXELFORMAT)(DHPDEV, LONG, ULONG, + PPIXELFORMATDESCRIPTOR); +typedef BOOL STDCALL (*PGD_SWAPBUFFERS)(PSURFOBJ, PWNDOBJ); +typedef BOOL STDCALL (*PGD_STARTBANDING)(PSURFOBJ, PPOINTL); +typedef BOOL STDCALL (*PGD_NEXTBAND)(PSURFOBJ, PPOINTL); +typedef LONG STDCALL (*PGD_QUERYSPOOLTYPE)(DHPDEV, LPWSTR); typedef struct _DRIVER_FUNCTIONS