Forzare un arresto anomalo del sistema dalla tastiera

I tipi di tastiere seguenti possono causare un arresto anomalo del sistema direttamente:

  • Tastiere PS/2 connesse alle porte i8042prt Questa funzionalità è disponibile in Windows 2000 e versioni successive del sistema operativo Windows.

  • Tastiere USB
    Questa funzionalità è disponibile in Windows Vista e versioni successive del sistema operativo Windows.

  • Tastiere Hyper-V
    Questa funzionalità è disponibile in Windows 10 versione 1903 e versioni successive del sistema operativo Windows.

Configurazione

Configurare le impostazioni seguenti per abilitare un arresto anomalo del sistema usando la tastiera:

  1. Se si vuole scrivere un file di dump di arresto anomalo, è necessario abilitare tali file di dump. Scegliere il percorso e il nome del file e selezionare le dimensioni del file di dump. Per altre informazioni, vedere Abilitazione di un file di dump in modalità kernel.

  2. Con le tastiere PS/2, è necessario abilitare l'arresto anomalo avviato dalla tastiera nel Registro di sistema. Nella chiave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parametersdel Registro di sistema creare un valore denominato CrashOnCtrlScrolle impostarlo uguale a un REG_DWORD valore di 0x01.

  3. Con le tastiere USB, è necessario abilitare l'arresto anomalo avviato dalla tastiera nel Registro di sistema. Nella chiave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parametersdel Registro di sistema creare un valore denominato CrashOnCtrlScrolle impostarlo uguale a un REG_DWORD valore di 0x01.

  4. Con le tastiere Hyper-V, è necessario abilitare l'arresto anomalo avviato dalla tastiera nel Registro di sistema. Nella chiave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parametersdel Registro di sistema creare un valore denominato CrashOnCtrlScrolle impostarlo uguale a un REG_DWORD valore di 0x01.

Alcuni portatili usano il driver PS/2 per la tastiera predefinita e supportano anche tastiere HID esterne. Per questi sistemi, è consigliabile creare sia le chiavi del Registro di sistema USB che PS/2 per consentire l'uso di una tastiera.

È necessario riavviare il sistema in modo che queste impostazioni vengano applicate.

Al termine del riavvio, l'arresto anomalo della tastiera può essere avviato usando la sequenza di tasti di scelta rapida seguente: tenere premuto il tasto CTRL più a destra e premere due volte il tasto SCROLL LOCK.

Il sistema chiama KeBugCheck e rilascia il controllo bug 0xE2: MANUALLY_INITIATED_CRASH. A meno che i dump di arresto anomalo non siano stati disabilitati, viene quindi scritto un file di dump di arresto anomalo.

Se un debugger del kernel è collegato al computer anomalo, il computer si interromperà nel debugger del kernel dopo la scrittura del file di dump di arresto anomalo.

Definizione di tasti di scelta rapida alternativi per forzare un arresto anomalo del sistema dalla tastiera

È possibile configurare valori alternativi nelle sottochiave del Registro di sistema seguenti per le sequenze di tasti di scelta rapida per generare il file di dump della memoria:

  • Per le tastiere PS/2:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\crashdump

  • Per le tastiere USB:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\crashdump

  • Per le tastiere Hyper-V:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hyperkbd\crashdump

È necessario creare i valori del Registro di sistema REG_DWORD seguenti in queste sottochiave:

Dump1Keys

Il Dump1Keys valore del Registro di sistema è una mappa bit del primo tasto di scelta rapida da usare. Ad esempio, anziché usare il tasto CTRL più a destra per avviare la sequenza di tasti di scelta rapida, è possibile impostare il primo tasto di scelta rapida per essere il tasto MAIUSC più a sinistra.

I valori per la prima chiave di scelta rapida sono descritti nella tabella seguente.

Valore Primo tasto usato nella sequenza di tasti di scelta rapida
0x01 Tasto MAIUSC più a destra
0x02 Tasto CTRL più a destra
0x04 Tasto ALT più a destra
0x10 Tasto MAIUSC più a sinistra
0x20 Tasto CTRL più a sinistra
0x40 Tasto ALT più a sinistra

È possibile assegnare Dump1Keys un valore che abilita uno o più tasti come primo tasto usato nella sequenza di tasti di scelta rapida. Ad esempio, assegnare Dump1Keys un valore di 0x11 per definire sia i tasti MAIUSC più a destra che a sinistra come primo tasto della sequenza di tasti di scelta rapida.

Dump2Key

Il Dump2Key valore del Registro di sistema è l'indice nella tabella codici di analisi per il layout della tastiera del computer di destinazione. Vedere la tabella effettiva nel driver:

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 };

Indice 124 (sysreq) è un caso speciale perché una tastiera a 84 tasti ha un codice di analisi diverso.

Se si definiscono tasti di scelta rapida alternativi per forzare un arresto anomalo del sistema da una tastiera USB o PS/2, è necessario impostare il CrashOnCtrlScroll valore del Registro di sistema su 0 o rimuoverlo dal Registro di sistema.

Esempio: in questo scenario, un portatile usa un driver da tastiera PS2 e una tastiera HID esterna è collegata. L'impostazione di entrambi i valori offre la possibilità di attivare un arresto anomalo manuale del sistema da una tastiera. Un arresto anomalo del sistema manuale può essere forzato tenendo premuto il tasto di controllo più a destra e premendo la barra spaziatrice due volte quando viene impostata la chiave del Registro di sistema seguente.

[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

Limitazioni

È possibile, ma raramente per un sistema bloccare in modo che la sequenza di tasti di scelta rapida non funzioni. L'uso della sequenza di tasti di scelta rapida per avviare un arresto anomalo funzionerà anche in molte istanze in cui CTRL+ALT+DELETE non funziona.

Forzare un arresto anomalo del sistema dalla tastiera non funziona se il computer smette di rispondere a un livello elevato di richiesta di interruzione (IRQL). Questa limitazione esiste perché il driver Kbdhid.sys , che consente l'esecuzione del processo di dump della memoria, opera a un irQL inferiore rispetto al driver i8042prt.sys .

Vedi anche

Controllo bug 0xE2: MANUALLY_INITIATED_CRASH

!analizza -v

Analisi di un file di dump di Kernel-Mode con WinDbg

Controllo bug 0x161: LIVE_SYSTEM_DUMP

Generare un kernel o completare un dump di arresto anomalo

Varietà di file di dump di Kernel-Mode.