small named pipe patch

Ove Kaaven ovehk at ping.uio.no
Sat Jul 14 11:13:06 CDT 2001


When a named pipe name exist but all server instances are already
connected, CreateFile should return ERROR_PIPE_BUSY... and it seems
STATUS_PIPE_NOT_AVAILABLE is the most-used constant that maps to
ERROR_PIPE_BUSY when I looked at it on MSDN.

I'm planning to use named pipes to implement a basic interprocess COM, to
support the stupid InstallShield v6 under Wine, so it would be nice if
they could be implemented fully (would e.g. be nice if someone implemented
WaitForNamedPipe for me, and things like that).

(Would that be a good idea?)

Log:
Ove Kaaven <ovek at transgaming.com>
Added STATUS_* constant for named pipes. Return STATUS_PIPE_NOT_AVAILABLE
when opening a named pipe if the pipe exists but no instances of it are
currently waiting for a connection.

Index: include/winnt.h
===================================================================
RCS file: /home/wine/wine/include/winnt.h,v
retrieving revision 1.91
diff -u -r1.91 winnt.h
--- include/winnt.h	2001/06/22 23:43:09	1.91
+++ include/winnt.h	2001/07/14 15:40:37
@@ -1629,7 +1629,17 @@
 #define STATUS_INTEGER_DIVIDE_BY_ZERO    0xC0000094
 #define STATUS_INTEGER_OVERFLOW          0xC0000095
 #define STATUS_PRIVILEGED_INSTRUCTION    0xC0000096
-#define STATUS_MEDIA_WRITE_PROTECTED     0XC00000A2
+#define STATUS_MEDIA_WRITE_PROTECTED     0xC00000A2
+#define STATUS_INSTANCE_NOT_AVAILABLE    0xC00000AB
+#define STATUS_PIPE_NOT_AVAILABLE        0xC00000AC
+#define STATUS_INVALID_PIPE_STATE        0xC00000AD
+#define STATUS_PIPE_BUSY                 0xC00000AE
+#define STATUS_ILLEGAL_FUNCTION          0xC00000AF
+#define STATUS_PIPE_DISCONNECTED         0xC00000B0
+#define STATUS_PIPE_CLOSING              0xC00000B1
+#define STATUS_PIPE_CONNECTED            0xC00000B2
+#define STATUS_PIPE_LISTENING            0xC00000B3
+#define STATUS_INVALID_READ_MODE         0xC00000B4
 #define	STATUS_INVALID_PARAMETER_2       0xC00000F0
 #define STATUS_STACK_OVERFLOW            0xC00000FD
 #define STATUS_DIRECTORY_NOT_EMPTY       0xC0000101
Index: server/named_pipe.c
===================================================================
RCS file: /home/wine/wine/server/named_pipe.c,v
retrieving revision 1.1
diff -u -r1.1 named_pipe.c
--- server/named_pipe.c	2001/07/10 19:16:50	1.1
+++ server/named_pipe.c	2001/07/14 15:40:37
@@ -264,7 +264,7 @@
             release_object( partner );
         }
         else {
-            set_error(STATUS_NO_SUCH_FILE);
+            set_error(STATUS_PIPE_NOT_AVAILABLE);
         }
     }
     else {





More information about the wine-patches mailing list