- Send whole OBJECT_ATTRIBUTES.Attributes to the server not just an
inherit flag.
- Pass DesiredAccess to the server when creating mailslot.
diff --git a/server/protocol.def b/server/protocol.def
index 61a4e09..f0490cb 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -495,9 +495,9 @@
/* Create an event */
@REQ(create_event)
unsigned int access; /* wanted access rights */
+ unsigned int attributes; /* object attributes */
int manual_reset; /* manual reset event */
int initial_state; /* initial state of the event */
- int inherit; /* inherit flag */
VARARG(name,unicode_str); /* object name */
@REPLY
obj_handle_t handle; /* handle to the event */
@@ -514,7 +514,7 @@
/* Open an event */
@REQ(open_event)
unsigned int access; /* wanted access rights */
- int inherit; /* inherit flag */
+ unsigned int attributes; /* object attributes */
VARARG(name,unicode_str); /* object name */
@REPLY
obj_handle_t handle; /* handle to the event */
@@ -524,8 +524,8 @@
/* Create a mutex */
@REQ(create_mutex)
unsigned int access; /* wanted access rights */
+ unsigned int attributes; /* object attributes */
int owned; /* initially owned? */
- int inherit; /* inherit flag */
VARARG(name,unicode_str); /* object name */
@REPLY
obj_handle_t handle; /* handle to the mutex */
@@ -543,7 +543,7 @@
/* Open a mutex */
@REQ(open_mutex)
unsigned int access; /* wanted access rights */
- int inherit; /* inherit flag */
+ unsigned int attributes; /* object attributes */
VARARG(name,unicode_str); /* object name */
@REPLY
obj_handle_t handle; /* handle to the mutex */
@@ -553,9 +553,9 @@
/* Create a semaphore */
@REQ(create_semaphore)
unsigned int access; /* wanted access rights */
+ unsigned int attributes; /* object attributes */
unsigned int initial; /* initial count */
unsigned int max; /* maximum count */
- int inherit; /* inherit flag */
VARARG(name,unicode_str); /* object name */
@REPLY
obj_handle_t handle; /* handle to the semaphore */
@@ -574,7 +574,7 @@
/* Open a semaphore */
@REQ(open_semaphore)
unsigned int access; /* wanted access rights */
- int inherit; /* inherit flag */
+ unsigned int attributes; /* object attributes */
VARARG(name,unicode_str); /* object name */
@REPLY
obj_handle_t handle; /* handle to the semaphore */
@@ -1037,11 +1037,11 @@
/* Create a file mapping */
@REQ(create_mapping)
+ unsigned int access; /* wanted access rights */
+ unsigned int attributes; /* object attributes */
int size_high; /* mapping size */
int size_low; /* mapping size */
int protect; /* protection flags (see below) */
- unsigned int access; /* wanted access rights */
- int inherit; /* inherit flag */
obj_handle_t file_handle; /* file handle */
VARARG(name,unicode_str); /* object name */
@REPLY
@@ -1061,7 +1061,7 @@
/* Open a mapping */
@REQ(open_mapping)
unsigned int access; /* wanted access rights */
- int inherit; /* inherit flag */
+ unsigned int attributes; /* object attributes */
VARARG(name,unicode_str); /* object name */
@REPLY
obj_handle_t handle; /* handle to the mapping */
@@ -1354,7 +1354,7 @@
/* Create a waitable timer */
@REQ(create_timer)
unsigned int access; /* wanted access rights */
- int inherit; /* inherit flag */
+ unsigned int attributes; /* object attributes */
int manual; /* manual reset */
VARARG(name,unicode_str); /* object name */
@REPLY
@@ -1365,7 +1365,7 @@
/* Open a waitable timer */
@REQ(open_timer)
unsigned int access; /* wanted access rights */
- int inherit; /* inherit flag */
+ unsigned int attributes; /* object attributes */
VARARG(name,unicode_str); /* object name */
@REPLY
obj_handle_t handle; /* handle to the timer */
@@ -1680,13 +1680,13 @@
/* Create a named pipe */
@REQ(create_named_pipe)
unsigned int access;
+ unsigned int attributes; /* object attributes */
unsigned int options;
unsigned int flags;
unsigned int maxinstances;
unsigned int outsize;
unsigned int insize;
unsigned int timeout;
- int inherit; /* inherit flag */
VARARG(name,unicode_str); /* pipe name */
@REPLY
obj_handle_t handle; /* handle to the pipe */
@@ -1701,8 +1701,8 @@
/* Open an existing named pipe */
@REQ(open_named_pipe)
unsigned int access;
+ unsigned int attributes; /* object attributes */
unsigned int flags; /* file flags */
- int inherit; /* inherit flag */
VARARG(name,unicode_str); /* pipe name */
@REPLY
obj_handle_t handle; /* handle to the pipe */
@@ -2471,9 +2471,10 @@
/* Create a mailslot */
@REQ(create_mailslot)
+ unsigned int access; /* wanted access rights */
+ unsigned int attributes; /* object attributes */
unsigned int max_msgsize;
unsigned int read_timeout;
- int inherit;
VARARG(name,unicode_str); /* mailslot name */
@REPLY
obj_handle_t handle; /* handle to the mailslot */
@@ -2483,7 +2484,7 @@
/* Open an existing mailslot */
@REQ(open_mailslot)
unsigned int access;
- int inherit; /* inherit flag */
+ unsigned int attributes; /* object attributes */
unsigned int sharing; /* sharing mode */
VARARG(name,unicode_str); /* mailslot name */
@REPLY