Windows 7 WOW64 seems to DTRT with respect to copying the process data; needs_count_in_si_lpres2 can be false except on Vista. I'm testing a cygwin with that modification now and it works fine (persistent Windows 7 sporadic issues notwithstanding; those seem to be solved by rebaseall).
lpReserved2 working properly leads to another idea: set *lpReserved2 to a non-zero value even when needs_count_in_si_lpres2 is a false; specifically, set it to three and pass the stdin, stdout, and stderr handles and flags via child_info. (child_info would have to begin with the appropriate values.) At the worst, it does no harm; but if the child is using the MS C runtime, it'll pick up the stdin file descriptors and flags from this data area. If the flags are set properly, you should be able to get the C runtime to report _isatty() is true for cygwin ptys. (Though of course GetFileType will still reveal the thing to be a socket.) -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple