server: Return correct object types in the get_directory_entry request.
diff --git a/server/semaphore.c b/server/semaphore.c
index 1412170..0e26125 100644
--- a/server/semaphore.c
+++ b/server/semaphore.c
@@ -44,6 +44,7 @@
 };
 
 static void semaphore_dump( struct object *obj, int verbose );
+static struct object_type *semaphore_get_type( struct object *obj );
 static int semaphore_signaled( struct object *obj, struct thread *thread );
 static int semaphore_satisfied( struct object *obj, struct thread *thread );
 static unsigned int semaphore_map_access( struct object *obj, unsigned int access );
@@ -53,6 +54,7 @@
 {
     sizeof(struct semaphore),      /* size */
     semaphore_dump,                /* dump */
+    semaphore_get_type,            /* get_type */
     add_queue,                     /* add_queue */
     remove_queue,                  /* remove_queue */
     semaphore_signaled,            /* signaled */
@@ -127,6 +129,13 @@
     fputc( '\n', stderr );
 }
 
+static struct object_type *semaphore_get_type( struct object *obj )
+{
+    static const WCHAR name[] = {'S','e','m','a','p','h','o','r','e'};
+    static const struct unicode_str str = { name, sizeof(name) };
+    return get_object_type( &str );
+}
+
 static int semaphore_signaled( struct object *obj, struct thread *thread )
 {
     struct semaphore *sem = (struct semaphore *)obj;