Fix conhost clipboard handling bugs #16618
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
conhost has 2 bugs related to clipboard handling:
OpenClipboard
: When copying to the clipboardexplorer.exe is very eager to open the clipboard and peek into it.
I'm not sure why it happens, but I can see
CFSDropTarget
in thecall stack. It uses COM RPC and so this takes ~20ms every time.
That breaks conhost's clipboard randomly during
ConsoleBench
.During non-benchmarks I expect this to break during RDP.
CF_UNICODETEXT
isdocumented to be a null-terminated string, which conhost v2
failed to handle as it relied entirely on
GlobalSize
.Additionally, this changeset simplifies the
HGLOBAL
code slightlyby adding
_copyToClipboard
to abstract it away.ConsoleBench
(Add an automated conhost benchmark tool #16453) doesn't fail randomly anymore ✅(cherry picked from commit 86c30bd)