Fix so lest you can run now win32kdxtest one time with ms dxg.sys, and second time the win32kdxtest runs the whole win32k.sys or dxg.sys create nice blue screen.

svn path=/trunk/; revision=33011
This commit is contained in:
Magnus Olsen 2008-04-17 22:03:34 +00:00
parent 6b9e9dfb11
commit 500a6e9384

View file

@ -103,7 +103,7 @@ DxDdStartupDxGraphics( ULONG ulc1,
for (t=0;t<=DXG_INDEX_DxDdIoctl;t++) for (t=0;t<=DXG_INDEX_DxDdIoctl;t++)
{ {
gpDxFuncs[lstDrvFN[t].iFunc].iFunc =lstDrvFN[t].iFunc; gpDxFuncs[lstDrvFN[t].iFunc].iFunc =lstDrvFN[t].iFunc;
gpDxFuncs[lstDrvFN[t].iFunc].pfn =lstDrvFN[t].pfn; gpDxFuncs[lstDrvFN[t].iFunc].pfn =lstDrvFN[t].pfn;
} }
DPRINT1("DirectX interface is activated\n"); DPRINT1("DirectX interface is activated\n");
} }
@ -126,11 +126,10 @@ HANDLE
STDCALL STDCALL
NtGdiDdCreateDirectDrawObject(HDC hdc) NtGdiDdCreateDirectDrawObject(HDC hdc)
{ {
PGD_DDCREATEDIRECTDRAWOBJECT pfnDdCreateDirectDrawObject = NULL; PGD_DDCREATEDIRECTDRAWOBJECT pfnDdCreateDirectDrawObject = (PGD_DDCREATEDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdCreateDirectDrawObject].pfn;
NTSTATUS Status; NTSTATUS Status;
PEPROCESS Proc = NULL; PEPROCESS Proc = NULL;
INT i=0;
if (hdc == NULL) if (hdc == NULL)
{ {
DPRINT1("Warning : hdc is NULL\n"); DPRINT1("Warning : hdc is NULL\n");
@ -145,10 +144,7 @@ NtGdiDdCreateDirectDrawObject(HDC hdc)
DPRINT1("Warning : Failed to create the directx interface\n"); DPRINT1("Warning : Failed to create the directx interface\n");
return 0; return 0;
} }
/* This is in correct place */
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdCreateDirectDrawObject, pfnDdCreateDirectDrawObject);
if (pfnDdCreateDirectDrawObject == NULL) if (pfnDdCreateDirectDrawObject == NULL)
{ {
DPRINT1("Warning: no pfnDdCreateDirectDrawObject\n"); DPRINT1("Warning: no pfnDdCreateDirectDrawObject\n");
@ -220,10 +216,7 @@ DWORD
STDCALL STDCALL
NtGdiDdGetDriverState(PDD_GETDRIVERSTATEDATA pdata) NtGdiDdGetDriverState(PDD_GETDRIVERSTATEDATA pdata)
{ {
PGD_DDGETDRIVERSTATE pfnDdGetDriverState = NULL; PGD_DDGETDRIVERSTATE pfnDdGetDriverState = (PGD_DDGETDRIVERSTATE)gpDxFuncs[DXG_INDEX_DxDdGetDriverState].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdGetDriverState, pfnDdGetDriverState);
if (pfnDdGetDriverState == NULL) if (pfnDdGetDriverState == NULL)
{ {
@ -243,11 +236,8 @@ STDCALL
NtGdiDdColorControl(HANDLE hSurface, NtGdiDdColorControl(HANDLE hSurface,
PDD_COLORCONTROLDATA puColorControlData) PDD_COLORCONTROLDATA puColorControlData)
{ {
PGD_DDCOLORCONTROL pfnDdColorControl = NULL; PGD_DDCOLORCONTROL pfnDdColorControl = (PGD_DDCOLORCONTROL)gpDxFuncs[DXG_INDEX_DxDdColorControl].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdColorControl, pfnDdColorControl);
if (pfnDdColorControl == NULL) if (pfnDdColorControl == NULL)
{ {
DPRINT1("Warning: no pfnDdColorControl\n"); DPRINT1("Warning: no pfnDdColorControl\n");
@ -271,11 +261,8 @@ NtGdiDdCreateSurfaceObject(HANDLE hDirectDrawLocal,
BOOL bComplete BOOL bComplete
) )
{ {
PGD_DXDDCREATESURFACEOBJECT pfnDdCreateSurfaceObject = NULL; PGD_DXDDCREATESURFACEOBJECT pfnDdCreateSurfaceObject = (PGD_DXDDCREATESURFACEOBJECT)gpDxFuncs[DXG_INDEX_DxDdCreateSurfaceObject].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdCreateSurfaceObject, pfnDdCreateSurfaceObject);
if (pfnDdCreateSurfaceObject == NULL) if (pfnDdCreateSurfaceObject == NULL)
{ {
DPRINT1("Warning: no pfnDdCreateSurfaceObject\n"); DPRINT1("Warning: no pfnDdCreateSurfaceObject\n");
@ -293,10 +280,7 @@ BOOL
STDCALL STDCALL
NtGdiDdDeleteDirectDrawObject(HANDLE hDirectDrawLocal) NtGdiDdDeleteDirectDrawObject(HANDLE hDirectDrawLocal)
{ {
PGD_DXDDDELETEDIRECTDRAWOBJECT pfnDdDeleteDirectDrawObject = NULL; PGD_DXDDDELETEDIRECTDRAWOBJECT pfnDdDeleteDirectDrawObject = (PGD_DXDDDELETEDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdDeleteDirectDrawObject].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdDeleteDirectDrawObject, pfnDdDeleteDirectDrawObject);
if (pfnDdDeleteDirectDrawObject == NULL) if (pfnDdDeleteDirectDrawObject == NULL)
{ {
@ -315,10 +299,7 @@ BOOL
STDCALL STDCALL
NtGdiDdDeleteSurfaceObject(HANDLE hSurface) NtGdiDdDeleteSurfaceObject(HANDLE hSurface)
{ {
PGD_DXDDDELETESURFACEOBJECT pfnDdDeleteSurfaceObject = NULL; PGD_DXDDDELETESURFACEOBJECT pfnDdDeleteSurfaceObject = (PGD_DXDDDELETESURFACEOBJECT)gpDxFuncs[DXG_INDEX_DxDdDeleteSurfaceObject].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdDeleteSurfaceObject, pfnDdDeleteSurfaceObject);
if (pfnDdDeleteSurfaceObject == NULL) if (pfnDdDeleteSurfaceObject == NULL)
{ {
@ -347,11 +328,8 @@ NtGdiDdQueryDirectDrawObject(HANDLE hDirectDrawLocal,
DWORD *puNumFourCC, DWORD *puNumFourCC,
DWORD *puFourCC) DWORD *puFourCC)
{ {
PGD_DXDDQUERYDIRECTDRAWOBJECT pfnDdQueryDirectDrawObject = NULL; PGD_DXDDQUERYDIRECTDRAWOBJECT pfnDdQueryDirectDrawObject = (PGD_DXDDQUERYDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdQueryDirectDrawObject].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdQueryDirectDrawObject, pfnDdQueryDirectDrawObject);
if (pfnDdQueryDirectDrawObject == NULL) if (pfnDdQueryDirectDrawObject == NULL)
{ {
DPRINT1("Warning: no pfnDdQueryDirectDrawObject\n"); DPRINT1("Warning: no pfnDdQueryDirectDrawObject\n");
@ -372,11 +350,8 @@ STDCALL
NtGdiDdReenableDirectDrawObject(HANDLE hDirectDrawLocal, NtGdiDdReenableDirectDrawObject(HANDLE hDirectDrawLocal,
BOOL *pubNewMode) BOOL *pubNewMode)
{ {
PGD_DXDDREENABLEDIRECTDRAWOBJECT pfnDdReenableDirectDrawObject = NULL; PGD_DXDDREENABLEDIRECTDRAWOBJECT pfnDdReenableDirectDrawObject = (PGD_DXDDREENABLEDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdReenableDirectDrawObject].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdReenableDirectDrawObject, pfnDdReenableDirectDrawObject);
if (pfnDdReenableDirectDrawObject == NULL) if (pfnDdReenableDirectDrawObject == NULL)
{ {
DPRINT1("Warning: no pfnDdReenableDirectDrawObject\n"); DPRINT1("Warning: no pfnDdReenableDirectDrawObject\n");
@ -397,11 +372,8 @@ NtGdiDdGetDriverInfo(HANDLE hDirectDrawLocal,
PDD_GETDRIVERINFODATA puGetDriverInfoData) PDD_GETDRIVERINFODATA puGetDriverInfoData)
{ {
PGD_DXDDGETDRIVERINFO pfnDdGetDriverInfo = NULL; PGD_DXDDGETDRIVERINFO pfnDdGetDriverInfo = (PGD_DXDDGETDRIVERINFO)gpDxFuncs[DXG_INDEX_DxDdGetDriverInfo].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdGetDriverInfo, pfnDdGetDriverInfo);
if (pfnDdGetDriverInfo == NULL) if (pfnDdGetDriverInfo == NULL)
{ {
DPRINT1("Warning: no pfnDdGetDriverInfo\n"); DPRINT1("Warning: no pfnDdGetDriverInfo\n");
@ -421,11 +393,8 @@ STDCALL
NtGdiDdGetAvailDriverMemory(HANDLE hDirectDrawLocal, NtGdiDdGetAvailDriverMemory(HANDLE hDirectDrawLocal,
PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData) PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData)
{ {
PGD_DXDDGETAVAILDRIVERMEMORY pfnDdGetAvailDriverMemory = NULL; PGD_DXDDGETAVAILDRIVERMEMORY pfnDdGetAvailDriverMemory = (PGD_DXDDGETAVAILDRIVERMEMORY)gpDxFuncs[DXG_INDEX_DxDdGetAvailDriverMemory].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdGetAvailDriverMemory, pfnDdGetAvailDriverMemory);
if (pfnDdGetAvailDriverMemory == NULL) if (pfnDdGetAvailDriverMemory == NULL)
{ {
DPRINT1("Warning: no pfnDdGetAvailDriverMemory\n"); DPRINT1("Warning: no pfnDdGetAvailDriverMemory\n");
@ -446,11 +415,8 @@ STDCALL
NtGdiDdSetExclusiveMode(HANDLE hDirectDraw, NtGdiDdSetExclusiveMode(HANDLE hDirectDraw,
PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData) PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData)
{ {
PGD_DXDDSETEXCLUSIVEMODE pfnDdSetExclusiveMode = NULL; PGD_DXDDSETEXCLUSIVEMODE pfnDdSetExclusiveMode = (PGD_DXDDSETEXCLUSIVEMODE)gpDxFuncs[DXG_INDEX_DxDdSetExclusiveMode].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdSetExclusiveMode, pfnDdSetExclusiveMode);
if (pfnDdSetExclusiveMode == NULL) if (pfnDdSetExclusiveMode == NULL)
{ {
DPRINT1("Warning: no pfnDdSetExclusiveMode\n"); DPRINT1("Warning: no pfnDdSetExclusiveMode\n");
@ -471,11 +437,8 @@ STDCALL
NtGdiDdFlipToGDISurface(HANDLE hDirectDraw, NtGdiDdFlipToGDISurface(HANDLE hDirectDraw,
PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData) PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData)
{ {
PGD_DXDDFLIPTOGDISURFACE pfnDdFlipToGDISurface = NULL; PGD_DXDDFLIPTOGDISURFACE pfnDdFlipToGDISurface = (PGD_DXDDFLIPTOGDISURFACE)gpDxFuncs[DXG_INDEX_DxDdFlipToGDISurface].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdFlipToGDISurface, pfnDdFlipToGDISurface);
if (pfnDdFlipToGDISurface == NULL) if (pfnDdFlipToGDISurface == NULL)
{ {
DPRINT1("Warning: no pfnDdFlipToGDISurface\n"); DPRINT1("Warning: no pfnDdFlipToGDISurface\n");
@ -495,11 +458,8 @@ STDCALL
NtGdiDdGetDC(HANDLE hSurface, NtGdiDdGetDC(HANDLE hSurface,
PALETTEENTRY *puColorTable) PALETTEENTRY *puColorTable)
{ {
PGD_DDGETDC pfnDdGetDC = NULL; PGD_DDGETDC pfnDdGetDC = (PGD_DDGETDC)gpDxFuncs[DXG_INDEX_DxDdGetDC].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdGetDC, pfnDdGetDC);
if (pfnDdGetDC == NULL) if (pfnDdGetDC == NULL)
{ {
DPRINT1("Warning: no pfnDdGetDC\n"); DPRINT1("Warning: no pfnDdGetDC\n");
@ -518,13 +478,9 @@ STDCALL
NtGdiDdGetDxHandle(HANDLE hDirectDraw, NtGdiDdGetDxHandle(HANDLE hDirectDraw,
HANDLE hSurface, HANDLE hSurface,
BOOL bRelease) BOOL bRelease)
{ {
PGD_DDGETDXHANDLE pfnDdGetDxHandle = (PGD_DDGETDXHANDLE)gpDxFuncs[DXG_INDEX_DxDdGetDxHandle].pfn;
PGD_DDGETDXHANDLE pfnDdGetDxHandle = NULL;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdGetDxHandle, pfnDdGetDxHandle);
if (pfnDdGetDxHandle == NULL) if (pfnDdGetDxHandle == NULL)
{ {
DPRINT1("Warning: no pfnDdGetDxHandle\n"); DPRINT1("Warning: no pfnDdGetDxHandle\n");
@ -543,11 +499,8 @@ BOOL
STDCALL STDCALL
NtGdiDdReleaseDC(HANDLE hSurface) NtGdiDdReleaseDC(HANDLE hSurface)
{ {
PGD_DDRELEASEDC pfnDdReleaseDC = NULL; PGD_DDRELEASEDC pfnDdReleaseDC = (PGD_DDRELEASEDC)gpDxFuncs[DXG_INDEX_DxDdReleaseDC].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdReleaseDC, pfnDdReleaseDC);
if (pfnDdReleaseDC == NULL) if (pfnDdReleaseDC == NULL)
{ {
DPRINT1("Warning: no pfnDdReleaseDC\n"); DPRINT1("Warning: no pfnDdReleaseDC\n");
@ -567,11 +520,8 @@ NtGdiDdResetVisrgn(HANDLE hSurface,
HWND hwnd) HWND hwnd)
{ {
PGD_DDRESTVISRGN pfnDdResetVisrgn = NULL; PGD_DDRESTVISRGN pfnDdResetVisrgn = (PGD_DDRESTVISRGN)gpDxFuncs[DXG_INDEX_DxDdResetVisrgn].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdResetVisrgn, pfnDdResetVisrgn);
if (pfnDdResetVisrgn == NULL) if (pfnDdResetVisrgn == NULL)
{ {
DPRINT1("Warning: no pfnDdResetVisrgn\n"); DPRINT1("Warning: no pfnDdResetVisrgn\n");
@ -591,11 +541,8 @@ NtGdiDdSetGammaRamp(HANDLE hDirectDraw,
HDC hdc, HDC hdc,
LPVOID lpGammaRamp) LPVOID lpGammaRamp)
{ {
PGD_DDSETGAMMARAMP pfnDdSetGammaRamp = NULL; PGD_DDSETGAMMARAMP pfnDdSetGammaRamp = (PGD_DDSETGAMMARAMP)gpDxFuncs[DXG_INDEX_DxDdSetGammaRamp].pfn;
INT i;
DXG_GET_INDEX_FUNCTION(DXG_INDEX_DxDdSetGammaRamp, pfnDdSetGammaRamp);
if (pfnDdSetGammaRamp == NULL) if (pfnDdSetGammaRamp == NULL)
{ {
DPRINT1("Warning: no pfnDdSetGammaRamp\n"); DPRINT1("Warning: no pfnDdSetGammaRamp\n");