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)
{