mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 02:25:40 +00:00
fixing smaller bugs in NtGdiDdWaitForVerticalBlank now it is compatible with windows 2000 in all my test case.
svn path=/trunk/; revision=26282
This commit is contained in:
parent
923523688f
commit
ce8c107dbc
1 changed files with 41 additions and 34 deletions
|
@ -386,13 +386,19 @@ DWORD STDCALL NtGdiDdWaitForVerticalBlank(
|
||||||
PDD_DIRECTDRAW pDirectDraw = NULL;
|
PDD_DIRECTDRAW pDirectDraw = NULL;
|
||||||
NTSTATUS Status = FALSE;
|
NTSTATUS Status = FALSE;
|
||||||
DD_WAITFORVERTICALBLANKDATA WaitForVerticalBlankData;
|
DD_WAITFORVERTICALBLANKDATA WaitForVerticalBlankData;
|
||||||
|
LPDDHAL_WAITFORVERTICALBLANKDATA pWaitForVerticalBlankData = (LPDDHAL_WAITFORVERTICALBLANKDATA)puWaitForVerticalBlankData;
|
||||||
|
|
||||||
DPRINT1("NtGdiDdWaitForVerticalBlank\n");
|
if ((hDirectDrawLocal) &&
|
||||||
|
(puWaitForVerticalBlankData))
|
||||||
|
{
|
||||||
|
RtlZeroMemory(&WaitForVerticalBlankData,sizeof(DD_WAITFORVERTICALBLANKDATA));
|
||||||
|
|
||||||
_SEH_TRY
|
_SEH_TRY
|
||||||
{
|
{
|
||||||
ProbeForRead(puWaitForVerticalBlankData, sizeof(DD_WAITFORVERTICALBLANKDATA), 1);
|
ProbeForRead(pWaitForVerticalBlankData, sizeof(DDHAL_WAITFORVERTICALBLANKDATA), 1);
|
||||||
RtlCopyMemory(&WaitForVerticalBlankData,puWaitForVerticalBlankData, sizeof(DD_WAITFORVERTICALBLANKDATA));
|
WaitForVerticalBlankData.dwFlags = pWaitForVerticalBlankData->dwFlags;
|
||||||
|
WaitForVerticalBlankData.bIsInVB = pWaitForVerticalBlankData->bIsInVB;
|
||||||
|
WaitForVerticalBlankData.hEvent = pWaitForVerticalBlankData->hEvent;
|
||||||
}
|
}
|
||||||
_SEH_HANDLE
|
_SEH_HANDLE
|
||||||
{
|
{
|
||||||
|
@ -414,9 +420,9 @@ DWORD STDCALL NtGdiDdWaitForVerticalBlank(
|
||||||
}
|
}
|
||||||
_SEH_TRY
|
_SEH_TRY
|
||||||
{
|
{
|
||||||
ProbeForWrite(puWaitForVerticalBlankData, sizeof(DD_WAITFORVERTICALBLANKDATA), 1);
|
ProbeForWrite(pWaitForVerticalBlankData, sizeof(DDHAL_WAITFORVERTICALBLANKDATA), 1);
|
||||||
puWaitForVerticalBlankData->ddRVal = WaitForVerticalBlankData.ddRVal;
|
pWaitForVerticalBlankData->ddRVal = WaitForVerticalBlankData.ddRVal;
|
||||||
puWaitForVerticalBlankData->bIsInVB = WaitForVerticalBlankData.bIsInVB;
|
pWaitForVerticalBlankData->bIsInVB = WaitForVerticalBlankData.bIsInVB;
|
||||||
}
|
}
|
||||||
_SEH_HANDLE
|
_SEH_HANDLE
|
||||||
{
|
{
|
||||||
|
@ -427,6 +433,7 @@ DWORD STDCALL NtGdiDdWaitForVerticalBlank(
|
||||||
GDIOBJ_UnlockObjByPtr(DdHandleTable, pDirectDraw);
|
GDIOBJ_UnlockObjByPtr(DdHandleTable, pDirectDraw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return ddRVal;
|
return ddRVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue