Condividi tramite


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.

Impostazione

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

  1. Se si desidera scrivere un file dump di arresto anomalo del sistema, è 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 su 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 su 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 su 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 i tasti USB che PS/2 del Registro di sistema per consentire l'uso di entrambe le tastiere.

Per rendere effettive queste impostazioni, è necessario riavviare il sistema.

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 0xE2 di controllo dei bug: MANUALLY_INITIATED_CRASH. A meno che i dump di arresto anomalo del sistema non siano stati disabilitati, viene quindi scritto un file di dump di arresto anomalo del sistema.

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

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

È possibile configurare valori alternativi nelle seguenti sottochiavi del Registro di sistema 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 sottochiavi:

Dump1Keys

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

I valori esadecimali 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 all'estrema destra
0x02 Tasto CTRL più a destra
0x04 Tasto ALT più a destra
0x10 Tasto MAIUSC all'estrema sinistra
0x20 Tasto CTRL all'estrema 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 nella 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 };

L'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 valore del CrashOnCtrlScroll Registro di sistema su 0 o rimuoverlo dal Registro di sistema.

Esempio: in questo scenario, un portatile usa un driver di tastiera PS2 e viene collegata una tastiera HID esterna. L'impostazione di entrambi i valori consente di attivare un arresto anomalo manuale del sistema da entrambe le tastiere. 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

Limiti

È possibile, ma raro che un sistema si blocchi in modo tale 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.

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

Vedi anche

0xE2 di controllo dei bug: MANUALLY_INITIATED_CRASH

!analyze -v

Analisi di un file di dump in modalità kernel con WinDbg

Controllo bug 0x161: LIVE_SYSTEM_DUMP

Generare un kernel o completare un dump di arresto anomalo

Varietà di file di dump in modalità kernel.