Skip to content

displays: converge key-name decoding on the fixed WinReg helper - #533

Merged
mgth merged 1 commit into
masterfrom
converge-winreg-keyname
Aug 1, 2026
Merged

displays: converge key-name decoding on the fixed WinReg helper#533
mgth merged 1 commit into
masterfrom
converge-winreg-keyname

Conversation

@mgth

@mgth mgth commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Supprime le doublon local de décodage de nom de clé de registre dans MonitorDeviceHelper, en convergeant sur le helper durci de HLab.Core (WinReg.GetHKeyName / WinReg.DecodeKeyNameInformation).

Le décodage borné de KEY_NAME_INFORMATION issu de la revue de #513 vit désormais dans HLab.Core, donc tous les appelants de RegistryKey(nint) bénéficient du correctif, pas seulement GetEdid.

Détails

  • MonitorDeviceHelper.GetEdid appelle GetHKeyName (résolu via le using static ...WinReg; déjà présent).
  • Les 39 lignes du doublon local (GetRegistryKeyName + DecodeKeyNameInformation) sont supprimées.
  • WindowsMonitorSafetyTests pointe sur WinReg.DecodeKeyNameInformation.
  • Deux using devenus morts du fait de la suppression sont retirés (System.IO, HLab.Sys.Windows.Monitors.Factory).

Pas de bump de sous-module : HLab.Core reste sur 7b6aeec, qui contient déjà le helper.

Différence de comportement à noter

La version partagée est plus stricte sur la passe de dimensionnement : elle exige STATUS_BUFFER_TOO_SMALL (0xC0000023) là où le doublon local se contentait de status != 0 avant d'allouer. C'est un durcissement, pas une simple déduplication.

Vérification

  • dotnet build LittleBigMouse-Linux.slnf : 0 erreur (avertissements préexistants uniquement).
  • dotnet test LittleBigMouse.DisplayLayout.Tests : 111/111 réussis.

Le code touché est Windows-only à l'exécution ; la compilation croisée et le test unitaire de décodage sont la couverture maximale possible sur Linux — le chemin ZwQueryKey lui-même n'est pas exercé.

🤖 Generated with Claude Code

The bounded KEY_NAME_INFORMATION decoding introduced by the #513 review
now lives in HLab.Core (WinReg.GetHKeyName/DecodeKeyNameInformation), so
every caller of RegistryKey(nint) gets the fix, not just GetEdid. Drop
the local duplicate in MonitorDeviceHelper and point the safety test at
the shared helper.

The shared version is also stricter on the sizing probe: it requires
STATUS_BUFFER_TOO_SMALL rather than merely a non-zero status before
allocating.

Co-Authored-By: Claude <noreply@anthropic.com>
@mgth
mgth merged commit 4692916 into master Aug 1, 2026
1 check passed
@mgth
mgth deleted the converge-winreg-keyname branch August 1, 2026 06:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant