CreatePseudoConsole API uses old conhost even though the latest Windows Terminal is installed #7391

Closed
opened 2026-01-31 01:02:45 +00:00 by claunia · 2 comments
Owner

Originally created by @luke1961 on GitHub (Apr 13, 2020).

Environment

Windows 10, tried with multiple builds.

Windows build number: [run `[Environment]::OSVersion` for powershell, or `ver` for cmd]
Windows Terminal version (if applicable):

Any other software?

Steps to reproduce

  1. Create a simple program which uses CreatePseudoConsole API.
  2. Launch Process Explorer
  3. Find your process in the process tree
  4. Watch what got launched by CreatePseudoConsole

Expected behavior

Expected to see OpenConsole from the Windows Terminal folder

Actual behavior

I see that the old conpty is being launched instead of OpenConsole. This is a serious problem because the old conpty has problems with emoji characters etc. The VTPipeTerm from your package has the same problem when it uses CreatePseudoConsole. Of course CreateConPty in conpty.h may be modified to brute force a specific path in the manual creation mode but this is not my point. I would like the CreatePseudoConsole to work because I like the control it gives me over child process creation. Any suggestions? Even a hack will do for now. or maybe a 'CreatePseudoconsoleEx' that allows for a path to the conpty/OpenConsole? Or an installation option in Windows Terminal setup to replace the existing conpty.

Originally created by @luke1961 on GitHub (Apr 13, 2020). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> <!-- This bug tracker is monitored by Windows Terminal development team and other technical folks. **Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**. Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue. If this is an application crash, please also provide a Feedback Hub submission link so we can find your diagnostic data on the backend. Use the category "Apps > Windows Terminal (Preview)" and choose "Share My Feedback" after submission to get the link. Please use this form and describe your issue, concisely but precisely, with as much detail as possible. --> # Environment Windows 10, tried with multiple builds. ```none Windows build number: [run `[Environment]::OSVersion` for powershell, or `ver` for cmd] Windows Terminal version (if applicable): Any other software? ``` # Steps to reproduce <!-- A description of how to trigger this bug. --> 1. Create a simple program which uses CreatePseudoConsole API. 2. Launch Process Explorer 3. Find your process in the process tree 4. Watch what got launched by CreatePseudoConsole # Expected behavior <!-- A description of what you're expecting, possibly containing screenshots or reference material. --> Expected to see OpenConsole from the Windows Terminal folder # Actual behavior <!-- What's actually happening? --> I see that the old conpty is being launched instead of OpenConsole. This is a serious problem because the old conpty has problems with emoji characters etc. The VTPipeTerm from your package has the same problem when it uses CreatePseudoConsole. Of course CreateConPty in conpty.h may be modified to brute force a specific path in the manual creation mode but this is not my point. I would like the CreatePseudoConsole to work because I like the control it gives me over child process creation. Any suggestions? Even a hack will do for now. or maybe a 'CreatePseudoconsoleEx' that allows for a path to the conpty/OpenConsole? Or an installation option in Windows Terminal setup to replace the existing conpty.
claunia added the Resolution-Duplicate label 2026-01-31 01:02:45 +00:00
Author
Owner

@DHowett-MSFT commented on GitHub (Apr 13, 2020):

Yeah, this is by design for now. It's complicated, because conhost is a system component. You'll have to wait until we can finish #1130 and #3577.

/dup #1130

@DHowett-MSFT commented on GitHub (Apr 13, 2020): Yeah, this is by design for now. It's complicated, because conhost is a system component. You'll have to wait until we can finish #1130 and #3577. /dup #1130
Author
Owner

@ghost commented on GitHub (Apr 13, 2020):

Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!

@ghost commented on GitHub (Apr 13, 2020): Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#7391