キーボードからのシステム クラッシュの強制実行Forcing a System Crash from the Keyboard

次の種類のキーボードでは、システムのクラッシュが直接発生する場合があります。The following types of keyboards can cause a system crash directly:

I8042prt ポートで接続されている PS/2 キーボード PS/2 keyboards connected on i8042prt ports

この機能は、Windows 2000 以降のバージョンの Windows オペレーティングシステムで使用できます。This feature is available in Windows 2000 and later versions of Windows operating system.

USB キーボード USB keyboards

この機能は、Windows Vista 以降のバージョンの Windows オペレーティングシステムで使用できます。This feature is available in Windows Vista and later versions of Windows operating system.

Hyper-v キーボード Hyper-V keyboards

この機能は、Windows 10 バージョン1903以降のバージョンの Windows オペレーティングシステムで使用できます。This feature is available in Windows 10 version 1903 and later versions of Windows operating system.

構成 Configuration

キーボードを使用してシステムのクラッシュを有効にするには、次の設定を構成します。Configure the following settings to enable the a system crash using keyboard:

  1. クラッシュダンプファイルを書き込む場合は、そのようなダンプファイルを有効にし、パスとファイル名を選択して、ダンプファイルのサイズを選択する必要があります。If you wish a crash dump file to be written, you must enable such dump files, choose the path and file name, and select the size of the dump file. 詳細については、「 Kernel-Mode ダンプファイルの有効化」を参照してください。For more information, see Enabling a Kernel-Mode Dump File.

  2. PS/2 キーボードを使用する場合は、レジストリでキーボードによるクラッシュを有効にする必要があります。With PS/2 keyboards, you must enable the keyboard-initiated crash in the registry. レジストリキー HKEY _ LOCAL _ MACHINE \ System \ CurrentControlSet \ Services \ i8042prt \ ParametersCrashOnCtrlScroll という名前の値を作成し、それを REG _ DWORD 値0x01 に設定します。In the registry key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters, create a value named CrashOnCtrlScroll, and set it equal to a REG_DWORD value of 0x01.

  3. USB キーボードを使用する場合は、レジストリでキーボードによるクラッシュを有効にする必要があります。With USB keyboards, you must enable the keyboard-initiated crash in the registry. レジストリキー HKEY _ LOCAL _ MACHINE \ System \ CurrentControlSet \ Services \ kbdhid \ パラメーター に、 CrashOnCtrlScroll という名前の値を作成し、それを REG _ DWORD 値0x01 に設定します。In the registry key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameters, create a value named CrashOnCtrlScroll, and set it equal to a REG_DWORD value of 0x01.

  4. Hyper-v キーボードを使用する場合は、レジストリでキーボードによるクラッシュを有効にする必要があります。With Hyper-V keyboards, you must enable the keyboard-initiated crash in the registry. レジストリキー HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parameters で、 CrashOnCtrlScroll という名前の値を作成し、REG_DWORD の値を0x01 に設定します。In the registry key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parameters, create a value named CrashOnCtrlScroll, and set it equal to a REG_DWORD value of 0x01.

これらの設定を有効にするには、システムを再起動する必要があります。You must restart the system for these settings to take effect.

この操作が完了したら、キーボードのクラッシュを開始するには、次のホットキーシーケンスを使用します。右の CTRL キーを押しながら、スクロールキーを2回押します。After this is completed, the keyboard crash can be initiated by using the following hotkey sequence: Hold down the rightmost CTRL key, and press the SCROLL LOCK key twice.

その後、システムは Kebugcheck を呼び出し、 バグチェック 0xe2 (手動で開始されたクラッシュ) を発行し _ _ ます。The system then calls KeBugCheck and issues bug check 0xE2 (MANUALLY_INITIATED_CRASH). クラッシュダンプが無効になっていない限り、この時点でクラッシュダンプファイルが書き込まれます。Unless crash dumps have been disabled, a crash dump file is written at this point.

カーネルデバッガーがクラッシュしたマシンにアタッチされている場合、クラッシュダンプファイルが書き込まれた後、マシンはカーネルデバッガーに中断します。If a kernel debugger is attached to the crashed machine, the machine will break into the kernel debugger after the crash dump file has been written.

この機能の使用方法の詳細については、「Windows の機能」を参照してください。 キーボードを使用して、メモリダンプファイルを生成することができます。For more information on using this feature, refer to the article Windows feature lets you generate a memory dump file by using the keyboard.

キーボードからのシステムクラッシュを強制する代替キーボードショートカットの定義Defining Alternate Keyboard Shortcuts to Force a System Crash from the Keyboard

次のレジストリサブキーの下で、メモリダンプファイルを生成するためのさまざまなキーボードショートカットシーケンスの値を構成できます。You can configure values under the following registry subkeys for different keyboard shortcut sequences to generate the memory dump file:

  • PS/2 キーボードの場合:For PS/2 keyboards:

    HKEY _ LOCAL _ MACHINE \ SYSTEM \ CurrentControlSet \ Services \ i8042prt \ クラッシュHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\crashdump

  • USB キーボードの場合:For USB keyboards:

    HKEY _ LOCAL _ MACHINE \ SYSTEM \ CurrentControlSet \ Services \ kbdhid \ クラッシュHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\crashdump

  • Hyper-v キーボードの場合:For Hyper-V keyboards:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hyperkbd\crashdumpHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hyperkbd\crashdump

これらのサブキーの下に、次のレジストリ REG DWORD 値を作成する必要があり _ ます。You must create the following registry REG_DWORD values under these subkeys:

Dump1KeysDump1Keys
Dump1Keys レジストリ値は、使用する最初のホットキーのビットマップです。The Dump1Keys registry value is a bit map of the first hot key to use. たとえば、ホットキーシーケンスを開始するために右端の CTRL キーを使用するのではなく、最初のホットキーを左端の SHIFT キーに設定できます。For example, instead of using the rightmost CTRL key to initiate the hot key sequence, you can set the first hot key to be the leftmost SHIFT key.

次の表では、最初のホットキーの値について説明します。The values for the first hot key are described in the following table.

[値]Value キーボードショートカットシーケンスで使用される最初のキーFirst key used in the keyboard shortcut sequence

0x010x01

右の SHIFT キーRightmost SHIFT key

0x020x02

右端の CTRL キーRightmost CTRL key

0x040x04

右端の ALT キーRightmost ALT key

0x100x10

左端の SHIFT キーLeftmost SHIFT key

0x200x20

左端の CTRL キーLeftmost CTRL key

0x400x40

左端の ALT キーLeftmost ALT key

メモ Dump1Keys には、キーボードショートカットシーケンスで使用される最初のキーとして1つ以上のキーを有効にする値を割り当てることができます。Note You can assign Dump1Keys a value that enables one or more keys as the first key used in the keyboard shortcut sequence. たとえば、 Dump1Keys の値を0x11 に設定すると、キーボードショートカットシーケンスの最初のキーとして、右端と左端の両方の SHIFT キーが定義されます。For example, assign Dump1Keys a value of 0x11 to define both the rightmost and leftmost SHIFT keys as the first key in the keyboard shortcut sequence.

Dump2KeyDump2Key
Dump2Key レジストリ値は、対象のコンピューターのキーボードレイアウト用の scancode テーブルのインデックスです。The Dump2Key registry value is the index into the scancode table for the keyboard layout of the target computer. ドライバーの実際のテーブルを次に示します。The following is the actual table in the 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 };

メモ インデックス 124 (sysreq) は特殊なケースです。これは、84キーのキーボードのスキャンコードが異なるためです。Note Index 124 (sysreq) is a special case because an 84-key keyboard has a different scan code.

USB または PS/2 キーボードからシステムクラッシュを強制する代替キーボードショートカットを定義する場合は、 CrashOnCtrlScroll レジストリ値を0に設定するか、レジストリから削除する必要があります。If you define alternate keyboard shortcuts to force a system crash from a USB or PS/2 keyboard, you must either set the CrashOnCtrlScroll registry value to 0 or remove it from the registry.

制限事項Limitations

キーボードショートカットシーケンスが機能しないようにシステムをフリーズさせることができます。It is possible for a system to freeze in such a way that the keyboard shortcut sequence will not work. ただし、これはめったに発生しません。However, this should be a very rare occurrence. キーボードショートカットシーケンスを使用してクラッシュを開始することは、CTRL + ALT + DELETE が機能しない多くのインスタンスでも機能します。Using the keyboard shortcut sequence to initiate a crash will work even in many instances where CTRL+ALT+DELETE does not work.

コンピューターが高い割り込み要求レベル (IRQL) で応答を停止した場合、キーボードからのシステムクラッシュの強制は機能しません。Forcing a system crash from the keyboard does not work if the computer stops responding at a high interrupt request level (IRQL). この制限は、メモリダンププロセスの実行を許可する Kbdhid.sys ドライバーが i8042prt.sys ドライバーよりも低い IRQL で動作するために発生します。This limitation exists because the Kbdhid.sys driver, which allows the memory dump process to run, operates at a lower IRQL than the i8042prt.sys driver.