public void testExpNamedPipes() throws Exception {
		Handle hPipe = checkHandle(Kernel32.INSTANCE.CreateNamedPipe(
			"\\\\.\\pipe\\GhidraGDB" /*lpName*/,
			Kernel32.PIPE_ACCESS_DUPLEX /*dwOpenMode*/,
			Kernel32.PIPE_TYPE_BYTE | Kernel32.PIPE_WAIT /*dwPipeMode*/,
			Kernel32.PIPE_UNLIMITED_INSTANCES /*nMaxInstances*/,
			1024 /*nOutBufferSize*/,
			1024 /*nInBufferSize*/,
			0 /*nDefaultTimeOut*/,
			null /*lpSecurityAttributes*/));

		try (PrintWriter writer = new PrintWriter(new HandleOutputStream(hPipe));
				BufferedReader reader =
					new BufferedReader(new InputStreamReader(new HandleInputStream(hPipe)))) {

			writer.println("-add-inferior");
			writer.flush();

			String line;
			while (null != (line = reader.readLine())) {
				System.out.println(line);
			}
		}
	}
Experiment with MinGW GDB, named pipes, and {@code new-ui}.

<p>
Run this test, start GDB in a command shell, then issue
"{@code new-ui mi2 \\\\.\\pipe\\GhidraGDB}". With GDB 11.1, GDB will print "New UI allocated"
to the console, and I'll receive {@code =thread-group-added,id="i1"} on the pipe. However,
GDB never seems to process my {@code -add-inferior} command. Furthermore, GDB freezes and no
longer accepts input on the console, either.
Ghidra/Framework/Pty/src/test/java/ghidra/pty/windows/NamedPipeTest.java