Implement IntGdiReferencePdev and part of IntGdiUnreferencePdev.

svn path=/trunk/; revision=33288
This commit is contained in:
James Tabor 2008-05-05 01:34:17 +00:00
parent d0093b0beb
commit f9df01f16b

View file

@ -2699,16 +2699,27 @@ IntEnumHDev(VOID)
return &PrimarySurface;
}
HSEMAPHORE hsemDriverMgmt = NULL; // Hax, should be in dllmain.c and global.
VOID FASTCALL
IntGdiReferencePdev(PGDIDEVICE pPDev)
{
if(!hsemDriverMgmt) hsemDriverMgmt = EngCreateSemaphore(); // Hax, should be in dllmain.c
EngAcquireSemaphore(hsemDriverMgmt);
pPDev->cPdevRefs++;
EngReleaseSemaphore(hsemDriverMgmt);
}
VOID FASTCALL
IntGdiUnreferencePdev(PGDIDEVICE pPDev, DWORD CleanUpType)
{
EngAcquireSemaphore(hsemDriverMgmt);
pPDev->cPdevRefs--;
if (!pPDev->cPdevRefs)
{
// Handle the destruction of pPDev or GDIDEVICE or PDEVOBJ or PDEV etc.
}
EngReleaseSemaphore(hsemDriverMgmt);
}