+ExReleaseResourceLite()
authorshort <>
Wed, 6 Nov 2002 23:36:48 +0000 (23:36 +0000)
committershort <>
Wed, 6 Nov 2002 23:36:48 +0000 (23:36 +0000)
+ExReleaseResourceForThreadLite()
 - 'Resource->NumberOfSharedWaiters!=NULL' is not yet supported

ntoskrnl/ex/resource.c

index 9e458ab..4e90578 100644 (file)
@@ -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