Added server_call_noerr function that avoids touching the last error.

diff --git a/include/server.h b/include/server.h
index d492b88..c00cab8 100644
--- a/include/server.h
+++ b/include/server.h
@@ -922,6 +922,10 @@
 
 /* client communication functions */
 
+extern unsigned int server_call_noerr( enum request req );
+extern unsigned int server_call_fd( enum request req, int fd_out, int *fd_in );
+extern void server_protocol_error( const char *err, ... );
+
 /* get a pointer to the request buffer */
 static inline void * WINE_UNUSED get_req_buffer(void)
 {
@@ -934,9 +938,13 @@
     return (char *)NtCurrentTeb()->buffer + NtCurrentTeb()->buffer_size - (char *)ptr;
 }
 
-extern unsigned int server_call( enum request req );
-extern unsigned int server_call_fd( enum request req, int fd_out, int *fd_in );
-extern void server_protocol_error( const char *err, ... );
+/* do a server call and set the last error code */
+static inline int server_call( enum request req )
+{
+    unsigned int res = server_call_noerr( req );
+    if (res) SetLastError( res );
+    return res;
+}
 
 extern int CLIENT_InitServer(void);
 extern int CLIENT_SetDebug( int level );
diff --git a/scheduler/client.c b/scheduler/client.c
index 128bb8c..d93ee1d 100644
--- a/scheduler/client.c
+++ b/scheduler/client.c
@@ -225,18 +225,14 @@
 
 
 /***********************************************************************
- *           server_call
+ *           server_call_noerr
  *
  * Perform a server call.
  */
-unsigned int server_call( enum request req )
+unsigned int server_call_noerr( enum request req )
 {
-    unsigned int res;
-
     send_request( req );
-    res = wait_reply();
-    if (res) SetLastError( res );
-    return res;  /* error code */
+    return wait_reply();
 }