Forzar un bloqueo del sistema desde el teclado

Los siguientes tipos de teclados pueden provocar un bloqueo del sistema directamente:

  • Teclados PS/2 conectados en puertos i8042prt Esta característica está disponible en Windows 2000 y versiones posteriores del sistema operativo Windows.

  • Teclados USB
    Esta característica está disponible en Windows Vista y versiones posteriores del sistema operativo Windows.

  • Teclados de Hyper-V
    Esta característica está disponible en Windows 10 versión 1903 y versiones posteriores del sistema operativo Windows.

Configuración

Configure las siguientes opciones para habilitar un bloqueo del sistema mediante el teclado:

  1. Si desea que se escriba un archivo de volcado de memoria, debe habilitar dichos archivos de volcado. Elija la ruta de acceso y el nombre de archivo y seleccione el tamaño del archivo de volcado. Para obtener más información, consulte Habilitación de un archivo de volcado en modo kernel.

  2. Con los teclados PS/2, debe habilitar el bloqueo iniciado por el teclado en el Registro. En la clave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parametersdel Registro , cree un valor denominado CrashOnCtrlScrolly establézcalo igual a un REG_DWORD valor de 0x01.

  3. Con teclados USB, debe habilitar el bloqueo iniciado por el teclado en el registro. En la clave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parametersdel Registro , cree un valor denominado CrashOnCtrlScrolly establézcalo igual a un REG_DWORD valor de 0x01.

  4. Con los teclados de Hyper-V, debe habilitar el bloqueo iniciado por el teclado en el Registro. En la clave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parametersdel Registro , cree un valor denominado CrashOnCtrlScrolly establézcalo igual a un REG_DWORD valor de 0x01.

Algunos portátiles usan el controlador PS/2 para el teclado integrado y también admiten teclados HID externos. Para estos sistemas, considere la posibilidad de crear las teclas del Registro USB y PS/2 para permitir el uso de cualquiera de los teclados.

Debe reiniciar el sistema para que esta configuración surta efecto.

Una vez completado el reinicio, el bloqueo del teclado se puede iniciar mediante la siguiente secuencia de teclas de acceso rápido: Mantenga presionada la tecla CTRL más a la derecha y presione la tecla SCROLL LOCK dos veces.

A continuación, el sistema llama KeBugCheck a y emite la comprobación de errores 0xE2: MANUALLY_INITIATED_CRASH. A menos que se hayan deshabilitado los volcados de memoria, se escribe un archivo de volcado de memoria.

Si un depurador de kernel está asociado a la máquina bloqueada, la máquina se dividirá en el depurador del kernel después de que se haya escrito el archivo de volcado de memoria.

Definición de métodos abreviados de teclado alternativos para forzar un bloqueo del sistema desde el teclado

Puede configurar valores alternativos en las siguientes subclaves del Registro para secuencias de método abreviado de teclado para generar el archivo de volcado de memoria:

  • Para teclados PS/2:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\crashdump

  • Para teclados USB:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\crashdump

  • Para teclados de Hyper-V:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hyperkbd\crashdump

Debe crear los siguientes valores del Registro REG_DWORD en estas subclaves:

Dump1Keys

El Dump1Keys valor del Registro es un mapa de bits de la primera tecla de acceso rápido que se va a usar. Por ejemplo, en lugar de usar la tecla CTRL más a la derecha para iniciar la secuencia de teclas de acceso rápido, puede establecer la primera tecla de acceso rápido para que sea la tecla MAYÚS situada más a la izquierda.

Los valores de la primera clave activa se describen en la tabla siguiente.

Valor Primera tecla usada en la secuencia de método abreviado de teclado
0x01 Tecla MAYÚS situada más a la derecha
0x02 Tecla CTRL situada más a la derecha
0x04 Tecla ALT más a la derecha
0x10 Tecla MAYÚS situada más a la izquierda
0x20 Tecla CTRL situada más a la izquierda
0x40 Tecla ALT más a la izquierda

Puede asignar Dump1Keys un valor que habilite una o varias teclas como la primera tecla usada en la secuencia de método abreviado de teclado. Por ejemplo, asigne Dump1Keys un valor de 0x11 para definir las teclas MAYÚS situadas más a la derecha y a la izquierda como la primera tecla de la secuencia de método abreviado de teclado.

Dump2Key

El Dump2Key valor del Registro es el índice de la tabla de códigos de examen para el diseño de teclado del equipo de destino. Vea la tabla real en el controlador:

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

El índice 124 (sysreq) es un caso especial porque un teclado de 84 teclas tiene un código de examen diferente.

Si define métodos abreviados de teclado alternativos para forzar un bloqueo del sistema desde un teclado USB o PS/2, debe establecer el valor del CrashOnCtrlScroll Registro en 0 o quitarlo del registro.

Ejemplo: En este escenario, un portátil usa un controlador de teclado PS2 y se conecta un teclado HID externo. Establecer ambos valores proporciona la capacidad de desencadenar un bloqueo manual del sistema desde cualquiera de los teclados. Se puede forzar un bloqueo manual del sistema manteniendo presionada la tecla de control más a la derecha y presionando la barra espaciadora dos veces cuando se establece la siguiente clave del Registro.

[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

Limitaciones

Es posible pero poco frecuente que un sistema se inmoviliza de tal manera que la secuencia de método abreviado de teclado no funcione. El uso de la secuencia de método abreviado de teclado para iniciar un bloqueo funcionará incluso en muchas instancias en las que CTRL+ALT+DELETE no funciona.

Forzar un bloqueo del sistema desde el teclado no funciona si el equipo deja de responder en un nivel de solicitud de interrupción alto (IRQL). Esta limitación existe porque el controlador Kbdhid.sys , que permite que se ejecute el proceso de volcado de memoria, funciona en un IRQL inferior que el controlador dei8042prt.sys .

Consulte también

Comprobación de errores 0xE2: MANUALLY_INITIATED_CRASH

!analyze -v

Análisis de un archivo de volcado de Kernel-Mode con WinDbg

Comprobación de errores 0x161: LIVE_SYSTEM_DUMP

Generación de un kernel o un volcado de memoria completo

Variedades de archivos de volcado de Kernel-Mode.