delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2013/07/26/13:10:41

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:reply-to
:references:mime-version:content-type:in-reply-to; q=dns; s=
default; b=YiOonevWtJ+Z/yVrFf37+NdQ7bkhs9kIUp6GHPHm7q6SAsApmLo5V
WUygodK0Mqa5ZrVRTNL9PVVJ1pOxOz+YV9C4JrzUs6DEmhWxIISv4JYW5UvSMVL2
EEomh24qdljdJJDu3fk10Fuxtk3pWcEh3pJqOH2jhjOtkHIwM8lNTw=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:reply-to
:references:mime-version:content-type:in-reply-to; s=default;
bh=KQUl1zx/fAKGKbxj0r58ADj0F9A=; b=d/pJIK8JhmnIaHFXWv22eKhbOIv0
HgM6ChVpkMWltsQi/Zuh8lLEUCAvB7PgYUjwzVEEtcR18delRSoQTaxv27iR2qsC
hQE8fz0iz9/k1NE0pRz6FcO3jYEEQATv7b+B8b1HAfpRcRrx896OptSkK+7yrmLh
nVzI+y8miudyuys=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-Spam-SWARE-Status: No, score=0.2 required=5.0 tests=AWL,BAYES_50,RDNS_NONE autolearn=no version=3.3.1
Date: Fri, 26 Jul 2013 19:10:17 +0200
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: ptys - I give up
Message-ID: <20130726171017.GV5086@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
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>
MIME-Version: 1.0
In-Reply-To: <51F2AA0C.4040903@dancol.org>
User-Agent: Mutt/1.5.21 (2010-09-15)

On Jul 26 09:55, Daniel Colascione wrote:
> On 7/26/2013 9:35 AM, Corinna Vinschen wrote:
> > On Jul 26 09:21, Daniel Colascione wrote:
> >> On 7/26/2013 8:27 AM, Christopher Faylor wrote:
> >>> On Thu, Jul 25, 2013 at 11:44:32PM -0700, Daniel Colascione wrote:
> >>>
> >>>> Ugly, only half-implemented, but better: a hook-based pseudoconsole
> >>>> system for Windows.
> >>>
> >>> This is what I was holding out for.  The last time it came up here,
> >>> people seemed vehemently opposed to the idea since implementations that
> >>> do this (like the Console app and a couple of libraries floating around)
> >>> seem to have to poll the console looking for data and that could result
> >>> in data loss.
> >>>
> >>> I have had code (not mine) sitting in my Cygwin directory for years
> >>> which does this but I couldn't 100% convince myself that the detractors
> >>> for this idea weren't right.  Does your code work around this?
> >>
> >> I'm also against screen scrapers. That's why I wrote this library: it doesn't
> >> poll. It actually intercepts console APIs and implements console handles as
> >> pseudohandles, just like Windows <= 7 did, forwarding console API requests to a
> >> server. Any console program that works with Windows 7 should work with this
> >> library.
> > 
> > Out of curiosity, can you expand what you mean here?  I see a difference
> > between Windows pre-7 and Windows 7 and later. 
> 
> Conhost exists to solve the problem Raymond Chen described here:
> http://blogs.msdn.com/b/oldnewthing/archive/2007/12/31/6909007.aspx. Conhost
> exists so there's something running with lower privileges that can draw console
> UI --- it's a broker. The actual console-ing still happens entirely in user mode
> though, with the functions in kernel32 conspiring to provide the illusion that
> the system has something called a console handle.
> 
> 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\?

> Anyway, that pre-8 Windows used pseudo-handles for console handles is a good
> thing now. It means that any library that tries to intercept all console
> functions doesn't need to emulate all possible operations on console handles:
> instead, it just needs to emulate the operations Windows actually allowed on
> console handles, which was actually a fairly limited subset of what's allowed
> for handles in general.
> 
> Another way of saying it is that it's easy to fake console handles because
> Windows, too, was faking all along.

But then again, doesn't that mean that your method stops working on W8?


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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019