This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: ptys - I give up
- From: Corinna Vinschen <corinna-cygwin at cygwin dot com>
- To: cygwin at cygwin dot com
- Date: Fri, 26 Jul 2013 20:24:35 +0200
- Subject: Re: ptys - I give up
- References: <20130726061334 dot GA3780 at ednor dot casa dot cgf dot cx> <51F21AD0 dot 5090107 at dancol dot org> <20130726152702 dot GC4495 at ednor dot casa dot cgf dot cx> <51F2A21F dot 60302 at dancol dot org> <20130726163508 dot GA25789 at calimero dot vinschen dot de> <51F2AA0C dot 4040903 at dancol dot org> <20130726171017 dot GV5086 at calimero dot vinschen dot de> <51F2B0B9 dot 9000807 at dancol dot org>
- Reply-to: cygwin at cygwin dot com
On Jul 26 10:24, Daniel Colascione wrote:
> On 7/26/2013 10:10 AM, Corinna Vinschen wrote:
> > On Jul 26 09:55, Daniel Colascione wrote:
> >> In Windows 8, the implementation is completely different. There, console handles
> >> are real kernel objects.
> >
> > Really? That's entirely new to me. Do you know if there's some description
> > available? What are the implications? Are console handles now handles to
> > something like named pipes as well? Is there a console FS comparable to
> > \Device\NamedPipe\?
>
> I don't know the details, and I'm not aware of any new facilities exposed to
> applications. I'd have loved a pseudoconsole API, but we didn't get one.
I see a new device called \Device\ConDrv and \GLOBAL?? now contains
symlinks
CON -> \Device\ConDrv\Console
CONIN$ -> \Device\ConDrv\CurrentIn
CONOUT$ -> \Device\ConDrv\CurrentOut
> You can see the difference in a debugger, though: console pseudohandles *look*
> strange and don't show up in the process handle table. The difference shouldn't
Console handle value % 4 != 0
> really matter, though: applications shouldn't really care what kind of handles
> they get as long as system APIs accept them. The problem with writes larger than
> 8k (I think that was the limit?) to console handles failing seems to have
> disappeared, though.
Uhm... there was a problem? I don't see a hint on the net, nor on MSDN.
The Cygwin DLL uses a maximum buffer size of 16K for console writes.
If there's some documented problem, maybe we should reduce the size to 8K.
> > But then again, doesn't that mean that your method stops working on W8?
>
> Not really --- it'll work fine. The difference means that operations on console
> handles that used not to work on Windows 7 might work on Windows 8. The public
> API contract hasn't changed, however, so applications aren't supposed to be
> doing these things anyway, and as long as application developers care about
> testing their applications on Windows 7, they won't.
>
> If you eventually do start seeing applications that do things with console
> handles that can't be done with console pseudohandles, well, you can hook more
> APIs to preserve the console handle illusion. But that time is a long way away,
> if it ever arrives at all.
I guess you're right.
Thanks,
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
--
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