Forcer un crash système depuis le clavier
Les types de claviers suivants peuvent provoquer un crash système directement :
Claviers PS/2 connectés sur des ports i8042prt Cette fonctionnalité est disponible dans Windows 2000 et les versions ultérieures du système d’exploitation Windows.
Claviers USB
Cette fonctionnalité est disponible dans Windows Vista et les versions ultérieures du système d’exploitation Windows.Claviers Hyper-V
Cette fonctionnalité est disponible dans Windows 10 version 1903 et les versions ultérieures du système d’exploitation Windows.
Configuration
Configurez les paramètres suivants pour activer un crash système à l’aide du clavier :
Si vous souhaitez qu’un fichier de vidage sur incident soit écrit, vous devez activer ces fichiers de vidage. Choisissez le chemin et le nom du fichier, et sélectionnez la taille du fichier de vidage. Pour plus d’informations, consultez Activation d’un fichier de vidage en mode noyau.
Avec les claviers PS/2, vous devez activer le crash initié par le clavier dans le registre. Dans la clé de registre
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters
, créez une valeur nomméeCrashOnCtrlScroll
, et attribuez-lui uneREG_DWORD
valeur de 0x01.Avec les claviers USB, vous devez activer le crash initié par le clavier dans le registre. Dans la clé de registre
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameters
, créez une valeur nomméeCrashOnCtrlScroll
, et attribuez-lui uneREG_DWORD
valeur de 0x01.Avec les claviers Hyper-V, vous devez activer le crash initié par le clavier dans le registre. Dans la clé de registre
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parameters
, créez une valeur nomméeCrashOnCtrlScroll
, et attribuez-lui uneREG_DWORD
valeur de 0x01.
Certains ordinateurs portables utilisent le pilote PS/2 pour le clavier intégré et prennent également en charge les claviers HID externes. Pour ces systèmes, envisagez de créer à la fois les clés de registre USB et PS/2 pour permettre l’utilisation de l’un ou l’autre clavier.
Vous devez redémarrer le système pour que ces paramètres prennent effet.
Une fois le redémarrage terminé, le crash du clavier peut être initié en utilisant la séquence de touches suivante : Maintenez enfoncée la touche CTRL la plus à droite, et appuyez deux fois sur la touche SCROLL LOCK.
Le système appelle alors KeBugCheck
et émet Vérification des bugs 0xE2 : MANUALLY_INITIATED_CRASH. Sauf si les vidages sur incident ont été désactivés, un fichier de vidage sur incident est alors écrit.
Si un débogueur du noyau est attaché à la machine qui a crashé, la machine entrera dans le débogueur du noyau après l’écriture du fichier de vidage.
Définir des raccourcis clavier alternatifs pour forcer un crash système à partir du clavier
Vous pouvez configurer des valeurs alternatives sous les sous-clés de registre suivantes pour des séquences de raccourcis clavier afin de générer le fichier de vidage mémoire :
Pour les claviers PS/2 :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\crashdump
Pour les claviers USB :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\crashdump
Pour les claviers Hyper-V :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hyperkbd\crashdump
Vous devez créer les valeurs de registre REG_DWORD
suivantes sous ces sous-clés :
Dump1Keys
La valeur de registre Dump1Keys
est une carte binaire de la première touche de raccourci à utiliser. Par exemple, au lieu d’utiliser la touche CTRL la plus à droite pour initier la séquence de raccourcis clavier, vous pouvez définir la première touche comme étant la touche SHIFT la plus à gauche.
Les valeurs hexadécimales pour la première touche sont décrites dans le tableau suivant.
Valeur | Première touche utilisée dans la séquence de raccourcis clavier |
---|---|
0x01 | Touche SHIFT la plus à droite |
0x02 | Touche CTRL la plus à droite |
0x04 | Touche ALT la plus à droite |
0x10 | Touche SHIFT la plus à gauche |
0x20 | Touche CTRL la plus à gauche |
0x40 | Touche ALT la plus à gauche |
Vous pouvez attribuer à Dump1Keys
une valeur qui active une ou plusieurs touches comme première touche utilisée dans la séquence de raccourcis clavier. Par exemple, attribuez à Dump1Keys
une valeur de 0x11 pour définir à la fois les touches SHIFT la plus à droite et la plus à gauche comme première touche dans la séquence de raccourcis clavier.
Dump2Key
La valeur de registre Dump2Key
est l’index dans la table des codes de scan pour la disposition du clavier de l’ordinateur cible. Consultez la table réelle dans le pilote :
const UCHAR keyToScanTbl[134] = {
0x00,0x29,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
0x0A,0x0B,0x0C,0x0D,0x7D,0x0E,0x0F,0x10,0x11,0x12,
0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x00,
0x3A,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
0x27,0x28,0x2B,0x1C,0x2A,0x00,0x2C,0x2D,0x2E,0x2F,
0x30,0x31,0x32,0x33,0x34,0x35,0x73,0x36,0x1D,0x00,
0x38,0x39,0xB8,0x00,0x9D,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xD2,0xD3,0x00,0x00,0xCB,
0xC7,0xCF,0x00,0xC8,0xD0,0xC9,0xD1,0x00,0x00,0xCD,
0x45,0x47,0x4B,0x4F,0x00,0xB5,0x48,0x4C,0x50,0x52,
0x37,0x49,0x4D,0x51,0x53,0x4A,0x4E,0x00,0x9C,0x00,
0x01,0x00,0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41,0x42,
0x43,0x44,0x57,0x58,0x00,0x46,0x00,0x00,0x00,0x00,
0x00,0x7B,0x79,0x70 };
L’index 124 (sysreq) est un cas particulier car un clavier à 84 touches a un code de scan différent.
Si vous définissez des raccourcis clavier alternatifs pour forcer un crash système à partir d’un clavier USB ou PS/2, vous devez soit définir la valeur de registre CrashOnCtrlScroll
à 0, soit la supprimer du registre.
Exemple : Dans ce scénario, un ordinateur portable utilise un pilote de clavier PS/2, et un clavier HID externe est connecté. Définir les deux valeurs permet de déclencher un crash système manuel à partir de l’un ou l’autre des claviers. Un crash système manuel peut être forcé en maintenant la touche contrôle la plus à droite et en appuyant deux fois sur la barre d’espace lorsque la clé de registre suivante est définie.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\crashdump]
"Dump1Keys"=dword:00000002
"Dump2Key"=dword:0000003d
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\crashdump]
"Dump1Keys"=dword:00000002
"Dump2Key"=dword:0000003d
Limites
Il est possible mais rare qu’un système se fige de manière à ce que la séquence de raccourcis clavier ne fonctionne pas. Utiliser la séquence de raccourcis clavier pour initier un crash fonctionnera même dans de nombreux cas où CTRL+ALT+SUPPR ne fonctionne pas.
Forcer un crash système à partir du clavier ne fonctionne pas si l’ordinateur cesse de répondre à un niveau de requête d’interruption élevé (IRQL). Cette limitation existe parce que le pilote Kbdhid.sys, qui permet l’exécution du processus de vidage mémoire, fonctionne à un IRQL inférieur à celui du pilote i8042prt.sys.
Voir aussi
Vérification des bugs 0xE2 : MANUALLY_INITIATED_CRASH
Analyse d’un fichier de dump en mode noyau avec WinDbg
Bug Check 0x161 : LIVE_SYSTEM_DUMP