Skip to content

ConPTY Version probing #19102

@patrickbkr

Description

@patrickbkr

This is more of a question than a feature request.

I'm currently working on adding PTY support to libuv. Bundling ConPTY is not an option, so I have to work with the version kernel32.dll gives me. There are some relevant developments in the last few years/months.

  • Support for Overlapped IO (#17510)
  • ConptyReleasePseudoConsole (#14544)
  • Probably a few more

How do I know which features are available in the ConPTY version bundled with Windows? Is there some version number I can retrieve? Is there a Matrix of Windows version and ConPTY version?

Also: Is there any documentation on how to use these older ConPTY versions? I find it pretty difficult to find any in-depth information on this. For example, here are some of the questions I've stumbled over:

  • Do I have to use synchronous pipes for in and out? (I think: Yes in older versions, no in recent versions.)
  • Can I use the same (bidirectional) pipe for PTY in and out? (I think: Yes.)
  • Do I have to perform stdin writing and stdout reading each on their own thread? (I think: No.)
  • What's happening when I close the pty write handle? (I think: ConPTY sends a CTRL-C to the process.)
  • How do I properly shut down a ConPTY session? (According to this comment and this remark, it's a pretty delicate dance I have to perform.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs-Tag-FixDoesn't match tag requirementsNeeds-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions