Windows 包含一种功能,可以用来促使系统停止响应并生成内存转储文件 (Memory.dmp)。在您执行此操作时,可能会收到一条类似以下内容的 Stop 错误消息:
*** STOP:0x000000E2 (0x00000000,0x00000000,0x00000000,0x00000000)
The end-user manually generated the crashdump.
启用此功能后,按住右 Ctrl 键,同时按 Scroll Lock 键两次,即可生成一个内存转储文件。此功能适用于 PS/2 键盘和通用串行总线 (USB) 键盘。PS/2 键盘使用键盘自带的 i8042prt.sys 驱动程序。但是,对于 USB 键盘,则必须为 Kbdhid.sys 驱动程序安装一个修补程序。有关此修补程序的更多信息,请参见“更多信息”部分末尾的“Windows Server 2003 解决方案”小节。

注意:允许使用 USB 键盘生成内存转储过程的 Kbdhid.sys 驱动程序存在一定局限性。这就是,当计算机在高中断请求级别 (IRQL) 停止响应时,Ctrl+Scroll Lock+Scroll Lock 键盘快捷方式不起作用。之所以存在此局限性是因为与 i8042prt.sys 驱动程序相比,Kbdhid.sys 驱动程序运行时的 IRQL 较低。此 USB 键盘功能只在运行 Microsoft Windows Server 2003 的计算机上起作用。

更多信息
警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些...

警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。

默认情况下,禁用此功能。要在使用 PS/2 键盘的计算机上启用此功能,需按本文中的说明修改注册表,然后重新启动计算机。在重新启动计算机后,按住 Ctrl 键,同时按 Scroll Lock 键两次,即可生成一个 Memory.dmp 文件。必须使用空格键右侧的 Ctrl 键。在使用 USB 键盘的计算机上,不必重新启动计算机。只需拔掉键盘然后再将它重新插上。然后,便能生成 Memory.dmp 文件。

要在使用 PS/2 键盘的计算机上启用此功能,请按照下列步骤操作:
  1. 启动注册表编辑器。
  2. 找到以下注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
  3. 在“编辑”菜单上,单击“添加值”,然后添加以下注册表项:
    名称:CrashOnCtrlScroll
    数据类型:REG_DWORD
    :1
  4. 退出注册表编辑器,然后重新启动计算机。
要在使用 USB 键盘的计算机上启用此功能,需安装“更多信息”部分末尾的“Windows Server 2003 解决方案”小节中提到的修补程序。

要确保在使用 USB 键盘的计算机上启用此功能,请按照下列步骤操作:
  1. 启动注册表编辑器。
  2. 找到以下注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
  3. 确保启用了以下注册表项:
    名称:CrashOnCtrlScroll
    数据类型:REG_DWORD
    :1
  4. 退出注册表编辑器。

如何选择内存转储文件选项

可以生成三种类型的内存转储文件。在手动触发转储文件前,先选择该文件。为此,请按照下列步骤操作:
  1. 右键单击“我的电脑”,然后单击“属性”。
  2. 单击“高级”选项卡,然后单击“启动和故障恢复”按钮。
  3. 单击“写入调试信息”,然后单击以选中“完全内存转储”、“核心内存转储”或“小内存转储”。
有关内存转储文件选项的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
254649  (http://support.microsoft.com/kb/254649/ ) Windows Server 2003、Windows XP 和 Windows 2000 内存转储文件选项概述
注意:如果服务器中有像某些 Compaq 计算机中所具有的“自动系统重启”(ASR) 这样的功能,请禁用它。因为该功能会中断转储过程。在 Compaq 计算机上,您可以通过修改基本输入/输出系统 (BIOS) 设置来禁用 ASR 功能。

注意:在具有 2 GB 或更多 RAM 的计算机上,不能进行完全内存转储。要限制 Windows 2000 可以访问的内存,请向 Boot.ini 文件中添加 <MaxMem=2000> 参数。

如果已经安装了 Microsoft 知识库文章 835732 中描述的安全更新,或安装了包含此安全更新的 Service Pack,请查看下面的 Microsoft 知识库文章:
885117  (http://support.microsoft.com/kb/885117/ ) “启动和故障恢复”中显示“核心内存转储”,但在 Windows 2000 或 Windows Server 2003 中执行完全内存转储
有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
835732  (http://support.microsoft.com/kb/835732/ ) MS04-011:Microsoft Windows 安全更新

Service Pack 信息

要解决此问题,请获取最新的 Windows Server 2003 Service Pack。有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
889100  (http://support.microsoft.com/kb/889100/ ) 如何获取最新的 Windows Server 2003 Service Pack

修补程序信息

Microsoft 现在提供了一个受支持的修补程序,但是,此修补程序仅用于修复本文所述的问题。请仅将此修补程序应用于出现这一特定问题的系统。此修补程序可能还会接受进一步的测试。因此,如果这个问题没有对您造成严重影响,我们建议您等待包含此修补程序的下一个 Windows Server 2003 Service Pack。

要解决此问题,请向 Microsoft 在线客户服务提交请求以获取该修补程序。要提交联机请求以获取该修补程序,请访问下面的 Microsoft 网站:
http://go.microsoft.com/?linkid=6294451 (http://go.microsoft.com/?linkid=6294451)
注意:如果发生其他问题或需要进行任何疑难解答,则您可能需要创建单独的服务请求。对于此特定修补程序无法解决的其他支持问题和事项,将照常收取支持费用。要创建单独的服务请求,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)

先决条件

要应用此修补程序,必须在计算机上安装 Windows Server 2003 或 Windows Server 2003 Service Pack 1。

重新启动要求

应用此修补程序后,必须重新启动计算机。

修补程序替代信息

此修补程序不替代任何其他修补程序。

文件信息

此修补程序的英文版具有下表中列出的文件属性(或更新的文件属性)。这些文件的日期和时间按协调世界时 (UTC) 列出。当您查看文件信息时,该时间将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用“控制面板”中“日期和时间”项的“时区”选项卡。
Windows Server 2003(基于 x86 的 32 位版本)
收起该表格展开该表格
文件名 文件版本 文件大小 日期 时间 平台 SP 要求 服务分支
Kbdhid.sys 5.2.3790.493 16,896 28-Feb-2006 00:03 x86 RTMQFE
Kbdhid.sys 5.2.3790.2649 17,408 28-Feb-2006 03:11 x86 SP1 SP1QFE
Windows Server 2003(基于 x64 的版本)
收起该表格展开该表格
文件名 文件版本 文件大小 日期 时间 平台
Kbdhid.sys 5.2.3790.2649 24,576 13-Apr-2006 15:59 x64
Windows Server 2003(基于 Itanium 的版本)
收起该表格展开该表格
文件名 文件版本 文件大小 日期 时间 平台 SP 要求 服务分支
Kbdhid.sys 5.2.3790.493 47,104 13-Apr-2006 15:54 IA-64 RTMQFE
Kbdhid.sys 5.2.3790.2649 49,664 13-Apr-2006 15:59 IA-64 SP1 SP1QFE
有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
928839  (http://support.microsoft.com/kb/928839/ ) 如何使用键盘在 Virtual Server 2005 来宾计算机上生成内存转储文件

配置注册表项以生成内存转储文件

可以在以下注册表子项下配置相应项以生成内存转储文件:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\crashdump
REG_DWORD 项如下所示:
Dump1Keys
Dump2Key
Dump1Keys 项是要使用的修改键的位图。其值包括:
#define CRASH_R_SHIFT 0x01
#define CRASH_R_CTRL 0x02
#define CRASH_R_ALT 0x04
#define CRASH_L_SHIFT 0x10
#define CRASH_L_CTRL 0x20
#define CRASH_L_ALT 0x40
Dump2Key 项是键盘布局扫描码表中的索引。下面是驱动程序中的实际表。

注意:索引 124 (sysreq) 是一种特殊情形,因为一个 84 键的键盘具有不同的扫描码。
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 };
本文中提到的第三方产品由 Microsoft 以外的其他公司提供。对于这些产品的性能或可靠性,Microsoft 不作任何暗示保证或其他形式的保证。