Make the Handle of CreateNamedPipe inherit

Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Sun Feb 22 09:09:21 CST 2004


Changelog:
	 server/protocol.def, server/named_pipe.c, dlls/kernel/sync.c:
	 Pass bInheritHandle so CreateNamedPipe creates inheritable handles

Run tools/make_request..
-- 
Uwe Bonnes                bon at elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Index: wine/server/protocol.def
===================================================================
RCS file: /home/wine/wine/server/protocol.def,v
retrieving revision 1.92
diff -u -r1.92 protocol.def
--- wine/server/protocol.def	3 Jan 2004 00:38:30 -0000	1.92
+++ wine/server/protocol.def	22 Feb 2004 14:55:50 -0000
@@ -1705,6 +1705,7 @@
     unsigned int   outsize;
     unsigned int   insize;
     unsigned int   timeout;
+    unsigned int   inherit;
     VARARG(name,unicode_str);    /* pipe name */
 @REPLY
     obj_handle_t   handle;       /* handle to the pipe */
Index: wine/server/named_pipe.c
===================================================================
RCS file: /home/wine/wine/server/named_pipe.c,v
retrieving revision 1.27
diff -u -r1.27 named_pipe.c
--- wine/server/named_pipe.c	5 Sep 2003 23:15:41 -0000	1.27
+++ wine/server/named_pipe.c	22 Feb 2004 14:55:50 -0000
@@ -629,7 +629,7 @@
     {
         server->state = ps_idle_server;
         reply->handle = alloc_handle( current->process, server,
-                                      GENERIC_READ|GENERIC_WRITE, 0 );
+                                      GENERIC_READ|GENERIC_WRITE, req->inherit );
         server->pipe->instances++;
         release_object( server );
     }
Index: wine/dlls/kernel/sync.c
===================================================================
RCS file: /home/wine/wine/dlls/kernel/sync.c,v
retrieving revision 1.47
diff -u -r1.47 sync.c
--- wine/dlls/kernel/sync.c	12 Feb 2004 20:03:53 -0000	1.47
+++ wine/dlls/kernel/sync.c	22 Feb 2004 14:55:53 -0000
@@ -1062,6 +1062,7 @@
         req->outsize = nOutBufferSize;
         req->insize = nInBufferSize;
         req->timeout = nDefaultTimeOut;
+        req->inherit =  (attr && (attr->nLength>=sizeof(*attr)) && attr->bInheritHandle);
         wine_server_add_data( req, name, len * sizeof(WCHAR) );
         SetLastError(0);
         if (!wine_server_call_err( req )) ret = reply->handle;



More information about the wine-patches mailing list