server: Store sharing state for named pipes.
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 29d5c5e..9a37acb 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -91,6 +91,7 @@
 {
     struct object       obj;         /* object header */
     unsigned int        flags;
+    unsigned int        sharing;
     unsigned int        maxinstances;
     unsigned int        outsize;
     unsigned int        insize;
@@ -960,6 +961,7 @@
         pipe->maxinstances = req->maxinstances;
         pipe->timeout = req->timeout;
         pipe->flags = req->flags;
+        pipe->sharing = req->sharing;
     }
     else
     {
diff --git a/server/protocol.def b/server/protocol.def
index 123f16a..71524a4 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -2186,6 +2186,7 @@
     unsigned int   attributes;   /* object attributes */
     obj_handle_t   rootdir;      /* root directory */
     unsigned int   options;
+    unsigned int   sharing;
     unsigned int   maxinstances;
     unsigned int   outsize;
     unsigned int   insize;
diff --git a/server/request.h b/server/request.h
index d2ca2f6..2d4528a 100644
--- a/server/request.h
+++ b/server/request.h
@@ -1477,12 +1477,13 @@
 C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, attributes) == 16 );
 C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, rootdir) == 20 );
 C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, options) == 24 );
-C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, maxinstances) == 28 );
-C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, outsize) == 32 );
-C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, insize) == 36 );
-C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, timeout) == 40 );
-C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, flags) == 48 );
-C_ASSERT( sizeof(struct create_named_pipe_request) == 56 );
+C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, sharing) == 28 );
+C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, maxinstances) == 32 );
+C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, outsize) == 36 );
+C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, insize) == 40 );
+C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, timeout) == 48 );
+C_ASSERT( FIELD_OFFSET(struct create_named_pipe_request, flags) == 56 );
+C_ASSERT( sizeof(struct create_named_pipe_request) == 64 );
 C_ASSERT( FIELD_OFFSET(struct create_named_pipe_reply, handle) == 8 );
 C_ASSERT( sizeof(struct create_named_pipe_reply) == 16 );
 C_ASSERT( FIELD_OFFSET(struct get_named_pipe_info_request, handle) == 12 );
diff --git a/server/trace.c b/server/trace.c
index 37ea216..670958a 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -2607,6 +2607,7 @@
     fprintf( stderr, ", attributes=%08x", req->attributes );
     fprintf( stderr, ", rootdir=%04x", req->rootdir );
     fprintf( stderr, ", options=%08x", req->options );
+    fprintf( stderr, ", sharing=%08x", req->sharing );
     fprintf( stderr, ", maxinstances=%08x", req->maxinstances );
     fprintf( stderr, ", outsize=%08x", req->outsize );
     fprintf( stderr, ", insize=%08x", req->insize );