64 位版 Windows 中运行的应用程序引发的异常被忽略

文章翻译 文章翻译
文章编号: 976038 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

请考虑以下情况:
  • 在 64 位版 Windows Server 2008、Windows Vista、Windows Server 2008 R2 或 Windows 7 上运行一个应用程序时,
  • 以用户模式运行回调例程中引发了异常。
在此情况下,此异常不会导致应用程序故障。而是使应用程序进入不一致状态。之后,应用程序引发另一个异常并出现故障。

用户模式回调函数通常是内核模式组件调用的应用程序定义的函数。用户模式回调函数的示例是 Windows 过程和挂钩过程。这些函数由 Windows 调用,以处理 Windows 消息或处理 Windows 挂钩事件。

解决方案

修补程序信息

Microsoft 提供了一个受支持的修补程序。但是,此修补程序仅用于修复本文所述的问题。仅将此修补程序应用于出现文本中所描述问题的系统。此修补程序可能还会接受进一步的测试。因此,如果这个问题没有给您造成严重的影响,我们建议您等待包含此修补程序的下一个软件更新。

如果该修补程序可供下载,则此知识库文章的顶部将出现“提供修补程序下载”部分。如果此部分不存在,请联系 Microsoft 客户支持服务部门以获取该修补程序。

注意 如果发生其他问题或需要进行任何故障排除,您应该另行创建服务请求。对于此特定修补程序无法解决的其他支持问题和事项,将照常收取支持费用。若要获取 Microsoft 客户服务和支持部门的完整电话号码列表或另行创建服务请求,请访问以下 Microsoft 网站:
http://support.microsoft.com/contactus/?ln=zh-cn&ws=support#tab0
注意:“提供修补程序下载”窗体显示了可用的修补程序语言版本。如果找不到需要的语言,则说明未提供该语言版本的修补程序。

先决条件

若要应用此修补程序,计算机必须运行下列 Windows 操作系统之一:
  • Windows Vista Service Pack 2 (SP2)
  • Windows Server 2008 Service Pack 2 (SP2)
  • Windows 7
  • Windows Server 2008 R2
有关如何获取 Windows Vista Service Pack 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
935791 如何获取最新的 Windows Vista Service Pack
有关如何获取 Windows Server 2008 Service Pack 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
968849 如何获取 Windows Server 2008 的最新 Service Pack

安装说明

警告 使用注册表编辑器或其他方法修改注册表不当可能会出现严重问题。这些问题可能需要您重新安装操作系统。Microsoft 不能保证可解决这些问题。请自行承担修改注册表的风险。 默认情况下,此修补程序应用后不会自动启用。必须在系统级别或进程级别上手动启用此修补程序。启用此修补程序后,异常将上报给 Windows内核进行处理。

在系统级别上启用此修补程序时,系统中运行的所有进程都会受到影响。在进程级别上启用此修补程序时,仅特定的进程受影响。进程级别上的修补程序设置可以取代系统级别的修补程序设置。

若要在系统级别上启用此修补程序,请按照下列步骤操作:
  1. 在注册表编辑器中,找到下面的注册表子项:
    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
  2. 创建 DWORD 值的注册表项。
  3. 为新注册表项 DisableUserModeCallbackFilter 命名。
  4. 将 DisableUserModeCallbackFilter 注册表项的值设置为 1。
若要在进程级别上启用此修补程序,请按照下列步骤操作:
  1. 在注册表编辑器中,找到下面的注册表子项:
    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
    HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
    .
  2. 创建注册表子项。
  3. 用您想要启用修补程序的进程的名称命名新注册表子项。例如,如果您想要在 Notepad.exe 进程上启用此修补程序,请将新注册表子项命名为“Notepad.exe”。
  4. 在新注册表子项下,创建 DWORD 值的注册表项。
  5. 为新注册表项 DisableUserModeCallbackFilter 命名。
  6. 将 DisableUserModeCallbackFilter 注册表项的值设置为 1。
此修补程序还包括 Kernel32.DLL 导出的新函数。此应用程序可以调用这些新函数,以在运行时启用此修补程序。这些新函数和标志定义如下:
BOOL
WINAPI
SetProcessUserModeExceptionPolicy(
__in DWORD dwFlags
    );

BOOL
WINAPI
GetProcessUserModeExceptionPolicy(
__out LPDWORD lpFlags
    );

#define PROCESS_CALLBACK_FILTER_ENABLED     0x1
默认情况下,新进程使用 PROCESS_CALLBACK_FILTER_ENABLED 标志集创建。通过清除此标志为进程启用此修补程序:
DWORD dwFlags;
If (GetProcessUserModeExceptionPolicy(&dwFlags)) {
SetProcessUserModeExceptionPolicy(dwFlags & ~PROCESS_CALLBACK_FILTER_ENABLED); 
}
重要说明注册表项仅用于开发情形。独立软件供应商 (ISV) 不得更改安装程序中的“Image File Execution Options (IFEO)”项。

重新启动要求

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

修补程序替换信息

此修补程序不替代以前发布的修补程序。

文件信息

此修补程序的英语(美国)版本将安装具有下表所列属性的文件。这些文件的日期和时间使用协调世界时 (UTC) 列出。这些文件在您本地计算机上显示的日期和时间是您的本地时间再加上当前夏令时 (DST) 偏差。此外,当您在这些文件上执行某些操作时,日期和时间可能会更改。
Windows Vista 和 Windows Server 2008 文件信息说明
重要说明 Windows Vista 修补程序和 Windows Server 2008 修补程序包含在同一个程序包中。但是,“修补程序请求”页上仅列出了“Windows Vista”。若要请求适用于一个或两个操作系统的修补程序包,则选择该页上“Windows Vista”下面列出的修补程序。请始终参考文章中的“应用于”部分确定每个修补程序适用的确切操作系统。
  • 通过检查在下表中显示的文件版本号,可以识别应用于特定产品、SR_Level(RTM、SPn)和服务分支(LDR、GDR)的文件。
    收起该表格展开该表格
    版本产品SR_Level服务分支
    6.0.600 2.22xxxWindows Vista 和 Windows Server 2008SP2LDR
  • 针对每个环境而安装的 MANIFEST 文件 (.manifest) 和 MUM 文件 (.mum) 单独列于“Windows Server 2008 和 Windows Vista 的其他文件信息”部分。MUM 文件和 MANIFEST 文件以及关联的安全目录 (.cat) 文件对于维护更新组件的状态至关重要。安全目录文件(未列出属性)均使用 Microsoft 数字签名进行签名。
对于所有受支持的基于 x64 的 Windows Server 2008 和 Windows Vista 版本

收起该表格展开该表格
File nameFile versionFile sizeDateTimePlatformService branch
Kernel32.dll6.0.6002.222671,218,56012-Nov-200917:42x64Not Applicable
Ntdll.dll6.0.6002.222671,582,80012-Nov-200917:48x64Not Applicable
Kernel32.dll6.0.6002.22267858,62412-Nov-200917:41x86WOW
Ntdll.dll6.0.6002.222671,165,59212-Nov-200917:44x86WOW
对于所有受支持的基于 IA-64 的 Windows Server 2008 版本

收起该表格展开该表格
File nameFile versionFile sizeDateTimePlatformService branch
Kernel32.dll6.0.6002.222672,185,21615-Nov-200919:11Not ApplicableNot Applicable
Ntdll.dll6.0.6002.222672,564,16815-Nov-200919:17IA-64Not Applicable
Kernel32.dll6.0.6002.22267858,62412-Nov-200917:41x86WOW
Ntdll.dll6.0.6002.222671,165,59212-Nov-200917:44x86WOW
Windows 7 和 Windows Server 2008 R2 文件信息说明
重要说明 Windows 7 修补程序和 Windows Server 2008 R2 修补程序包含在相同的程序包中。但是,“修补程序请求”页上的修补程序列在这两个操作系统下。若要请求适用于其中一个或两个操作系统的修补程序包,请选择列在页面中“Windows 7/Windows Server 2008 R2”下的修补程序。请始终参考文章中的“应用于”部分确定每个修补程序适用的确切操作系统。
  • 为每个环境安装的 MANIFEST 文件 (.manifest) 和 MUM 文件 (.mum) 单独列出在“Windows Server 2008 R2 和 Windows 7 其他文件信息”部分中。MUM 文件和 MANIFEST 文件以及关联的安全目录 (.cat) 文件对于维护更新组件的状态至关重要。安全目录文件(未列出属性)均使用 Microsoft 数字签名进行签名。
对于所有受支持的基于 x64 的 Windows 7 版本和 Windows Server 2008 R2 版本

收起该表格展开该表格
File nameFile versionFile sizeDateTimePlatformService branch
Kernel32.dll6.1.7600.205731,162,75212-Nov-200920:02x64Not Applicable
Ntdll.dll6.1.7600.205731,737,32012-Nov-200920:09x64Not Applicable
Kernel32.dll6.1.7600.20573837,12012-Nov-200919:55x86WOW
Ntdll.dll6.1.7600.205731,290,24812-Nov-200919:58x86WOW
对于所有受支持的基于 IA-64 的 Windows Server 2008 R2 版本

收起该表格展开该表格
File nameFile versionFile sizeDateTimePlatformService branch
Kernel32.dll6.1.7600.205732,137,08812-Nov-200906:16IA-64Not Applicable
Ntdll.dll6.1.7600.205732,783,93612-Nov-200917:35IA-64Not Applicable
Kernel32.dll6.1.7600.20573837,12012-Nov-200919:55x86WOW
Ntdll.dll6.1.7600.205731,290,24812-Nov-200919:58x86WOW

状态

Microsoft 已经确认“适用于”部分中列出的 Microsoft 产品存在此问题。

更多信息

有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
973460 64 位版 Windows Server 2003 或 Windows XP Professional 中运行的 64 位应用程序引发的异常在无提示情况下被忽略


有关软件更新术语的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 用于描述 Microsoft 软件更新的标准术语说明

其他文件信息

Windows Vista 和 Windows Server 2008 的其他文件信息

所有受支持的基于 x64 的 Windows Vista 和 Windows Server 2008 版本的其他文件

收起该表格展开该表格
File nameFile versionFile sizeDateTimePlatform
Amd64_0f42b3c2ef9b98e4e0113694f5b6e0ca_31bf3856ad364e35_6.0.6002.22267_none_3a25d0ed22bc1163.manifestNot Applicable1,04216-Nov-200908:47Not Applicable
Amd64_8482a23005e0862a289bf92530421180_31bf3856ad364e35_6.0.6002.22267_none_897b8e5f5107b89b.manifestNot Applicable1,03616-Nov-200908:47Not Applicable
Amd64_microsoft-windows-kernel32_31bf3856ad364e35_6.0.6002.22267_none_f212b98e25173c75.manifestNot Applicable4,52312-Nov-200919:23Not Applicable
Amd64_microsoft-windows-ntdll_31bf3856ad364e35_6.0.6002.22267_none_b72bb28ecaf95fdd.manifestNot Applicable4,94112-Nov-200919:21Not Applicable
Wow64_microsoft-windows-kernel32_31bf3856ad364e35_6.0.6002.22267_none_fc6763e05977fe70.manifestNot Applicable5,32112-Nov-200919:16Not Applicable
Wow64_microsoft-windows-ntdll_31bf3856ad364e35_6.0.6002.22267_none_c1805ce0ff5a21d8.manifestNot Applicable5,48912-Nov-200919:16Not Applicable
所有受支持的基于 IA-64 的 Windows Server 2008 版本的其他文件

收起该表格展开该表格
File nameFile versionFile sizeDateTimePlatform
Ia64_2ca2c45892704f67f7164870e4e836e0_31bf3856ad364e35_6.0.6002.22267_none_8469c4720eb53166.manifestNot Applicable1,03416-Nov-200909:34Not Applicable
Ia64_2e50ad2da37fc561ef1032e617e28a72_31bf3856ad364e35_6.0.6002.22267_none_15781e5470d1544c.manifestNot Applicable1,04016-Nov-200909:34Not Applicable
Ia64_microsoft-windows-kernel32_31bf3856ad364e35_6.0.6002.22267_none_95f5c2006cb7d43b.manifestNot Applicable4,52016-Nov-200907:29Not Applicable
Ia64_microsoft-windows-ntdll_31bf3856ad364e35_6.0.6002.22267_none_5b0ebb011299f7a3.manifestNot Applicable4,93816-Nov-200907:26Not Applicable
Wow64_microsoft-windows-kernel32_31bf3856ad364e35_6.0.6002.22267_none_fc6763e05977fe70.manifestNot Applicable5,32112-Nov-200919:16Not Applicable
Wow64_microsoft-windows-ntdll_31bf3856ad364e35_6.0.6002.22267_none_c1805ce0ff5a21d8.manifestNot Applicable5,48912-Nov-200919:16Not Applicable

Windows 7 和 Windows Server 2008 R2 的其他文件信息

所有受支持的基于 x64 的 Windows 7 和 Windows Server 2008 R2 版本的其他文件

收起该表格展开该表格
File nameFile versionFile sizeDateTimePlatform
Amd64_5e392545c9a18105cff0a2efe23e2a60_31bf3856ad364e35_6.1.7600.20573_none_5db473d3e6c0bf11.manifestNot Applicable69712-Nov-200923:12Not Applicable
Amd64_625f3821eba98e599b5350ce96abbd10_31bf3856ad364e35_6.1.7600.20573_none_4304eef1c5718360.manifestNot Applicable69712-Nov-200923:12Not Applicable
Amd64_6f9f53bbe34b08091f9928c95cd9ca1c_31bf3856ad364e35_6.1.7600.20573_none_61255b3d6f3ce1e6.manifestNot Applicable70012-Nov-200923:12Not Applicable
Amd64_d77bc388858b80e8087fccc49e9aaee8_31bf3856ad364e35_6.1.7600.20573_none_f2146af022d93f27.manifestNot Applicable70012-Nov-200923:12Not Applicable
Amd64_microsoft-windows-kernel32_31bf3856ad364e35_6.1.7600.20573_none_f04544f18913dda7.manifestNot Applicable4,91612-Nov-200920:57Not Applicable
Amd64_microsoft-windows-ntdll_31bf3856ad364e35_6.1.7600.20573_none_b55e3df22ef6010f.manifestNot Applicable3,80612-Nov-200920:51Not Applicable
Wow64_microsoft-windows-kernel32_31bf3856ad364e35_6.1.7600.20573_none_fa99ef43bd749fa2.manifestNot Applicable4,65312-Nov-200920:11Not Applicable
Wow64_microsoft-windows-ntdll_31bf3856ad364e35_6.1.7600.20573_none_bfb2e8446356c30a.manifestNot Applicable3,56612-Nov-200920:12Not Applicable
所有受支持的基于 IA-64 的 Windows Server 2008 R2 版本的其他文件

收起该表格展开该表格
File nameFile versionFile sizeDateTimePlatform
Ia64_2056e786283e5e81d21b2654f53c34ef_31bf3856ad364e35_6.1.7600.20573_none_ae1830105ff1dc0b.manifestNot Applicable69812-Nov-200923:12Not Applicable
Ia64_625f3821eba98e599b5350ce96abbd10_31bf3856ad364e35_6.1.7600.20573_none_e6e7f7640d121b26.manifestNot Applicable69612-Nov-200923:12Not Applicable
Ia64_d77bc388858b80e8087fccc49e9aaee8_31bf3856ad364e35_6.1.7600.20573_none_95f773626a79d6ed.manifestNot Applicable69912-Nov-200923:12Not Applicable
Ia64_fc2af028cf85d69aac408f33c478239a_31bf3856ad364e35_6.1.7600.20573_none_4aa16236c09a93f7.manifestNot Applicable69512-Nov-200923:12Not Applicable
Ia64_microsoft-windows-kernel32_31bf3856ad364e35_6.1.7600.20573_none_94284d63d0b4756d.manifestNot Applicable4,91412-Nov-200920:49Not Applicable
Ia64_microsoft-windows-ntdll_31bf3856ad364e35_6.1.7600.20573_none_59414664769698d5.manifestNot Applicable3,80412-Nov-200920:46Not Applicable
Package_for_kb976038_rtm~31bf3856ad364e35~ia64~~6.1.1.0.mumNot Applicable1,95812-Nov-200923:12Not Applicable
Wow64_microsoft-windows-kernel32_31bf3856ad364e35_6.1.7600.20573_none_fa99ef43bd749fa2.manifestNot Applicable4,65312-Nov-200920:11Not Applicable
Wow64_microsoft-windows-ntdll_31bf3856ad364e35_6.1.7600.20573_none_bfb2e8446356c30a.manifestNot Applicable3,56612-Nov-200920:12Not Applicable
注意:本篇“快速发布”文章是从 Microsoft 支持组织直接创建的。 文中包含的信息按原样提供,用于响应紧急问题。 由于发布仓促,材料可能包含印刷错误,并且可能随时修订,恕不另行通知。 有关其他注意事项,请参阅使用条款

属性

文章编号: 976038 - 最后修改: 2013年8月30日 - 修订: 1.0
这篇文章中的信息适用于:
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 Service Pack 2?当用于
    • Windows Server 2008 Datacenter without Hyper-V
    • Windows Server 2008 Enterprise without Hyper-V
    • Windows Server 2008 Standard without Hyper-V
    • Windows Server 2008 Datacenter
    • Windows Server 2008 Enterprise
    • Windows Server 2008 Standard
  • Windows Vista Enterprise 64-bit edition
  • Windows Vista Home Basic 64-bit edition
  • Windows Vista Home Premium 64-bit edition
  • Windows Vista Ultimate 64-bit edition
  • Windows 7 Enterprise
  • Windows 7 Home Basic
  • Windows 7 Home Premium
  • Windows 7 Professional
  • Windows 7 Starter
  • Windows 7 Ultimate
关键字:?
kbqfe kbHotfixServer kbsurveynew kbautohotfix kbexpertiseinter kbbug kbfix KB976038
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com