Windows 2000 and named pipes
-
I'm using named pipes as an interprocess communication mechanism in a distributed application. This works successfully on Windows NT 4.0; I'm using this mechanism since several years (since the dawn of NT 3.1 back in late 1992). Now, with Windows 2000, some things seem to have changed. When running several application components on a single machine or across a network that all do use named pipes, suddenly overlapped I/O on named pipes doesn't work any longer, that is, ReadFile() (using overlapped I/O!) does not return immediately but blocks for about a minute. This seems to be dependent on the number of active named pipe instances; if I reduce the number of named pipes used, the 'overlapped timeout' does not occur. The documentation (MSDN library, October 2000 edition) does not state any such changes in named pipe functionality. This is a severe problem, since my distributed application (a process control system) depends on named pipe usage and eventually we have to use Windows 2000 instead of NT 4.0. (Which besides the named pipe problem is a huge advancement) Has anyone yet made similar experiences or does anyone know a way to circumvent this problem? Changing from named pipes to something else would be no feasible solution, due to the amount of source code adaptation necessary.