Compartir a través de


Forzado de 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 de los sistemas operativos Windows.

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

Configuración

Configure las opciones siguientes 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 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 del Registro HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters, cree un valor denominado CrashOnCtrlScroll y establézcalo con un valor de REG_DWORD de 0x01.

  3. Con los teclados USB, debe habilitar el bloqueo iniciado por el teclado en el Registro. En la clave del Registro HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameters, cree un valor denominado CrashOnCtrlScroll y establézcalo con un valor de REG_DWORD de 0x01.

  4. Con los teclados Hyper-V, debe habilitar el bloqueo iniciado por el teclado en el Registro. En la clave del Registro HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parameters, cree un valor denominado CrashOnCtrlScroll y establézcalo con un valor de REG_DWORD 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 la 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 pulsada la tecla CTRL situada más a la derecha y pulse la tecla BLOQ DESPL dos veces.

A continuación, el sistema llama a KeBugCheck 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 entrará en el depurador de kernel después de escribir 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 Hyper-V:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hyperkbd\crashdump

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

Dump1Keys

El valor del Registro Dump1Keys 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 situada 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 hexadecimales de la primera tecla de acceso rápido 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 situada 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 situada más a la izquierda

Puede asignar a 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 a 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 valor del Registro Dump2Key es el índice de la tabla de códigos de análisis para el diseño del teclado del equipo de destino. Consulte 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 análisis 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 Registro CrashOnCtrlScroll 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 permite desencadenar un bloqueo manual del sistema desde cualquiera de los teclados. Se puede forzar un bloqueo manual del sistema manteniendo pulsada la tecla de control situada más a la derecha y pulsando 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 inmovilice 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+SUPR 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 ejecutar el proceso de volcado de memoria, funciona en un IRQL inferior que el controlador i8042prt.sys.

Consulte también

Comprobación de errores 0xE2: MANUALLY_INITIATED_CRASH

!analyze -v

Análisis de un archivo de volcado en modo kernel 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 en modo kernel.