{
// www.osr.com/ddk/graphics/gdifncs_14br.htm
PTHREADINFO W32Thread;
- ASSERT(hsem);
+
+ /* On Windows a NULL hsem is ignored */
+ if (hsem == NULL)
+ {
+ DPRINT1("EngAcquireSemaphore called with hsem == NULL!\n");
+ return;
+ }
+
ExEnterCriticalRegionAndAcquireResourceExclusive((PERESOURCE)hsem);
W32Thread = PsGetThreadWin32Thread(PsGetCurrentThread());
if (W32Thread) W32Thread->dwEngAcquireCount++;
{
// www.osr.com/ddk/graphics/gdifncs_5u3r.htm
PTHREADINFO W32Thread;
- ASSERT(hsem);
+
+ /* On Windows a NULL hsem is ignored */
+ if (hsem == NULL)
+ {
+ DPRINT1("EngReleaseSemaphore called with hsem == NULL!\n");
+ return;
+ }
+
W32Thread = PsGetThreadWin32Thread(PsGetCurrentThread());
if (W32Thread) --W32Thread->dwEngAcquireCount;
ExReleaseResourceAndLeaveCriticalRegion((PERESOURCE)hsem);