From 4777bac7f231b0bf27c1807ec9231d31a4140b2a Mon Sep 17 00:00:00 2001 From: short <> Date: Wed, 6 Nov 2002 23:36:48 +0000 Subject: [PATCH] +ExReleaseResourceLite() +ExReleaseResourceForThreadLite() - 'Resource->NumberOfSharedWaiters!=NULL' is not yet supported --- ntoskrnl/ex/resource.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/ntoskrnl/ex/resource.c b/ntoskrnl/ex/resource.c index 9e458ab..4e90578 100644 --- a/ntoskrnl/ex/resource.c +++ b/ntoskrnl/ex/resource.c @@ -155,8 +155,6 @@ ExAcquireResourceExclusiveLite ( return(TRUE); } -#ifndef LIBCAPTIVE - static BOOLEAN EiRemoveSharedOwner(PERESOURCE Resource, ERESOURCE_THREAD ResourceThreadId) /* @@ -202,6 +200,8 @@ static BOOLEAN EiRemoveSharedOwner(PERESOURCE Resource, return(FALSE); } +#ifndef LIBCAPTIVE + static BOOLEAN EiAddSharedOwner(PERESOURCE Resource) /* * FUNCTION: Adds the current thread to the shared owners of the resource @@ -690,6 +690,8 @@ ExReinitializeResourceLite ( Resource->OwnerThreads[1].a.OwnerCount=0; } +#endif /* LIBCAPTIVE */ + VOID FASTCALL ExReleaseResourceLite ( @@ -700,6 +702,8 @@ ExReleaseResourceLite ( ExGetCurrentResourceThread())); } +#ifndef LIBCAPTIVE + VOID STDCALL ExReleaseResourceForThread ( @@ -710,6 +714,8 @@ ExReleaseResourceForThread ( return(ExReleaseResourceForThreadLite(Resource,ResourceThreadId)); } +#endif /* LIBCAPTIVE */ + VOID STDCALL ExReleaseResourceForThreadLite ( @@ -765,11 +771,15 @@ ExReleaseResourceForThreadLite ( Resource->NumberOfSharedWaiters); if (Resource->NumberOfSharedWaiters) { +#ifndef LIBCAPTIVE DPRINT("Releasing semaphore\n"); KeReleaseSemaphore(Resource->SharedWaiters, IO_NO_INCREMENT, Resource->NumberOfSharedWaiters, FALSE); +#else /* !LIBCAPTIVE */ + KeBugCheck(0); +#endif /* !LIBCAPTIVE */ } KeReleaseSpinLock(&Resource->SpinLock, oldIrql); DPRINT("ExReleaseResourceForThreadLite() finished\n"); @@ -793,6 +803,7 @@ ExReleaseResourceForThreadLite ( DPRINT("ExReleaseResourceForThreadLite() finished\n"); } +#ifndef LIBCAPTIVE VOID STDCALL -- 1.8.3.1