CcUninitializeCacheMap(): Implemented 'UninitializeCompleteEvent'
[captive.git] / src / libcaptive / cc / init.c
index a50e6eb..90e9bbf 100644 (file)
@@ -22,6 +22,7 @@
 #include "reactos/ddk/ccfuncs.h"       /* self */
 #include <glib/gmessages.h>
 #include <glib/ghash.h>
+#include "reactos/ddk/kefuncs.h"       /* for KeSetEvent() */
 
 
 /* map: (FILE_OBJECT *)FileObject -> (FILE_OBJECT *)FileObject */
@@ -89,7 +90,6 @@ BOOLEAN CcUninitializeCacheMap(IN PFILE_OBJECT FileObject,
 {
        g_return_val_if_fail(FileObject!=NULL,FALSE);
        /* assert current size ==*TruncateSize if TruncateSize */
-       g_return_val_if_fail(UninitializeCompleteEvent==NULL,FALSE);    /* NOT IMPLEMENTED YET */
 
        fileobject_cached_hash_init();
 
@@ -98,5 +98,11 @@ BOOLEAN CcUninitializeCacheMap(IN PFILE_OBJECT FileObject,
                return FALSE;
        g_hash_table_remove(fileobject_cached_hash,FileObject);
 
+       /* FIXME: should we do KePulseEvent? Are we allowed to signal from inside CcUninitializeCacheMap() ? */
+       KeSetEvent(
+                       &UninitializeCompleteEvent->Event,      /* Event */
+                       IO_NO_INCREMENT,        /* Increment */
+                       FALSE); /* Wait */
+
        return TRUE;
 }