[WIN32SS] Allocate memory for EDD_DIRECTDRAW_GLOBAL while creating PDEV (partially fixes CORE-7733)

[SDK] Update EDD_DIRECTDRAW_GLOBAL structure

svn path=/trunk/; revision=74137
This commit is contained in:
Sebastian Gasiorek 2017-03-09 21:03:47 +00:00
parent b1b42795a9
commit 5f624ba435
4 changed files with 60 additions and 160 deletions

View file

@ -102,9 +102,16 @@ typedef struct _EDD_SURFACE
* if any of these flags are set in dwCallbackFlags (struct EDD_DIRECTDRAW_GLOBAL),
* it means that the respective callback member for it has been filled in by a graphic driver
*/
#define EDDDGBL_MISCCALLBACKS 0x01 // ddMiscellanousCallbacks
#define EDDDGBL_VIDEOPORTCALLBACKS 0x02 // ddVideoPortCallback
#define EDDDGBL_MISC2CALLBACKS 0x80 // ddMiscellanous2Callbacks
#define EDDDGBL_MISCCALLBACKS 0x001 // ddMiscellanousCallbacks
#define EDDDGBL_VIDEOPORTCALLBACKS 0x002 // ddVideoPortCallback
#define EDDDGBL_COLORCONTROLCALLBACKS 0x004 // ddColorControlCallbacks
#define EDDDGBL_MOTIONCOMPCALLBACKS 0x040 // ddMotionCompCallbacks
#define EDDDGBL_MISC2CALLBACKS 0x080 // ddMiscellanous2Callbacks
#define EDDDGBL_DDMORECAPS 0x100 // ddMorecaps
#define EDDDGBL_D3DCALLBACKS3 0x200 // d3dNtHalCallbacks3
#define EDDDGBL_NTCALLBACKS 0x400 // ddNtCallbacks
#define EDDDGBL_PRIVATEDRIVERCAPS 0x800 // ddNtPrivateDriverCaps
typedef struct _EDD_DIRECTDRAW_GLOBAL
{
@ -140,34 +147,40 @@ typedef struct _EDD_DIRECTDRAW_GLOBAL
/* 0x038 */ DWORD dwNumFourCC; // 0x038 <-- verified to match Windows XP, dwNumFourCC
/* 0x03C */ PDWORD pdwFourCC; // 0x03C <-- verified to match Windows XP, pdwFourCC
/* 0x040 */ DD_HALINFO ddHalInfo; // 0x040 <-- verified to match Windows XP, ddHalInfo
/* 0x1E0 */ ULONG unk_1e0[46];
/* 0x1E0 */ ULONG unk_1e0[17]; // DxApi interface (size 0x44)
/* 0x224 */ ULONG unk_224; //
/* 0x228 */ ULONG unk_228[14]; // AGP interface (size 0x38)
/* 0x260 */ DDKERNELCAPS ddKernelCaps; // 0x260 <-- verified to match Windows Server 2003
/* 0x26C */ DD_MORECAPS ddMoreCaps; // 0x26C <-- verified to match Windows Server 2003
/* 0x290 */ DD_NTPRIVATEDRIVERCAPS ddNtPrivateDriverCaps; // 0x290 <-- verified to match Windows Server 2003
/* 0x298 */ DD_CALLBACKS ddCallbacks; // 0x298 <-- verified to match Windows XP, ddCallbacks
/* 0x2C4 */ DD_SURFACECALLBACKS ddSurfaceCallbacks; // 0x2C4 <-- verified to match Windows XP, ddSurfaceCallbacks
/* 0x304 */ DD_PALETTECALLBACKS ddPaletteCallbacks; // 0x304 <-- verified to match Windows XP, ddPaletteCallbacks
/* 0x314 */ ULONG unk_314[46];
/* 0x314 */ D3DNTHAL_GLOBALDRIVERDATA d3dNtGlobalDriverData;
/* 0x3D4 */ D3DNTHAL_CALLBACKS d3dNtHalCallbacks;
/* 0x460 */ ULONG unk_460[9];
/* 0x460 */ DD_D3DBUFCALLBACKS d3dBufCallbacks;
/* 0x47C */ D3DNTHAL_CALLBACKS2 d3dNtHalCallbacks2;
/* 0x498 */ DD_VIDEOPORTCALLBACKS ddVideoPortCallback; // 0x498 <-- verified to match Windows XP, ddVideoPortCallback
/* 0x4E0 */ DD_MISCELLANEOUSCALLBACKS ddMiscellanousCallbacks; // 0x4E0 <-- verified to match Windows XP, ddMiscellanousCallbacks
/* 0x4EC */ DD_MISCELLANEOUS2CALLBACKS ddMiscellanous2Callbacks; // 0x4EC <-- verified to match Windows XP, ddMiscellanous2Callbacks
/* 0x504 */ ULONG unk_504[10];
/* 0x534 */ D3DNTHAL_CALLBACKS3 d3dNtHalCallbacks3;
/* 0x5A4 */ ULONG unk_544;
/* 0x5A8 */ ULONG unk_548;
/* 0x54C */ ULONG unk_54c[23];
/* 0x504 */ DD_NTCALLBACKS ddNtCallbacks; // 0x504 <-- verified to match Windows Server 2003
/* 0x518 */ DD_COLORCONTROLCALLBACKS ddColorControlCallbacks; // 0x518 <-- verified to match Windows Server 2003
/* 0x524 */ DD_KERNELCALLBACKS ddKernelCallbacks; // 0x524 <-- verified to match Windows Server 2003
/* 0x534 */ D3DNTHAL_CALLBACKS3 d3dNtHalCallbacks3; // 0x524 <-- verified to match Windows Server 2003
/* 0x54C */ DD_MOTIONCOMPCALLBACKS ddMotionCompCallbacks; // 0x54C <-- verified to match Windows Server 2003
/* 0x57C */ DDMORESURFACECAPS ddMoreSurfaceCaps; // 0x57C <-- verified to match Windows Server 2003
/* 0x5A8 */ EDD_DIRECTDRAW_LOCAL* peDirectDrawLocalList; // 0x5A8 <-- verified to match Windows XP, it is a current local struct, not a list, peDirectDrawLocalList Current
/* 0x5ac */ EDD_SURFACE* peSurface_LockList;
/* 0x5AC */ EDD_SURFACE* peSurface_LockList;
/* 0x5B0 */ FLONG fl;
/* 0x5B4 */ ULONG cSurfaceLocks;
/* 0x5B8 */ PKEVENT pAssertModeEvent;
/* 0x5Bc */ EDD_SURFACE *peSurfaceCurrent;
/* 0x5BC */ EDD_SURFACE *peSurfaceCurrent;
/* 0x5C0 */ EDD_SURFACE *peSurfacePrimary;
/* 0x5C4 */ BOOL bSuspended; // 0x5C4 <-- verified to match Windows XP, tells dxg to use driver's own api or return error code instead
/* 0x5C8 */ ULONG unk_5c8[12];
/* 0x5F8 */ RECTL rcbounds;
/* 0x608 */ ULONG unk_608;
/* 0x60c */ HDEV hDev; // 0x60c <-- verified to match Windows XP, The real Pdev, hDev
/* 0x60C */ HDEV hDev; // 0x60c <-- verified to match Windows XP, The real Pdev, hDev
/* Windows XP and higher */
/* 0x610 */ ULONG unk_610[63];

View file

@ -67,6 +67,11 @@ PDEVOBJ_AllocPDEV(VOID)
return NULL;
}
/* Allocate EDD_DIRECTDRAW_GLOBAL for our ReactX driver */
ppdev->pEDDgpl = ExAllocatePoolWithTag(PagedPool, sizeof(EDD_DIRECTDRAW_GLOBAL), GDITAG_PDEV);
if (ppdev->pEDDgpl)
RtlZeroMemory(ppdev->pEDDgpl, sizeof(EDD_DIRECTDRAW_GLOBAL));
ppdev->cPdevRefs = 1;
return ppdev;
@ -78,6 +83,8 @@ PDEVOBJ_vDeletePDEV(
PPDEVOBJ ppdev)
{
EngDeleteSemaphore(ppdev->hsemDevLock);
if (ppdev->pEDDgpl)
ExFreePoolWithTag(ppdev->pEDDgpl, GDITAG_PDEV);
ExFreePoolWithTag(ppdev, GDITAG_PDEV);
}

View file

@ -14,6 +14,8 @@
#include <winerror.h>
#include <wingdi.h>
#include <winddi.h>
#include <ddkernel.h>
#include <ddrawi.h>
/* DXG treats this as opaque */
typedef PVOID PDC;

View file

@ -714,55 +714,6 @@ void dump_edd_directdraw_global(EDD_DIRECTDRAW_GLOBAL *pEddgbl)
DPRINT1("0x%08lx 0x08C PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.ddCaps.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.ddCaps.dwSize),pEddgbl->ddHalInfo.ddCaps.dwSize);
DPRINT1("0x%08lx 0x08C PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.ddCaps.dwCaps : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.ddCaps.dwCaps),pEddgbl->ddHalInfo.ddCaps.dwCaps);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[0] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[0]),pEddgbl->unk_1e0[0]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[1] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[1]),pEddgbl->unk_1e0[1]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[2] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[2]),pEddgbl->unk_1e0[2]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[3] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[3]),pEddgbl->unk_1e0[3]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[4] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[4]),pEddgbl->unk_1e0[4]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[5] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[5]),pEddgbl->unk_1e0[5]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[6] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[6]),pEddgbl->unk_1e0[6]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[7] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[7]),pEddgbl->unk_1e0[7]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[8] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[8]),pEddgbl->unk_1e0[8]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[9] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[9]),pEddgbl->unk_1e0[9]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[10] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[10]),pEddgbl->unk_1e0[10]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[11] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[11]),pEddgbl->unk_1e0[11]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[12] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[12]),pEddgbl->unk_1e0[12]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[13] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[13]),pEddgbl->unk_1e0[13]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[14] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[14]),pEddgbl->unk_1e0[14]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[15] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[15]),pEddgbl->unk_1e0[15]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[16] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[16]),pEddgbl->unk_1e0[16]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[17] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[17]),pEddgbl->unk_1e0[17]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[18] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[18]),pEddgbl->unk_1e0[18]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[19] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[19]),pEddgbl->unk_1e0[19]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[20] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[20]),pEddgbl->unk_1e0[20]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[21] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[21]),pEddgbl->unk_1e0[21]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[22] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[22]),pEddgbl->unk_1e0[22]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[23] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[23]),pEddgbl->unk_1e0[23]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[24] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[24]),pEddgbl->unk_1e0[24]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[25] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[25]),pEddgbl->unk_1e0[25]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[26] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[26]),pEddgbl->unk_1e0[26]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[27] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[27]),pEddgbl->unk_1e0[27]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[28] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[28]),pEddgbl->unk_1e0[28]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[29] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[29]),pEddgbl->unk_1e0[29]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[30] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[30]),pEddgbl->unk_1e0[30]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[31] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[31]),pEddgbl->unk_1e0[31]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[32] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[32]),pEddgbl->unk_1e0[32]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[33] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[33]),pEddgbl->unk_1e0[33]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[34] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[34]),pEddgbl->unk_1e0[34]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[35] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[35]),pEddgbl->unk_1e0[35]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[36] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[36]),pEddgbl->unk_1e0[36]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[37] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[37]),pEddgbl->unk_1e0[37]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[38] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[38]),pEddgbl->unk_1e0[38]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[39] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[39]),pEddgbl->unk_1e0[39]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[40] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[40]),pEddgbl->unk_1e0[0]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[41] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[41]),pEddgbl->unk_1e0[41]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[42] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[42]),pEddgbl->unk_1e0[42]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[43] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[43]),pEddgbl->unk_1e0[43]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[44] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[44]),pEddgbl->unk_1e0[44]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[45] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_1e0[45]),pEddgbl->unk_1e0[45]);
DPRINT1("0x%08lx 0x298 PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.dwSize),pEddgbl->ddCallbacks.dwSize);
DPRINT1("0x%08lx 0x29C PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.dwFlags),pEddgbl->ddCallbacks.dwFlags);
DPRINT1("0x%08lx 0x2A0 PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.DestroyDriver : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.DestroyDriver),pEddgbl->ddCallbacks.DestroyDriver);
@ -797,66 +748,11 @@ void dump_edd_directdraw_global(EDD_DIRECTDRAW_GLOBAL *pEddgbl)
DPRINT1("0x%08lx 0x308 PEDD_DIRECTDRAW_GLOBAL->ddPaletteCallbacks.DestroyPalette : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddPaletteCallbacks.DestroyPalette),pEddgbl->ddPaletteCallbacks.DestroyPalette);
DPRINT1("0x%08lx 0x30C PEDD_DIRECTDRAW_GLOBAL->ddPaletteCallbacks.SetEntries : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddPaletteCallbacks.SetEntries),pEddgbl->ddPaletteCallbacks.SetEntries);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[0] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[0]),pEddgbl->unk_314[0]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[1] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[1]),pEddgbl->unk_314[1]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[2] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[2]),pEddgbl->unk_314[2]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[3] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[3]),pEddgbl->unk_314[3]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[4] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[4]),pEddgbl->unk_314[4]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[5] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[5]),pEddgbl->unk_314[5]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[6] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[6]),pEddgbl->unk_314[6]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[7] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[7]),pEddgbl->unk_314[7]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[8] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[8]),pEddgbl->unk_314[8]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[9] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[9]),pEddgbl->unk_314[9]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[10] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[10]),pEddgbl->unk_314[10]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[11] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[11]),pEddgbl->unk_314[11]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[12] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[12]),pEddgbl->unk_314[12]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[13] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[13]),pEddgbl->unk_314[13]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[14] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[14]),pEddgbl->unk_314[14]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[15] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[15]),pEddgbl->unk_314[15]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[16] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[16]),pEddgbl->unk_314[16]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[17] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[17]),pEddgbl->unk_314[17]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[18] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[18]),pEddgbl->unk_314[18]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[19] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[19]),pEddgbl->unk_314[19]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[20] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[20]),pEddgbl->unk_314[20]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[21] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[21]),pEddgbl->unk_314[21]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[22] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[22]),pEddgbl->unk_314[22]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[23] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[23]),pEddgbl->unk_314[23]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[24] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[24]),pEddgbl->unk_314[24]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[25] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[25]),pEddgbl->unk_314[25]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[26] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[26]),pEddgbl->unk_314[26]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[27] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[27]),pEddgbl->unk_314[27]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[28] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[28]),pEddgbl->unk_314[28]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[29] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[29]),pEddgbl->unk_314[29]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[30] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[30]),pEddgbl->unk_314[30]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[31] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[31]),pEddgbl->unk_314[31]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[32] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[32]),pEddgbl->unk_314[32]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[33] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[33]),pEddgbl->unk_314[33]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[34] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[34]),pEddgbl->unk_314[34]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[35] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[35]),pEddgbl->unk_314[35]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[36] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[36]),pEddgbl->unk_314[36]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[37] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[37]),pEddgbl->unk_314[37]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[38] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[38]),pEddgbl->unk_314[38]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[39] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[39]),pEddgbl->unk_314[39]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[40] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[40]),pEddgbl->unk_314[40]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[41] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[41]),pEddgbl->unk_314[41]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[42] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[42]),pEddgbl->unk_314[42]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[43] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[43]),pEddgbl->unk_314[43]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[44] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[44]),pEddgbl->unk_314[44]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_314[45] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_314[45]),pEddgbl->unk_314[45]);
// D3DNTHAL_CALLBACKS d3dNtHalCallbacks;
//DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->d3dNtHalCallbacks : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dNtHalCallbacks),pEddgbl->d3dNtHalCallbacks);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_460[0] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_460[0]),pEddgbl->unk_460[0]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_460[1] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_460[1]),pEddgbl->unk_460[1]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_460[2] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_460[2]),pEddgbl->unk_460[2]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_460[3] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_460[3]),pEddgbl->unk_460[3]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_460[4] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_460[4]),pEddgbl->unk_460[4]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_460[5] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_460[5]),pEddgbl->unk_460[5]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_460[6] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_460[6]),pEddgbl->unk_460[6]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_460[7] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_460[7]),pEddgbl->unk_460[7]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_460[8] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_460[8]),pEddgbl->unk_460[8]);
// D3DNTHAL_CALLBACKS2 d3dNtHalCallbacks2;
//DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->d3dNtHalCallbacks2 : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dNtHalCallbacks2),pEddgbl->d3dNtHalCallbacks2);
DPRINT1("0x%08lx 0x314 PEDD_DIRECTDRAW_GLOBAL->d3dNtGlobalDriverData.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dNtGlobalDriverData.dwSize),pEddgbl->d3dNtGlobalDriverData.dwSize);
DPRINT1("0x%08lx 0x3D4 PEDD_DIRECTDRAW_GLOBAL->d3dNtHalCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dNtHalCallbacks.dwSize),pEddgbl->d3dNtHalCallbacks.dwSize);
DPRINT1("0x%08lx 0x460 PEDD_DIRECTDRAW_GLOBAL->d3dBufCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dBufCallbacks.dwSize),pEddgbl->d3dBufCallbacks.dwSize);
DPRINT1("0x%08lx 0x47C PEDD_DIRECTDRAW_GLOBAL->d3dNtHalCallbacks2.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dNtHalCallbacks2.dwSize),pEddgbl->d3dNtHalCallbacks2.dwSize);
DPRINT1("0x%08lx 0x498 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.dwSize),pEddgbl->ddVideoPortCallback.dwSize);
DPRINT1("0x%08lx 0x49C PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.dwFlags),pEddgbl->ddVideoPortCallback.dwFlags);
DPRINT1("0x%08lx 0x4A0 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.CanCreateVideoPort : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.CanCreateVideoPort),pEddgbl->ddVideoPortCallback.CanCreateVideoPort);
@ -887,44 +783,26 @@ void dump_edd_directdraw_global(EDD_DIRECTDRAW_GLOBAL *pEddgbl)
DPRINT1("0x%08lx 0x4FC PEDD_DIRECTDRAW_GLOBAL->ddMiscellanous2Callbacks.GetDriverState : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMiscellanous2Callbacks.GetDriverState),pEddgbl->ddMiscellanous2Callbacks.GetDriverState);
DPRINT1("0x%08lx 0x500 PEDD_DIRECTDRAW_GLOBAL->ddMiscellanous2Callbacks.DestroyDDLocal : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMiscellanous2Callbacks.DestroyDDLocal),pEddgbl->ddMiscellanous2Callbacks.DestroyDDLocal);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_504[0] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_504[0]),pEddgbl->unk_504[0]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_504[1] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_504[1]),pEddgbl->unk_504[1]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_504[2] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_504[2]),pEddgbl->unk_504[2]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_504[3] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_504[3]),pEddgbl->unk_504[3]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_504[4] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_504[4]),pEddgbl->unk_504[4]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_504[5] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_504[5]),pEddgbl->unk_504[5]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_504[6] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_504[6]),pEddgbl->unk_504[6]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_504[7] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_504[7]),pEddgbl->unk_504[7]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_504[8] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_504[8]),pEddgbl->unk_504[8]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_504[9] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_504[9]),pEddgbl->unk_504[9]);
DPRINT1("0x%08lx 0x504 PEDD_DIRECTDRAW_GLOBAL->ddNtCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddNtCallbacks.dwSize),pEddgbl->ddNtCallbacks.dwSize);
DPRINT1("0x%08lx 0x518 PEDD_DIRECTDRAW_GLOBAL->ddColorControlCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddColorControlCallbacks.dwSize),pEddgbl->ddColorControlCallbacks.dwSize);
DPRINT1("0x%08lx 0x524 PEDD_DIRECTDRAW_GLOBAL->ddKernelCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddKernelCallbacks.dwSize),pEddgbl->ddKernelCallbacks.dwSize);
DPRINT1("0x%08lx 0x534 PEDD_DIRECTDRAW_GLOBAL->d3dNtHalCallbacks3.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dNtHalCallbacks3.dwSize),pEddgbl->d3dNtHalCallbacks3.dwSize);
DPRINT1("0x%08lx 0x54C PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.dwSize),pEddgbl->ddMotionCompCallbacks.dwSize);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.dwFlags),pEddgbl->ddMotionCompCallbacks.dwSize);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.GetMoCompGuids : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.GetMoCompGuids),pEddgbl->ddMotionCompCallbacks.GetMoCompGuids);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.GetMoCompFormats : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.GetMoCompFormats),pEddgbl->ddMotionCompCallbacks.GetMoCompFormats);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.CreateMoComp : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.CreateMoComp),pEddgbl->ddMotionCompCallbacks.CreateMoComp);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.GetMoCompBuffInfo : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.GetMoCompBuffInfo),pEddgbl->ddMotionCompCallbacks.GetMoCompBuffInfo);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.GetInternalMoCompInfo : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.GetInternalMoCompInfo),pEddgbl->ddMotionCompCallbacks.GetInternalMoCompInfo);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.BeginMoCompFrame : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.BeginMoCompFrame),pEddgbl->ddMotionCompCallbacks.BeginMoCompFrame);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.EndMoCompFrame : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.EndMoCompFrame),pEddgbl->ddMotionCompCallbacks.EndMoCompFrame);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.RenderMoComp : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.RenderMoComp),pEddgbl->ddMotionCompCallbacks.RenderMoComp);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.QueryMoCompStatus : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.QueryMoCompStatus),pEddgbl->ddMotionCompCallbacks.QueryMoCompStatus);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.DestroyMoComp : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.DestroyMoComp),pEddgbl->ddMotionCompCallbacks.DestroyMoComp);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMoreSurfaceCaps.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMoreSurfaceCaps.dwSize),pEddgbl->ddMoreSurfaceCaps.dwSize);
// D3DNTHAL_CALLBACKS3 d3dNtHalCallbacks3;
//DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->d3dNtHalCallbacks3 : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dNtHalCallbacks3),pEddgbl->d3dNtHalCallbacks3);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_544 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_544), pEddgbl->unk_544);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_548 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_548), pEddgbl->unk_548);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[0] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[0]),pEddgbl->unk_54c[0]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[1] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[1]),pEddgbl->unk_54c[1]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[2] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[2]),pEddgbl->unk_54c[2]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[3] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[3]),pEddgbl->unk_54c[3]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[4] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[4]),pEddgbl->unk_54c[4]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[5] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[5]),pEddgbl->unk_54c[5]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[6] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[6]),pEddgbl->unk_54c[6]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[7] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[7]),pEddgbl->unk_54c[7]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[8] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[8]),pEddgbl->unk_54c[8]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[9] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[9]),pEddgbl->unk_54c[9]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[10] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[10]),pEddgbl->unk_54c[10]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[11] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[11]),pEddgbl->unk_54c[11]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[12] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[12]),pEddgbl->unk_54c[12]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[13] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[13]),pEddgbl->unk_54c[13]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[14] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[14]),pEddgbl->unk_54c[14]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[15] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[15]),pEddgbl->unk_54c[15]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[16] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[16]),pEddgbl->unk_54c[16]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[17] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[17]),pEddgbl->unk_54c[17]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[18] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[18]),pEddgbl->unk_54c[18]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[19] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[19]),pEddgbl->unk_54c[19]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[20] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[20]),pEddgbl->unk_54c[20]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[21] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[21]),pEddgbl->unk_54c[21]);
DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_54c[22] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_54c[22]),pEddgbl->unk_54c[22]);
// EDD_DIRECTDRAW_LOCAL* peDirectDrawLocalList;
DPRINT1("0x%08lx 0x5A8 PEDD_DIRECTDRAW_GLOBAL->peDirectDrawLocalList : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, peDirectDrawLocalList), pEddgbl->peDirectDrawLocalList);
// EDD_SURFACE* peSurface_LockList;