server: Support for opening devices.
Added support for opening devices directly with the server when they
don't correspond to a Unix file.
diff --git a/server/trace.c b/server/trace.c
index fb1be68..016b007 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -1025,6 +1025,21 @@
     fprintf( stderr, " handle=%p", req->handle );
 }
 
+static void dump_open_file_object_request( const struct open_file_object_request *req )
+{
+    fprintf( stderr, " access=%08x,", req->access );
+    fprintf( stderr, " attributes=%08x,", req->attributes );
+    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " sharing=%08x,", req->sharing );
+    fprintf( stderr, " filename=" );
+    dump_varargs_unicode_str( cur_size );
+}
+
+static void dump_open_file_object_reply( const struct open_file_object_reply *req )
+{
+    fprintf( stderr, " handle=%p", req->handle );
+}
+
 static void dump_alloc_file_handle_request( const struct alloc_file_handle_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
@@ -3223,6 +3238,7 @@
     (dump_func)dump_release_semaphore_request,
     (dump_func)dump_open_semaphore_request,
     (dump_func)dump_create_file_request,
+    (dump_func)dump_open_file_object_request,
     (dump_func)dump_alloc_file_handle_request,
     (dump_func)dump_get_handle_fd_request,
     (dump_func)dump_set_handle_fd_request,
@@ -3436,6 +3452,7 @@
     (dump_func)dump_release_semaphore_reply,
     (dump_func)dump_open_semaphore_reply,
     (dump_func)dump_create_file_reply,
+    (dump_func)dump_open_file_object_reply,
     (dump_func)dump_alloc_file_handle_reply,
     (dump_func)dump_get_handle_fd_reply,
     (dump_func)dump_set_handle_fd_reply,
@@ -3649,6 +3666,7 @@
     "release_semaphore",
     "open_semaphore",
     "create_file",
+    "open_file_object",
     "alloc_file_handle",
     "get_handle_fd",
     "set_handle_fd",
@@ -3835,6 +3853,7 @@
     { "ACCESS_DENIED",               STATUS_ACCESS_DENIED },
     { "ACCESS_VIOLATION",            STATUS_ACCESS_VIOLATION },
     { "ALIAS_EXISTS",                STATUS_ALIAS_EXISTS },
+    { "BAD_DEVICE_TYPE",             STATUS_BAD_DEVICE_TYPE },
     { "BUFFER_OVERFLOW",             STATUS_BUFFER_OVERFLOW },
     { "BUFFER_TOO_SMALL",            STATUS_BUFFER_TOO_SMALL },
     { "CHILD_MUST_BE_VOLATILE",      STATUS_CHILD_MUST_BE_VOLATILE },