Pourquoi Windows a-t-il toujours le BSOD sur Ctrl + Scroll + Scroll «fonctionnalité»?

15

Alors que Windows XP est sorti, j'ai entendu parler d'une fonctionnalité de test qui existait pour provoquer manuellement un BSOD (Blue Screen Of Death) . J'ai également entendu dire que cela était censé être supprimé dans XP Service Pack 2. Il n'a pas été supprimé, c'est également dans Vista et Windows 7. Pour activer cette, accédez à cet emplacement dans le registre:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ i8042prt \ Parameters

et ajoutez CrashOnCtrlScrollcomme un REG_DWORDavec la valeur 1.

Maintenant, redémarrez et appuyez sur Ctrl+ Scroll Lock+ Scroll Lock, et vous obtenez un BSOD.

Pourquoi cette fonctionnalité est-elle toujours là?

Kredns
la source
3
Je pense que vous devrez interroger Microsoft à ce sujet.
DLH
19
Puisqu'il nécessite un hack de registre obligatoire, je ne pense pas qu'il y ait un inconvénient à le laisser dans le système. Personne ne risque de le déclencher par erreur.
sangretu
La séquence de touches fonctionnera-t-elle également si elle est déclenchée à partir d'une session RDP?
Axxmasterr
4
Puisqu'il a un cas d'utilisation légitime qui compte pour les personnes qui écrivent et déboguent le noyau et les pilotes de périphérique, je ne m'attendrais pas à le voir supprimé. L'activer nécessite un accès en écriture à HKLM, et même s'il est activé, tout ce que vous obtenez est un BSOD.
RBerteig
2
@Axxmaster: Non, ce ne sera pas le cas puisque la séquence de touches est implémentée dans les pilotes de périphérique pour les claviers. Ceux-ci ne sont pas nécessaires ni même utilisés dans une session RDP.
Joey

Réponses:

34

Il est là pour permettre une intrusion dans le débogueur du noyau ou générer un fichier de vidage en mode noyau. En règle générale, un expert voudra le faire lorsque le système d'exploitation semble verrouillé et ne répondra même pas à CTRL + ALT + SUPPR afin d'obtenir le fichier de vidage et d'enquêter sur le pilote qui a des problèmes.

C'est logiquement équivalent à appeler l'API du noyau KeBugCheck avec bugcheck 0xE2 (MANUALLY_INITIATED_CRASH). Notez également que les valeurs reg peuvent être définies dans différentes clés reg pour le pilote de clavier USB (kbdhid) par rapport au pilote ps2 (i8042prt). Il y a plus d'informations à ce sujet et la personnalisation de la séquence de touches utilisée dans l' article 244139 de la Base de connaissances .

Comme cela est implémenté dans les pilotes de clavier réels, je ne m'attends pas à ce que cela fonctionne à partir de la session RDP même si elle a été activée.

Ari Pernick
la source
1
Il est également là pour les développeurs de matériel et de pilotes qui doivent piéger dans le débogueur à un certain point. Et je pense vraiment que cela devrait être la réponse acceptée.
Joey
6

Si nous sommes généreux, pourrait-il être utilisé comme un moyen trop enthousiaste de forcer un vidage sur incident pour enquêter manuellement sur l'état du système? (principalement pour le débogage)

OK - une façon assez bizarre de le faire, mais ...

Marc Gravell
la source
7
C'est vraiment très généreux. Il pourrait s'agir d'une méthode destinée à permettre au logiciel de planter le système pour «arrêter l'hémorragie» en cas de compromis sérieux. Forcer le système à s'arrêter empêcherait quiconque de voler des données.
Axxmasterr
5

Appelons ça un œuf de Pâques.

Félicitations ... vous l'avez trouvé!

DLH
la source
3

Cela ressemble à quelque chose qui ne valait pas le temps et l'effort à supprimer de la base de code.

Jeffrey
la source
Non, il a été conservé car il s'agit d'une fonction de diagnostic inestimable.
Synetech
3

Cela ressemble vraiment à une plaisanterie pratique amusante.

spoulson
la source
5
J'avais l'habitude de l'utiliser dans une école quand mon professeur arrivait et je jouais à un jeu plein écran.
Kredns
@Lucas: Attendez, vous avez un accès administrateur dans un endroit où vous êtes étudiant? : O
Joey
@Johannes: Oui. C'était très laxiste.
Kredns
spoulson, évidemment vous n'êtes pas un programmeur, ou du moins pas un débogueur de bas niveau.
Synetech
2

J'imagine que Microsoft effectue des tests unitaires sur leur système d'exploitation avant de publier des mises à jour, etc. Un des tests serait probablement de voir si BSOD se comporte toujours comme il se doit. Il est également judicieux d'exécuter des tests unitaires sur la version de code active réelle pour un test plus fiable.

Vdex
la source
Cela a une utilité pour les utilisateurs (enfin, les programmeurs).
Synetech
2

Vous devriez regarder les vidéos de Mark Russinovich où il montre comment diagnostiquer les blocages du système avec cette "fonctionnalité". Je pense qu'il a juste été désactivé dans SP2, pas supprimé.

kpierce8
la source