add regkey HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI\Timeout for dxg.sys it is the second timeout value for a surface lock see url for more informations http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/regentry/28237.mspx?mfr=true thx irc:stefan100 for the url

remove one hack in intEnableReactXDriver thx to this info. 




svn path=/trunk/; revision=33210
This commit is contained in:
Magnus Olsen
2008-05-01 12:08:02 +00:00
parent f30abc5fe4
commit 6d8cb64ea3
3 changed files with 13 additions and 10 deletions
+3
View File
@@ -457,6 +457,9 @@ HKLM,"SYSTEM\CurrentControlSet\Control\ServiceGroupOrder","List",0x00010000, \
"PlugPlay", \
"Extended Base"
; Set the timeout for directx/ReactX graphic surface lock see _EDD_DIRECTDRAW_GLOBAL struct for more info
HKLM,"SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI","Timeout",0x00010001,0x00000007
; Group order, the first DWORD is the count of entries,
; the following dwords are the tag entries for the load order.
HKLM,"SYSTEM\CurrentControlSet\Control\GroupOrderList","Video Save", 0x00000001, \
@@ -106,13 +106,13 @@ typedef struct _EDD_SURFACE
typedef struct _EDD_DIRECTDRAW_GLOBAL
{
/* 0x000 */ PVOID dhpdev;
/* 0x000 */ PVOID dhpdev; // 0x000 <-- verified to match Windows XP, dhpdev, the drv hPDev -->
/* 0x004 */ DWORD dwReserved1;
/* 0x008 */ DWORD dwReserved2;
/* 0x00C */ ULONG unk_000c[3];
/* 0x018 */ LONG cDriverReferences;
/* 0x01C */ ULONG unk_01c;
/* 0x020 */ DWORD dwCallbackFlags; /* <-- verified to match Windows XP, dwCallbackFlags
/* 0x020 */ DWORD dwCallbackFlags; /* 0x020 <-- verified to match Windows XP, dwCallbackFlags
Flags value
0x0002 = ddVideoPortCallback and GUID_VideoPortCaps
0x0004 = GUID_ColorControlCallbacks
@@ -125,7 +125,13 @@ typedef struct _EDD_DIRECTDRAW_GLOBAL
/* 0x024 */ ULONG unk_024;
#ifdef _WIN32
/* 0x028 */ LARGE_INTEGER llAssertModeTimeout; // 0x028 <-- verified to match Windows XP, llAssertModeTimeout
/* 0x028 */ LARGE_INTEGER llAssertModeTimeout; /* 0x028 <-- verified to match Windows XP, llAssertModeTimeout, it
using regkey
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI
Specifies how long a DirectDraw application can keep a graphics-device frame-buffer locked
in second, if this value are set to 0 it disable directdraw acclatrions.
it is normal set to 7 (7 sec in windwos xp/2003)
*/
#else
/* 0x028 */ DWORD llAssertModeTimeoutLowPart;
/* 0x02C */ DWORD llAssertModeTimeoutHighPart;
@@ -54,6 +54,7 @@ intEnableReactXDriver(PEDD_DIRECTDRAW_GLOBAL pEddgbl, PDC pDC)
success = pfnDdEnableDirectDraw(pDC->pPDev, TRUE);
dump_edd_directdraw_global(pEddgbl);
dump_halinfo(&pEddgbl->ddHalInfo);
DPRINT1(" end call to pfnDdEnableDirectDraw \n ");
}
@@ -264,13 +265,6 @@ intEnableReactXDriver(PEDD_DIRECTDRAW_GLOBAL pEddgbl, PDC pDC)
/* setup missing data in ddHalInfo */
//pEddgbl->ddHalInfo.GetDriverInfo = (PVOID)pDev->DriverFunctions.GetDirectDrawInfo;
/* FIXME : hack ? it will let us DxDdQueryDirectDrawObject if the llAssertModeTimeout contain negtive value -1*/
pEddgbl->llAssertModeTimeout.QuadPart = -1;
/* FIXME : remove this when we are done with debuging of dxg */
dump_edd_directdraw_global(pEddgbl);
dump_halinfo(&pEddgbl->ddHalInfo);