fix include guard, use winddi types instead of ros specific function pointer types, add a bunch of static asserts to make sure the DRIVRE_FUNCTIONS structure matches the array.

svn path=/trunk/; revision=40386
This commit is contained in:
Timo Kreuzer 2009-04-06 02:13:44 +00:00
parent dc1bfc0941
commit 595ee18b02
5 changed files with 170 additions and 149 deletions

View file

@ -216,7 +216,7 @@ typedef DWORD LFTYPE;
typedef PVOID KERNEL_PVOID;
typedef PVOID PUMDHPDEV;
typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;
#if !defined(__WINDDI_H)
#if !defined(_WINDDI_)
typedef LONG FIX;
#endif
@ -533,78 +533,11 @@ typedef struct _GDIBSOBJECT
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);
//
// Declarations missing in ddk/winddi.h
//
typedef VOID (APIENTRY *PFN_DrvMovePanning)(LONG, LONG, FLONG);
//typedef BOOL (APIENTRY *PFN_DrvOffset)(SURFOBJ*, LONG, LONG, FLONG);
//
@ -612,81 +545,81 @@ typedef VOID (APIENTRY *PFN_DrvMovePanning)(LONG, LONG, FLONG);
//
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;
PFN_DrvEnablePDEV EnablePDEV;
PFN_DrvCompletePDEV CompletePDEV;
PFN_DrvDisablePDEV DisablePDEV;
PFN_DrvEnableSurface EnableSurface;
PFN_DrvDisableSurface DisableSurface;
PFN_DrvAssertMode AssertMode;
PFN_DrvOffset Offset;
PFN_DrvResetDevice ResetPDEV;
PFN_DrvDisableDriver 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;
PFN_DrvCreateDeviceBitmap CreateDeviceBitmap;
PFN_DrvDeleteDeviceBitmap DeleteDeviceBitmap;
PFN_DrvRealizeBrush RealizeBrush;
PFN_DrvDitherColor DitherColor;
PFN_DrvStrokePath StrokePath;
PFN_DrvFillPath FillPath;
PFN_DrvStrokeAndFillPath StrokeAndFillPath;
PFN_DrvPaint Paint;
PFN_DrvBitBlt BitBlt;
PFN_DrvCopyBits CopyBits;
PFN_DrvStretchBlt 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;
PFN_DrvSetPalette SetPalette;
PFN_DrvTextOut TextOut;
PFN_DrvEscape Escape;
PFN_DrvDrawEscape DrawEscape;
PFN_DrvQueryFont QueryFont;
PFN_DrvQueryFontTree QueryFontTree;
PFN_DrvQueryFontData QueryFontData;
PFN_DrvSetPointerShape SetPointerShape;
PFN_DrvMovePointer MovePointer;
PFN_DrvLineTo LineTo;
PFN_DrvSendPage SendPage;
PFN_DrvStartPage StartPage;
PFN_DrvEndDoc EndDoc;
PFN_DrvStartDoc StartDoc;
PVOID Unknown3;
PGD_GETGLYPHMODE GetGlyphMode;
PGD_SYNCHRONIZE Synchronize;
PFN_DrvGetGlyphMode GetGlyphMode;
PFN_DrvSynchronize 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_DrvSaveScreenBits SaveScreenBits;
PFN_DrvGetModes GetModes;
PFN_DrvFree Free;
PFN_DrvDestroyFont DestroyFont;
PFN_DrvQueryFontCaps QueryFontCaps;
PFN_DrvLoadFontFile LoadFontFile;
PFN_DrvUnloadFontFile UnloadFontFile;
PFN_DrvFontManagement FontManagement;
PFN_DrvQueryTrueTypeTable QueryTrueTypeTable;
PFN_DrvQueryTrueTypeOutline QueryTrueTypeOutline;
PFN_DrvGetTrueTypeFile GetTrueTypeFile;
PFN_DrvQueryFontFile 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;
PFN_DrvQueryAdvanceWidths QueryAdvanceWidths;
PFN_DrvSetPixelFormat SetPixelFormat;
PFN_DrvDescribePixelFormat DescribePixelFormat;
PFN_DrvSwapBuffers SwapBuffers;
PFN_DrvStartBanding StartBanding;
PFN_DrvNextBand NextBand;
PFN_DrvGetDirectDrawInfo GetDirectDrawInfo;
PFN_DrvEnableDirectDraw EnableDirectDraw;
PFN_DrvDisableDirectDraw DisableDirectDraw;
PFN_DrvQuerySpoolType QuerySpoolType;
PVOID Unknown5;
PFN_DrvIcmCreateColorTransform IcmCreateColorTransform;
PFN_DrvIcmDeleteColorTransform IcmDeleteColorTransform;
PFN_DrvIcmCheckBitmapBits IcmCheckBitmapBits;
PFN_DrvIcmSetDeviceGammaRamp IcmSetDeviceGammaRamp;
PGD_GRADIENTFILL GradientFill;
PGD_STRETCHBLTROP StretchBltROP;
PFN_DrvGradientFill GradientFill;
PFN_DrvStretchBltROP StretchBltROP;
PFN_DrvPlgBlt PlgBlt;
PGD_ALPHABLEND AlphaBlend;
PFN_DrvAlphaBlend AlphaBlend;
PVOID SynthesizeFont;
PVOID GetSynthesizedFontFiles;
PGD_TRANSPARENTBLT TransparentBlt;
PFN_DrvTransparentBlt TransparentBlt;
PFN_DrvQueryPerBandInfo QueryPerBandInfo;
PFN_DrvQueryDeviceSupport QueryDeviceSupport;
PVOID Reserved1;
@ -700,14 +633,102 @@ typedef struct _DRIVER_FUNCTIONS
PFN_DrvDeriveSurface DeriveSurface;
PFN_DrvQueryGlyphAttrs QueryGlyphAttrs;
PFN_DrvNotify Notify;
PGD_SYNCHRONIZESURFACE SynchronizeSurface;
PFN_DrvSynchronizeSurface SynchronizeSurface;
PFN_DrvResetDevice ResetDevice;
PVOID Reserved9;
PVOID Reserved10;
PVOID Reserved11; /* 92 */
/* ReactOS specify */
PGD_ENABLEDRIVER EnableDriver; //ReactOS Extra
PFN_DrvEnableDriver EnableDriver; //ReactOS Extra
} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
#define ASSERT_PFN(pfn) \
C_ASSERT(FIELD_OFFSET(DRIVER_FUNCTIONS, pfn) == sizeof(PVOID) * INDEX_Drv##pfn)
ASSERT_PFN(EnablePDEV);
ASSERT_PFN(CompletePDEV);
ASSERT_PFN(DisablePDEV);
ASSERT_PFN(EnableSurface);
ASSERT_PFN(DisableSurface);
ASSERT_PFN(AssertMode);
ASSERT_PFN(Offset);
ASSERT_PFN(ResetPDEV);
ASSERT_PFN(DisableDriver);
ASSERT_PFN(CreateDeviceBitmap);
ASSERT_PFN(DeleteDeviceBitmap);
ASSERT_PFN(RealizeBrush);
ASSERT_PFN(DitherColor);
ASSERT_PFN(StrokePath);
ASSERT_PFN(FillPath);
ASSERT_PFN(StrokeAndFillPath);
ASSERT_PFN(Paint);
ASSERT_PFN(BitBlt);
ASSERT_PFN(CopyBits);
ASSERT_PFN(StretchBlt);
ASSERT_PFN(SetPalette);
ASSERT_PFN(TextOut);
ASSERT_PFN(Escape);
ASSERT_PFN(DrawEscape);
ASSERT_PFN(QueryFont);
ASSERT_PFN(QueryFontTree);
ASSERT_PFN(QueryFontData);
ASSERT_PFN(SetPointerShape);
ASSERT_PFN(MovePointer);
ASSERT_PFN(LineTo);
ASSERT_PFN(SendPage);
ASSERT_PFN(StartPage);
ASSERT_PFN(EndDoc);
ASSERT_PFN(StartDoc);
ASSERT_PFN(GetGlyphMode);
ASSERT_PFN(Synchronize);
ASSERT_PFN(SaveScreenBits);
ASSERT_PFN(GetModes);
ASSERT_PFN(Free);
ASSERT_PFN(DestroyFont);
ASSERT_PFN(QueryFontCaps);
ASSERT_PFN(LoadFontFile);
ASSERT_PFN(UnloadFontFile);
ASSERT_PFN(FontManagement);
ASSERT_PFN(QueryTrueTypeTable);
ASSERT_PFN(QueryTrueTypeOutline);
ASSERT_PFN(GetTrueTypeFile);
ASSERT_PFN(QueryFontFile);
ASSERT_PFN(MovePanning);
ASSERT_PFN(QueryAdvanceWidths);
ASSERT_PFN(SetPixelFormat);
ASSERT_PFN(DescribePixelFormat);
ASSERT_PFN(SwapBuffers);
ASSERT_PFN(StartBanding);
ASSERT_PFN(NextBand);
ASSERT_PFN(GetDirectDrawInfo);
ASSERT_PFN(EnableDirectDraw);
ASSERT_PFN(DisableDirectDraw);
ASSERT_PFN(QuerySpoolType);
ASSERT_PFN(IcmCreateColorTransform);
ASSERT_PFN(IcmDeleteColorTransform);
ASSERT_PFN(IcmCheckBitmapBits);
ASSERT_PFN(IcmSetDeviceGammaRamp);
ASSERT_PFN(GradientFill);
ASSERT_PFN(StretchBltROP);
ASSERT_PFN(PlgBlt);
ASSERT_PFN(AlphaBlend);
ASSERT_PFN(SynthesizeFont);
ASSERT_PFN(GetSynthesizedFontFiles);
ASSERT_PFN(TransparentBlt);
ASSERT_PFN(QueryPerBandInfo);
ASSERT_PFN(QueryDeviceSupport);
ASSERT_PFN(Reserved1);
ASSERT_PFN(Reserved2);
ASSERT_PFN(Reserved3);
ASSERT_PFN(Reserved4);
ASSERT_PFN(Reserved5);
ASSERT_PFN(Reserved6);
ASSERT_PFN(Reserved7);
ASSERT_PFN(Reserved8);
ASSERT_PFN(DeriveSurface);
ASSERT_PFN(QueryGlyphAttrs);
ASSERT_PFN(Notify);
ASSERT_PFN(SynchronizeSurface);
#endif

View file

@ -44,7 +44,7 @@ typedef struct _GDIPOINTER /* should stay private to ENG? No, part of PDEVOBJ ak
/* public pointer information */
RECTL Exclude; /* required publicly for SPS_ACCEPT_EXCLUDE */
PGD_MOVEPOINTER MovePointer;
PFN_DrvMovePointer MovePointer;
ULONG Status;
} GDIPOINTER, *PGDIPOINTER;

View file

@ -10,9 +10,9 @@
BOOL DRIVER_RegisterDriver(LPCWSTR Name, PGD_ENABLEDRIVER EnableDriver);
PGD_ENABLEDRIVER DRIVER_FindExistingDDIDriver(LPCWSTR Name);
PGD_ENABLEDRIVER DRIVER_FindDDIDriver(LPCWSTR Name);
BOOL DRIVER_RegisterDriver(LPCWSTR Name, PFN_DrvEnableDriver EnableDriver);
PFN_DrvEnableDriver DRIVER_FindExistingDDIDriver(LPCWSTR Name);
PFN_DrvEnableDriver DRIVER_FindDDIDriver(LPCWSTR Name);
PFILE_OBJECT DRIVER_FindMPDriver(ULONG DisplayNumber);
BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED,
PDRIVER_FUNCTIONS DF);

View file

@ -35,7 +35,7 @@
typedef struct _GRAPHICS_DRIVER
{
PWSTR Name;
PGD_ENABLEDRIVER EnableDriver;
PFN_DrvEnableDriver EnableDriver;
int ReferenceCount;
struct _GRAPHICS_DRIVER *Next;
} GRAPHICS_DRIVER, *PGRAPHICS_DRIVER;
@ -43,7 +43,7 @@ typedef struct _GRAPHICS_DRIVER
static PGRAPHICS_DRIVER DriverList;
static PGRAPHICS_DRIVER GenericDriver = NULL;
BOOL DRIVER_RegisterDriver(LPCWSTR Name, PGD_ENABLEDRIVER EnableDriver)
BOOL DRIVER_RegisterDriver(LPCWSTR Name, PFN_DrvEnableDriver EnableDriver)
{
PGRAPHICS_DRIVER Driver;
@ -79,7 +79,7 @@ BOOL DRIVER_RegisterDriver(LPCWSTR Name, PGD_ENABLEDRIVER EnableDriver)
return TRUE;
}
PGD_ENABLEDRIVER DRIVER_FindExistingDDIDriver(LPCWSTR Name)
PFN_DrvEnableDriver DRIVER_FindExistingDDIDriver(LPCWSTR Name)
{
GRAPHICS_DRIVER *Driver = DriverList;
while (Driver && Name)
@ -94,11 +94,11 @@ PGD_ENABLEDRIVER DRIVER_FindExistingDDIDriver(LPCWSTR Name)
return NULL;
}
PGD_ENABLEDRIVER DRIVER_FindDDIDriver(LPCWSTR Name)
PFN_DrvEnableDriver DRIVER_FindDDIDriver(LPCWSTR Name)
{
static WCHAR DefaultPath[] = L"\\SystemRoot\\System32\\";
static WCHAR DefaultExtension[] = L".DLL";
PGD_ENABLEDRIVER ExistingDriver;
PFN_DrvEnableDriver ExistingDriver;
SYSTEM_GDI_DRIVER_INFORMATION GdiDriverInfo;
NTSTATUS Status;
LPWSTR FullName;
@ -174,7 +174,7 @@ PGD_ENABLEDRIVER DRIVER_FindDDIDriver(LPCWSTR Name)
DRIVER_RegisterDriver( L"DISPLAY", GdiDriverInfo.EntryPoint);
DRIVER_RegisterDriver( FullName, GdiDriverInfo.EntryPoint);
ExFreePoolWithTag(FullName, TAG_DRIVER);
return (PGD_ENABLEDRIVER)GdiDriverInfo.EntryPoint;
return (PFN_DrvEnableDriver)GdiDriverInfo.EntryPoint;
}
#define BEGIN_FUNCTION_MAP() \

View file

@ -204,7 +204,7 @@ SetupDevMode(PDEVMODEW DevMode, ULONG DisplayNumber)
static BOOL FASTCALL
IntPrepareDriver()
{
PGD_ENABLEDRIVER GDEnableDriver;
PFN_DrvEnableDriver GDEnableDriver;
DRVENABLEDATA DED;
UNICODE_STRING DriverFileNames;
PWSTR CurrentName;
@ -326,7 +326,7 @@ IntPrepareDriver()
HS_DDI_MAX,
PrimarySurface.FillPatterns,
sizeof(PrimarySurface.GDIInfo),
(ULONG *) &PrimarySurface.GDIInfo,
&PrimarySurface.GDIInfo,
sizeof(PrimarySurface.DevInfo),
&PrimarySurface.DevInfo,
NULL,
@ -353,7 +353,7 @@ IntPrepareDriver()
HS_DDI_MAX,
PrimarySurface.FillPatterns,
sizeof(PrimarySurface.GDIInfo),
(ULONG *) &PrimarySurface.GDIInfo,
&PrimarySurface.GDIInfo,
sizeof(PrimarySurface.DevInfo),
&PrimarySurface.DevInfo,
NULL,
@ -1552,8 +1552,8 @@ IntEnumDisplaySettings(
CurrentName += wcslen(CurrentName) + 1)
{
INT i;
PGD_ENABLEDRIVER GDEnableDriver;
PGD_GETMODES GetModes = NULL;
PFN_DrvEnableDriver GDEnableDriver;
PFN_DrvGetModes GetModes = NULL;
INT SizeNeeded, SizeUsed;
/* Get the DDI driver's entry point */
@ -1583,7 +1583,7 @@ IntEnumDisplaySettings(
if (DrvFn->iFunc == INDEX_DrvGetModes)
{
GetModes = (PGD_GETMODES)DrvFn->pfn;
GetModes = (PFN_DrvGetModes)DrvFn->pfn;
break;
}
}