mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 02:15:43 +00:00
DxDdStartupDxGraphics
Bugfix : the load order, it try loading vista dxkrnl.sys frist then it try loading dxg.System rember I have not tested vista dxkrnl.sys in reactos at all yet. Bugfix : thx piggworth for notice the hDev was never resive to DxEngLockHdev, it still does not do in some case. we need more invigaste why svn path=/trunk/; revision=33084
This commit is contained in:
parent
09592ecd54
commit
92a93b0559
3 changed files with 36 additions and 20 deletions
|
@ -125,7 +125,8 @@ dll\directx\dplay\dplay.dll 1
|
||||||
dll\directx\dplayx\dplayx.dll 1
|
dll\directx\dplayx\dplayx.dll 1
|
||||||
dll\directx\dsound\dsound.dll 1
|
dll\directx\dsound\dsound.dll 1
|
||||||
dll\directx\dxdiagn\dxdiagn.dll 1
|
dll\directx\dxdiagn\dxdiagn.dll 1
|
||||||
dll\directx\ddraw\ddraw.dll 1
|
windows\ddraw.dll 1
|
||||||
|
windows\dciman32.dll 1
|
||||||
dll\directx\d3d8thk\d3d8thk.dll 1
|
dll\directx\d3d8thk\d3d8thk.dll 1
|
||||||
dll\directx\devenum\devenum.dll 1
|
dll\directx\devenum\devenum.dll 1
|
||||||
dll\directx\ksproxy\ksproxy.ax 1
|
dll\directx\ksproxy\ksproxy.ax 1
|
||||||
|
@ -307,9 +308,9 @@ drivers\base\null\null.sys 2
|
||||||
|
|
||||||
drivers\bus\isapnp\isapnp.sys 2
|
drivers\bus\isapnp\isapnp.sys 2
|
||||||
|
|
||||||
drivers\directx\dxapi\dxapi.sys 2
|
windows\dxapi.sys 2
|
||||||
drivers\directx\dxg\dxg.sys 2
|
windows\dxg.sys 2
|
||||||
drivers\directx\dxgthk\dxgthk.sys 2
|
windows\dxgthk.sys 2
|
||||||
|
|
||||||
drivers\filesystems\fs_rec\fs_rec.sys 2
|
drivers\filesystems\fs_rec\fs_rec.sys 2
|
||||||
drivers\filesystems\msfs\msfs.sys 2
|
drivers\filesystems\msfs\msfs.sys 2
|
||||||
|
@ -605,6 +606,17 @@ modules\rostests\winetests\usp10\usp10_winetest.exe 7 o
|
||||||
modules\rostests\winetests\uxtheme\uxtheme_winetest.exe 7 optional
|
modules\rostests\winetests\uxtheme\uxtheme_winetest.exe 7 optional
|
||||||
modules\rostests\winetests\version\version_winetest.exe 7 optional
|
modules\rostests\winetests\version\version_winetest.exe 7 optional
|
||||||
modules\rostests\winetests\wininet\wininet_winetest.exe 7 optional
|
modules\rostests\winetests\wininet\wininet_winetest.exe 7 optional
|
||||||
|
|
||||||
|
modules\rostests\dxtest\ddraw_test\ddraw_test.exe 7 optional
|
||||||
|
modules\rostests\dxtest\win32kdxtest\win32kdxtest.exe 7 optional
|
||||||
|
|
||||||
|
modules\rostests\apitests\gdi32api\gdi32api.exe 7 optional
|
||||||
|
|
||||||
|
modules\rostests\apitests\user32api\user32api.exe 7 optional
|
||||||
|
modules\rostests\apitests\w32knapi\w32knapi.exe 7 optional
|
||||||
|
modules\rostests\apitests\w32kdll\w32kdll_ros\w32kdll.dll 7 optional
|
||||||
|
|
||||||
|
|
||||||
modules\wallpaper\lake.bmp 4 optional
|
modules\wallpaper\lake.bmp 4 optional
|
||||||
|
|
||||||
; Native libraries
|
; Native libraries
|
||||||
|
|
|
@ -23,7 +23,7 @@ DRVFN gpDxFuncs[DXG_INDEX_DxDdIoctl];
|
||||||
HANDLE ghDxGraphics = NULL;
|
HANDLE ghDxGraphics = NULL;
|
||||||
ULONG gdwDirectDrawContext;
|
ULONG gdwDirectDrawContext;
|
||||||
void dump_edd_directdraw_global(EDD_DIRECTDRAW_GLOBAL *pEddgbl);
|
void dump_edd_directdraw_global(EDD_DIRECTDRAW_GLOBAL *pEddgbl);
|
||||||
EDD_DIRECTDRAW_GLOBAL eDdirectDraw_Global;
|
EDD_DIRECTDRAW_GLOBAL edd_DdirectDraw_Global;
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
@ -54,17 +54,14 @@ DxDdStartupDxGraphics( ULONG ulc1,
|
||||||
|
|
||||||
/* Loading the kernel interface of directx for win32k */
|
/* Loading the kernel interface of directx for win32k */
|
||||||
|
|
||||||
|
DPRINT1("Warning: trying loading vista dxkrnl.sys\n");
|
||||||
ghDxGraphics = EngLoadImage(L"\\SystemRoot\\System32\\drivers\\dxg.sys");
|
ghDxGraphics = EngLoadImage(L"\\SystemRoot\\System32\\drivers\\dxkrnl.sys");
|
||||||
|
|
||||||
if ( ghDxGraphics == NULL)
|
if ( ghDxGraphics == NULL)
|
||||||
{
|
{
|
||||||
DPRINT1("Warning: dxg.sys not found\n");
|
DPRINT1("Warning: dxkrnl.sys not found\n");
|
||||||
|
|
||||||
/* try loading vista dx kernel */
|
/* try loading vista dx kernel */
|
||||||
DPRINT1("Warning: trying loading vista dxkrnl.sys\n");
|
DPRINT1("Warning: trying loading xp/2003/reactos dxg.sys\n");
|
||||||
|
ghDxGraphics = EngLoadImage(L"\\SystemRoot\\System32\\drivers\\dxg.sys");
|
||||||
ghDxGraphics = EngLoadImage(L"\\SystemRoot\\System32\\drivers\\dxkrnl.sys");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ghDxGraphics == NULL)
|
if ( ghDxGraphics == NULL)
|
||||||
|
@ -117,7 +114,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* dump sort list for debuging */
|
/* dump sort list for debuging */
|
||||||
|
@ -129,7 +126,7 @@ DxDdStartupDxGraphics( ULONG ulc1,
|
||||||
for (t=0;t<=DXG_INDEX_DxDdIoctl;t++)
|
for (t=0;t<=DXG_INDEX_DxDdIoctl;t++)
|
||||||
{
|
{
|
||||||
DPRINT1("gpDxFuncs[0x%08lx].iFunc = 0x%08lx\n",t,gpDxFuncs[t].iFunc);
|
DPRINT1("gpDxFuncs[0x%08lx].iFunc = 0x%08lx\n",t,gpDxFuncs[t].iFunc);
|
||||||
DPRINT1("gpDxFuncs[0x%08lx].pfn = 0x%08lx\n",t,gpDxFuncs[t].pfn);
|
DPRINT1("gpDxFuncs[0x%08lx].pfn = 0x%08lx\n",t,gpDxFuncs[t].pfn);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
DPRINT1("DirectX interface is activated\n");
|
DPRINT1("DirectX interface is activated\n");
|
||||||
|
@ -183,10 +180,13 @@ NtGdiDdCreateDirectDrawObject(HDC hdc)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* FIXME This should be alloc for each drv and use it from each drv, not global for whole win32k */
|
/* FIXME This should be alloc for each drv and use it from each drv, not global for whole win32k */
|
||||||
((PGDIDEVICE)pDC->pPDev)->pEDDgpl = &eDdirectDraw_Global;
|
((PGDIDEVICE)pDC->pPDev)->pEDDgpl = &edd_DdirectDraw_Global;
|
||||||
RtlZeroMemory(&eDdirectDraw_Global,sizeof(EDD_DIRECTDRAW_GLOBAL));
|
RtlZeroMemory(&edd_DdirectDraw_Global,sizeof(EDD_DIRECTDRAW_GLOBAL));
|
||||||
DC_UnlockDc(pDC);
|
|
||||||
|
|
||||||
|
/* setup hdev for edd_DdirectDraw_Global xp */
|
||||||
|
edd_DdirectDraw_Global.hDev = (PVOID)pDC->pPDev;
|
||||||
|
edd_DdirectDraw_Global.hPDev = (PVOID)pDC->pPDev;
|
||||||
|
DC_UnlockDc(pDC);
|
||||||
|
|
||||||
/* get the pfnDdCreateDirectDrawObject after we load the drv */
|
/* get the pfnDdCreateDirectDrawObject after we load the drv */
|
||||||
pfnDdCreateDirectDrawObject = (PGD_DDCREATEDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdCreateDirectDrawObject].pfn;
|
pfnDdCreateDirectDrawObject = (PGD_DDCREATEDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdCreateDirectDrawObject].pfn;
|
||||||
|
@ -201,7 +201,7 @@ NtGdiDdCreateDirectDrawObject(HDC hdc)
|
||||||
DxHandle = pfnDdCreateDirectDrawObject(hdc);
|
DxHandle = pfnDdCreateDirectDrawObject(hdc);
|
||||||
|
|
||||||
#if DXDDRAWDEBUG
|
#if DXDDRAWDEBUG
|
||||||
dump_edd_directdraw_global(&eDdirectDraw_Global);
|
dump_edd_directdraw_global(&edd_DdirectDraw_Global);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return DxHandle;
|
return DxHandle;
|
||||||
|
|
|
@ -530,7 +530,11 @@ STDCALL
|
||||||
DxEngLockHdev(HDEV hDev)
|
DxEngLockHdev(HDEV hDev)
|
||||||
{
|
{
|
||||||
PGDIDEVICE pPDev = (PGDIDEVICE)hDev;
|
PGDIDEVICE pPDev = (PGDIDEVICE)hDev;
|
||||||
PERESOURCE Resource = pPDev->hsemDevLock;
|
PERESOURCE Resource;
|
||||||
|
|
||||||
|
DPRINT1("hDev : 0x%08lx\n",hDev);
|
||||||
|
|
||||||
|
Resource = pPDev->hsemDevLock;
|
||||||
|
|
||||||
DPRINT1("ReactX Calling : DxEngLockHdev \n");
|
DPRINT1("ReactX Calling : DxEngLockHdev \n");
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue