ShowSuperHidden, comme nous l’avons découvert, contrôle si les fichiers super cachés (Caché + Système) sont affichés. Pour autant que je puisse le déterminer, SuperHidden ne contrôle rien et son existence est probablement une erreur de programmation.
En utilisant Process Monitor, j’ai observé les lectures et écritures de ces valeurs de registre. La seule interaction avec SuperHidden était une écriture lorsque l’utilisateur ouvrait l’onglet Affichage de la boîte de dialogue Options des dossiers. Elle recevait un 1 si les fichiers super cachés sont affichés, 0 sinon. Elle n’a jamais été lue, même quand j’ai terminé et redémarré l’Explorateur.
Procmon fournit la pile d’appels qui a conduit à une opération surveillée (double-cliquez sur un événement et consultez l’onglet Pile), j’ai donc examiné les fichiers DLL impliqués en utilisant IDA v5.0. La seule DLL pertinente mentionnant SuperHidden était shell32.dll. La fonction CachedShellState::SaveAdvancedSettings effectue une écriture de registre vers cette valeur et d’autres dans cette clé, enregistrant les paramètres d’affichage actuels.
L’Explorateur appelle apparemment cette fonction avant d’afficher l’onglet Affichage. C’est probablement fait pour s’assurer que le registre est cohérent avec les paramètres actuels en mémoire avant de charger l’état actuel des options d’affichage, bien que j’admette ne pas être sûr à 100% du raisonnement. Quoi qu’il en soit, la fonction correspondante de shell32.dll CachedShellState::_GetAdvancedSettings effectue une lecture depuis la valeur correcte, ShowSuperHidden.
Ces listings de désassemblage proviennent de la version Windows 7 de cette DLL. Sous Windows 10, SuperHidden n’existe pas dans le registre, et CachedShellState::SaveAdvancedSettings écrit dans ShowSuperHidden.
Par conséquent, je conclus que lors de la programmation de la version de cette fonction livrée avec Windows 7, un développeur a par erreur omis le Show dans ShowSuperHidden, mais l’erreur a été corrigée entre-temps pour Windows 10.
Pour les curieux, la boîte de dialogue Options des dossiers n’est pas cassée par cette erreur car elle consulte l’entrée ValueName sous chaque clé de paramètre ici :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder
Déterminer la signification des autres parties de cette branche est laissé comme exercice (amusant !) au lecteur.