Forcer un plantage du système à partir du clavier

Les types de claviers suivants peuvent provoquer un blocage du système directement :

  • Claviers PS/2 connectés sur les ports i8042prt Cette fonctionnalité est disponible dans Windows 2000 et 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 versions ultérieures du système d’exploitation Windows.

Configuration

Configurez les paramètres suivants pour activer un incident système à l’aide du clavier :

  1. Si vous souhaitez qu’un fichier de vidage sur incident soit écrit, vous devez activer ces fichiers de vidage. Choisissez le chemin d’accès et le nom du fichier, puis sélectionnez la taille du fichier de vidage. Pour plus d’informations, consultez Activation d’un fichier de vidage en mode noyau.

  2. Avec les claviers PS/2, vous devez activer le blocage initié par le clavier dans le Registre. Dans la clé HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parametersde Registre , créez une valeur nommée CrashOnCtrlScrollet définissez-la sur une REG_DWORD valeur de 0x01.

  3. Avec les claviers USB, vous devez activer le blocage initié par le clavier dans le Registre. Dans la clé HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parametersde Registre , créez une valeur nommée CrashOnCtrlScrollet définissez-la sur une REG_DWORD valeur de 0x01.

  4. Avec les claviers Hyper-V, vous devez activer le blocage initié par le clavier dans le Registre. Dans la clé HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parametersde Registre , créez une valeur nommée CrashOnCtrlScrollet définissez-la sur une REG_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 les touches de Registre USB et PS/2 pour autoriser 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 blocage du clavier peut être déclenché à l’aide de la séquence de touches d’accès rapide suivante : Maintenez la touche CTRL la plus à droite, puis appuyez deux fois sur la touche SCROLL LOCK.

Le système appelle et émet KeBugCheck des case activée 0xE2 de bogues : MANUALLY_INITIATED_CRASH. Sauf si les vidages sur incident ont été désactivés, un fichier de vidage sur incident est ensuite écrit.

Si un débogueur de noyau est attaché à l’ordinateur bloqué, l’ordinateur s’insère dans le débogueur du noyau une fois le fichier de vidage sur incident écrit.

Définition d’autres raccourcis clavier pour forcer un blocage du système à partir du clavier

Vous pouvez configurer d’autres valeurs sous les sous-clés de Registre suivantes pour les séquences de raccourcis clavier afin de générer le fichier d’image 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 Dump1Keys valeur de Registre est une carte de bits de la première touche d’accès rapide à utiliser. Par exemple, au lieu d’utiliser la touche CTRL la plus à droite pour lancer la séquence de touches d’accès rapide, vous pouvez définir la première touche d’accès rapide pour qu’elle soit la touche MAJ la plus à gauche.

Les valeurs de la première touche d’accès rapide sont décrites dans le tableau suivant.

Valeur Première touche utilisée dans la séquence de raccourcis clavier
0x01 Touche MAJ la plus à droite
0x02 Touche CTRL la plus à droite
0x04 Touche ALT la plus à droite
0x10 Touche MAJ la plus à gauche
0x20 Touche CTRL la plus à gauche
0x40 Touche ALT la plus à gauche

Vous pouvez affecter Dump1Keys une valeur qui active une ou plusieurs touches comme première touche utilisée dans la séquence de raccourcis clavier. Par exemple, affectez Dump1Keys la valeur 0x11 pour définir les touches MAJ les plus à droite et à gauche comme première touche de la séquence de raccourcis clavier.

Dump2Key

La Dump2Key valeur de Registre est l’index dans la table de codes d’analyse 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 };

Index 124 (sysreq) est un cas spécial, car un clavier à 84 touches a un code d’analyse différent.

Si vous définissez d’autres raccourcis clavier pour forcer le blocage d’un système à partir d’un clavier USB ou PS/2, vous devez définir la valeur de CrashOnCtrlScroll Registre sur 0 ou la supprimer du Registre.

Exemple : Dans ce scénario, un ordinateur portable utilise un pilote de clavier PS2 et un clavier HID externe est attaché. La définition des deux valeurs permet de déclencher un blocage manuel du système à partir de l’un ou l’autre des claviers. Un incident système manuel peut être forcé en maintenant la touche de 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 telle sorte que la séquence de raccourcis clavier ne fonctionne pas. L’utilisation de la séquence de raccourcis clavier pour lancer un incident fonctionne même dans de nombreuses instances où Ctrl+Alt+Suppr ne fonctionne pas.

Forcer un plantage du système à partir du clavier ne fonctionne pas si l’ordinateur cesse de répondre à un niveau de demande d’interruption élevé (IRQL). Cette limitation existe, car le pilote Kbdhid.sys , qui permet au processus d’vidage de mémoire de s’exécuter, fonctionne à une valeur IRQL inférieure à celle du pilote i8042prt.sys .

Voir aussi

Case activée 0xE2 de bogues : MANUALLY_INITIATED_CRASH

!analyze -v

Analyse d’un fichier de vidage Kernel-Mode avec WinDbg

0x161 de vérification des bogues : LIVE_SYSTEM_DUMP

Générer un noyau ou un vidage sur incident complet

Variétés de fichiers de vidage Kernel-Mode.