50 DPRINT1(
"Warning: Failed to create the directx interface\n");
58 DPRINT1(
"Warning: Failed to lock hdc\n");
68 DPRINT1(
"Warning : DisableDirectDraw and EnableDirectDraw are NULL, no dx driver \n");
81 if (pfnDdEnableDirectDraw ==
NULL)
83 DPRINT1(
"Warning: no pfnDdEnableDirectDraw\n");
87 DPRINT1(
" call to pfnDdEnableDirectDraw \n ");
95 DPRINT1(
" The dxg.sys and graphic card driver interface is enabled \n ");
103 DPRINT1(
" end call to pfnDdEnableDirectDraw \n ");
139 DPRINT1(
"Warning: trying loading xp/2003/windows7/reactos dxg.sys\n");
144 DPRINT1(
"Warning: no ReactX or DirectX kernel driver found\n");
178 DPRINT1(
"Warning: DirectX graphics interface can not be initialized\n");
194 DPRINT1(
"DirectX interface is activated\n");
218 DPRINT1(
"Warning: hdc is NULL\n");
225 DPRINT1(
"Warning: Failed to start the DirectX interface from the graphic driver\n");
232 if (pfnDdCreateDirectDrawObject ==
NULL)
234 DPRINT1(
"Warning: no pfnDdCreateDirectDrawObject\n");
238 DPRINT1(
"Calling dxg.sys DdCreateDirectDrawObject\n");
240 return pfnDdCreateDirectDrawObject(
hdc);
287 if (pfnDxgGenericThunk ==
NULL)
289 DPRINT1(
"Warning: no pfnDxgGenericThunk\n");
293 DPRINT1(
"Calling dxg.sys pfnDxgGenericThunk\n");
294 return pfnDxgGenericThunk(ulIndex, ulHandle, pdwSizeOfPtr1, pvPtr1, pdwSizeOfPtr2, pvPtr2);
306 if (pfnDdGetDriverState ==
NULL)
308 DPRINT1(
"Warning: no pfnDdGetDriverState\n");
312 DPRINT1(
"Calling dxg.sys DdGetDriverState\n");
313 return pfnDdGetDriverState(
pdata);
326 if (pfnDdColorControl ==
NULL)
328 DPRINT1(
"Warning: no pfnDdColorControl\n");
332 DPRINT1(
"Calling dxg.sys DdColorControl\n");
333 return pfnDdColorControl(hSurface,puColorControlData);
351 if (pfnDdCreateSurfaceObject ==
NULL)
353 DPRINT1(
"Warning: no pfnDdCreateSurfaceObject\n");
357 DPRINT1(
"Calling dxg.sys pfnDdCreateSurfaceObject\n");
358 return pfnDdCreateSurfaceObject(hDirectDrawLocal, hSurface, puSurfaceLocal, puSurfaceMore, puSurfaceGlobal, bComplete);
370 if (pfnDdDeleteDirectDrawObject ==
NULL)
372 DPRINT1(
"Warning: no pfnDdDeleteDirectDrawObject\n");
376 if (hDirectDrawLocal ==
NULL)
378 DPRINT1(
"Warning: hDirectDrawLocal is NULL\n");
382 DPRINT1(
"hDirectDrawLocal = %p \n", hDirectDrawLocal);
383 DPRINT1(
"Calling dxg.sys pfnDdDeleteDirectDrawObject\n");
385 return pfnDdDeleteDirectDrawObject(hDirectDrawLocal);
397 if (pfnDdDeleteSurfaceObject ==
NULL)
399 DPRINT1(
"Warning: no pfnDdDeleteSurfaceObject\n");
404 DPRINT1(
"Calling dxg.sys DdDeleteSurfaceObject\n");
405 return pfnDdDeleteSurfaceObject(hSurface);
415 DWORD *pCallBackFlags,
427 if (pfnDdQueryDirectDrawObject ==
NULL)
429 DPRINT1(
"Warning: no pfnDdQueryDirectDrawObject\n");
433 DPRINT1(
"Calling dxg.sys pfnDdQueryDirectDrawObject\n");
436 return pfnDdQueryDirectDrawObject(hDirectDrawLocal,
pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData,
437 puD3dBufferCallbacks, puD3dTextureFormats, puNumHeaps, puvmList, puNumFourCC, puFourCC);
455 if (pfnDdReenableDirectDrawObject ==
NULL)
457 DPRINT1(
"Warning: no pfnDdReenableDirectDrawObject\n");
461 DPRINT1(
"Calling dxg.sys pfnDdReenableDirectDrawObject\n");
464 status = pfnDdReenableDirectDrawObject(hDirectDrawLocal, pubNewMode);
465 DPRINT1(
"end Calling dxg.sys pfnDdReenableDirectDrawObject\n");
469 return pfnDdReenableDirectDrawObject(hDirectDrawLocal, pubNewMode);
485 if (pfnDdGetDriverInfo ==
NULL)
487 DPRINT1(
"Warning: no pfnDdGetDriverInfo\n");
491 DPRINT1(
"Calling dxg.sys pfnDdGetDriverInfo\n");
492 return pfnDdGetDriverInfo(hDirectDrawLocal, puGetDriverInfoData);
506 if (pfnDdGetAvailDriverMemory ==
NULL)
508 DPRINT1(
"Warning: no pfnDdGetAvailDriverMemory\n");
512 DPRINT1(
"Calling dxg.sys pfnDdGetAvailDriverMemory\n");
513 return pfnDdGetAvailDriverMemory(hDirectDrawLocal, puGetAvailDriverMemoryData);
528 if (pfnDdSetExclusiveMode ==
NULL)
530 DPRINT1(
"Warning: no pfnDdSetExclusiveMode\n");
534 DPRINT1(
"Calling dxg.sys pfnDdSetExclusiveMode\n");
535 return pfnDdSetExclusiveMode(hDirectDraw, puSetExclusiveModeData);
550 if (pfnDdFlipToGDISurface ==
NULL)
552 DPRINT1(
"Warning: no pfnDdFlipToGDISurface\n");
556 DPRINT1(
"Calling dxg.sys pfnDdFlipToGDISurface\n");
557 return pfnDdFlipToGDISurface(hDirectDraw, puFlipToGDISurfaceData);
571 if (pfnDdGetDC ==
NULL)
573 DPRINT1(
"Warning: no pfnDdGetDC\n");
577 DPRINT1(
"Calling dxg.sys pfnDdGetDC\n");
578 return pfnDdGetDC(hSurface, puColorTable);
592 if (pfnDdGetDxHandle ==
NULL)
594 DPRINT1(
"Warning: no pfnDdGetDxHandle\n");
598 DPRINT1(
"Calling dxg.sys pfnDdGetDxHandle\n");
599 return pfnDdGetDxHandle(hDirectDraw, hSurface, bRelease);
612 if (pfnDdReleaseDC ==
NULL)
614 DPRINT1(
"Warning: no pfnDdReleaseDC\n");
618 DPRINT1(
"Calling dxg.sys pfnDdReleaseDC\n");
619 return pfnDdReleaseDC(hSurface);
633 if (pfnDdResetVisrgn ==
NULL)
635 DPRINT1(
"Warning: no pfnDdResetVisrgn\n");
639 DPRINT1(
"Calling dxg.sys pfnDdResetVisrgn\n");
640 return pfnDdResetVisrgn(hSurface,
hwnd);
654 if (pfnDdSetGammaRamp ==
NULL)
656 DPRINT1(
"Warning: no pfnDdSetGammaRamp\n");
660 DPRINT1(
"Calling dxg.sys pfnDdSetGammaRamp\n");
661 return pfnDdSetGammaRamp(hDirectDraw,
hdc, lpGammaRamp);
FORCEINLINE VOID DC_UnlockDc(PDC pdc)
FORCEINLINE PDC DC_LockDc(HDC hdc)
#define DDHAL_DRIVER_NOTHANDLED
#define NT_SUCCESS(StatCode)
DWORD(NTAPI * PGD_DXGENERICTRUNK)(ULONG_PTR, ULONG_PTR, SIZE_T *, PVOID, SIZE_T *, PVOID)
#define DXG_INDEX_DxDdGetDriverState
BOOLEAN(NTAPI * PGD_DXDDENABLEDIRECTDRAW)(PVOID, BOOLEAN)
#define DXG_INDEX_DxDdColorControl
#define DXG_INDEX_DxDdReenableDirectDrawObject
#define DXG_INDEX_DxDdGetAvailDriverMemory
#define DXG_INDEX_DxDdIoctl
#define DXG_INDEX_DxDdDeleteSurfaceObject
#define DXG_INDEX_DxDdResetVisrgn
#define DXG_INDEX_DxDdSetExclusiveMode
#define DXG_INDEX_DxDdEnableDirectDraw
#define DXG_INDEX_DxDdFlipToGDISurface
#define DXG_INDEX_DxDdQueryDirectDrawObject
#define DXG_INDEX_DxDdGetDC
#define DXG_INDEX_DxDdGetDxHandle
#define DXG_INDEX_DxDdGetDriverInfo
#define DXG_INDEX_DxDdSetGammaRamp
#define DXG_INDEX_DxDdCreateSurfaceObject
#define DXG_INDEX_DxDdDeleteDirectDrawObject
#define DXG_INDEX_DxDxgGenericThunk
#define DXG_INDEX_DxDdReleaseDC
#define DXG_INDEX_DxDdCreateDirectDrawObject
DWORD(APIENTRY * PGD_DXDDFLIPTOGDISURFACE)(HANDLE, PDD_FLIPTOGDISURFACEDATA)
BOOL(APIENTRY * PGD_DXDDDELETEDIRECTDRAWOBJECT)(HANDLE)
NTSTATUS(APIENTRY * PGD_DXDDCLEANUPDXGRAPHICS)(VOID)
BOOL(APIENTRY * PGD_DDRESTVISRGN)(HANDLE, HWND)
NTSTATUS(APIENTRY * PGD_DXDDSTARTUPDXGRAPHICS)(ULONG, PDRVENABLEDATA, ULONG, PDRVENABLEDATA, PULONG, PEPROCESS)
HANDLE(APIENTRY * PGD_DDGETDXHANDLE)(HANDLE, HANDLE, BOOL)
BOOL(APIENTRY * PGD_DXDDDELETESURFACEOBJECT)(HANDLE)
DWORD(APIENTRY * PGD_DXDDSETEXCLUSIVEMODE)(HANDLE, PDD_SETEXCLUSIVEMODEDATA)
BOOL(APIENTRY * PGD_DDRELEASEDC)(HANDLE)
DWORD(APIENTRY * PGD_DXDDGETDRIVERINFO)(HANDLE, PDD_GETDRIVERINFODATA)
DWORD(APIENTRY * PGD_DDGETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA)
DWORD(APIENTRY * PGD_DXDDREENABLEDIRECTDRAWOBJECT)(HANDLE, BOOL *)
BOOL(APIENTRY * PGD_DDSETGAMMARAMP)(HANDLE, HDC, LPVOID)
HDC(APIENTRY * PGD_DDGETDC)(HANDLE, PALETTEENTRY *)
BOOL(APIENTRY * PGD_DXDDQUERYDIRECTDRAWOBJECT)(HANDLE, DD_HALINFO *, DWORD *, LPD3DNTHAL_CALLBACKS, LPD3DNTHAL_GLOBALDRIVERDATA, PDD_D3DBUFCALLBACKS, LPDDSURFACEDESC, DWORD *, VIDEOMEMORY *, DWORD *, DWORD *)
DWORD(APIENTRY * PGD_DXDDGETAVAILDRIVERMEMORY)(HANDLE, PDD_GETAVAILDRIVERMEMORYDATA)
HANDLE(APIENTRY * PGD_DDCREATEDIRECTDRAWOBJECT)(HDC hdc)
DWORD(APIENTRY * PGD_DDCOLORCONTROL)(HANDLE hSurface, PDD_COLORCONTROLDATA puColorControlData)
HANDLE(APIENTRY * PGD_DXDDCREATESURFACEOBJECT)(HANDLE, HANDLE, PDD_SURFACE_LOCAL, PDD_SURFACE_MORE, PDD_SURFACE_GLOBAL, BOOL)
static PROTOCOLDATA * pdata
#define STATUS_DLL_NOT_FOUND
#define STATUS_PROCEDURE_NOT_FOUND
PFN_DrvEnableDirectDraw EnableDirectDraw
PFN_DrvDisableDirectDraw DisableDirectDraw
struct _EDD_DIRECTDRAW_GLOBAL * pEDDgpl
DRIVER_FUNCTIONS DriverFunctions
BOOL intEnableReactXDriver(HDC hdc)
NTSTATUS APIENTRY DxDdStartupDxGraphics(ULONG ulc1, PDRVENABLEDATA DxEngDrvOld, ULONG ulc2, PDRVENABLEDATA DxgDrvOld, PULONG DirectDrawContext, PEPROCESS Proc)
DRVFN gpDxFuncs[DXG_INDEX_DxDdIoctl+1]
EDD_DIRECTDRAW_GLOBAL edd_DdirectDraw_Global
HANDLE APIENTRY NtGdiDdGetDxHandle(HANDLE hDirectDraw, HANDLE hSurface, BOOL bRelease)
BOOL APIENTRY NtGdiDdReleaseDC(HANDLE hSurface)
DWORD APIENTRY NtGdiDdGetAvailDriverMemory(HANDLE hDirectDrawLocal, PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData)
PGD_DXDDSTARTUPDXGRAPHICS gpfnStartupDxGraphics
BOOL APIENTRY NtGdiDdReenableDirectDrawObject(HANDLE hDirectDrawLocal, BOOL *pubNewMode)
BOOL APIENTRY NtGdiDdQueryDirectDrawObject(HANDLE hDirectDrawLocal, DD_HALINFO *pHalInfo, DWORD *pCallBackFlags, LPD3DNTHAL_CALLBACKS puD3dCallbacks, LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, LPDDSURFACEDESC puD3dTextureFormats, DWORD *puNumHeaps, VIDEOMEMORY *puvmList, DWORD *puNumFourCC, DWORD *puFourCC)
DWORD APIENTRY NtGdiDdFlipToGDISurface(HANDLE hDirectDraw, PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData)
DWORD APIENTRY NtGdiDdGetDriverInfo(HANDLE hDirectDrawLocal, PDD_GETDRIVERINFODATA puGetDriverInfoData)
DWORD APIENTRY NtGdiDdGetDriverState(PDD_GETDRIVERSTATEDATA pdata)
HDC APIENTRY NtGdiDdGetDC(HANDLE hSurface, PALETTEENTRY *puColorTable)
HANDLE APIENTRY NtGdiDdCreateSurfaceObject(HANDLE hDirectDrawLocal, HANDLE hSurface, PDD_SURFACE_LOCAL puSurfaceLocal, PDD_SURFACE_MORE puSurfaceMore, PDD_SURFACE_GLOBAL puSurfaceGlobal, BOOL bComplete)
HANDLE APIENTRY NtGdiDdCreateDirectDrawObject(HDC hdc)
DWORD APIENTRY NtGdiDdColorControl(HANDLE hSurface, PDD_COLORCONTROLDATA puColorControlData)
PGD_DXDDCLEANUPDXGRAPHICS gpfnCleanupDxGraphics
BOOL APIENTRY NtGdiDdSetGammaRamp(HANDLE hDirectDraw, HDC hdc, LPVOID lpGammaRamp)
BOOL APIENTRY NtGdiDdDeleteSurfaceObject(HANDLE hSurface)
ULONG gdwDirectDrawContext
DWORD APIENTRY NtGdiDdSetExclusiveMode(HANDLE hDirectDraw, PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData)
DWORD APIENTRY NtGdiDxgGenericThunk(ULONG_PTR ulIndex, ULONG_PTR ulHandle, SIZE_T *pdwSizeOfPtr1, PVOID pvPtr1, SIZE_T *pdwSizeOfPtr2, PVOID pvPtr2)
BOOL APIENTRY NtGdiDdDeleteDirectDrawObject(HANDLE hDirectDrawLocal)
BOOL APIENTRY NtGdiDdResetVisrgn(HANDLE hSurface, HWND hwnd)
#define success(from, fromstr, to, tostr)
ENGAPI PVOID APIENTRY EngFindImageProcAddress(_In_ HANDLE hModule, _In_ LPSTR lpProcName)
#define DDI_DRIVER_VERSION_NT5_01
_Out_ DD_HALINFO * pHalInfo
ENGAPI VOID APIENTRY EngUnloadImage(_In_ HANDLE hModule)
ENGAPI HANDLE APIENTRY EngLoadImage(_In_ LPWSTR pwszDriver)