Implemented NtSignalAndWaitForSingleObject.

diff --git a/server/event.c b/server/event.c
index e1487d3..fa1dbbf 100644
--- a/server/event.c
+++ b/server/event.c
@@ -41,6 +41,7 @@
 static void event_dump( struct object *obj, int verbose );
 static int event_signaled( struct object *obj, struct thread *thread );
 static int event_satisfied( struct object *obj, struct thread *thread );
+static int event_signal( struct object *obj, unsigned int access);
 
 static const struct object_ops event_ops =
 {
@@ -50,6 +51,7 @@
     remove_queue,              /* remove_queue */
     event_signaled,            /* signaled */
     event_satisfied,           /* satisfied */
+    event_signal,              /* signal */
     no_get_fd,                 /* get_fd */
     no_destroy                 /* destroy */
 };
@@ -123,6 +125,20 @@
     return 0;  /* Not abandoned */
 }
 
+static int event_signal( struct object *obj, unsigned int access )
+{
+    struct event *event = (struct event *)obj;
+    assert( obj->ops == &event_ops );
+
+    if (!(access & EVENT_MODIFY_STATE))
+    {
+        set_error( STATUS_ACCESS_DENIED );
+        return 0;
+    }
+    set_event( event );
+    return 1;
+}
+
 /* create an event */
 DECL_HANDLER(create_event)
 {