在 64 位元版本的 Windows 中執行的應用程式,從擲回的例外狀況都會被忽略

文章翻譯 文章翻譯
文章編號: 976038 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

考慮下列案例:
  • 您在 Windows Server 2008]、 [Windows Vista]、 [Windows Server 2008 R2] 或 [Windows 7 的 64 位元版本上執行的應用程式。
  • 回呼常式中擲回的例外狀況是在使用者模式中執行。
在這種情況下這個例外狀況並不會導致應用程式當機。而是,應用程式進入到不一致的狀態。然後,應用程式就會擲回其他例外狀況,並當機。

使用者模式回呼函式通常是由核心模式元件呼叫的應用程式定義函式。使用者模式回呼函式的範例是 Windows 程序,而且勾點程序。這些函式是由 Windows 處理 Windows 訊息,或處理 Windows 攔截事件呼叫。

解決方案

Hotfix 資訊

Microsoft 提供支援的 Hotfix。不過,此 Hotfix 旨在修正本文中所述隨問題。請您僅在遇到本文所述問題的系統上安裝這個 Hotfix。這個 Hotfix 可能會接受額外的測試。因此,如果您不會嚴重影響這個問題,我們建議您等候下一個包含此 Hotfix 的軟體更新。

如果此 Hotfix 可供下載,您可在本知識庫文件的頂端找到「 可用的 Hotfix 下載 」區段。如果本節 Does Not Appear 請連絡[ Microsoft 客戶服務 ] 和 [ 支援 ] 以取得此 Hotfix。

附註如果發生其他問題,或如果需要任何疑難排解,您可能必須建立個別的服務要求。和此 Hotfix 無關的額外支援問題適用一般的支援費用。如需 Microsoft 客戶服務支援部門電話號碼的完整清單或要建立個別的服務要求,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support
附註「 下載 Hotfix 」 表單會顯示此 Hotfix 會出現,以供使用的語言。如果您沒有看到您的語言,是因為此 Hotfix 是不適用您的語言。

必要條件

若要將這個 Hotfix 您的電腦必須執行下列 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如何取得最新的 Service Pack 的 Windows Server 2008

安裝指示

警告如果您修改登錄不當使用 「 登錄編輯程式 」,或使用另一個方法,可能會發生嚴重的問題。這些問題可能需要重新安裝作業系統。Microsoft 無法保證可以解決這些問題。您必須自己承擔修改登錄所造成的風險。預設情況下,此 Hotfix 不會自動啟用您套用之後。您必須手動啟用此 Hotfix,在系統層級或處理序層級。啟用此 Hotfix 之後的例外狀況會擴大 Windows 核心處理。

啟用 [系統層級此 Hotfix 時系統中執行的所有處理序會受到影響。啟用 [在處理序層級此 Hotfix 時該特定處理序會受到影響。在處理序層級的 [Hotfix] 設定會取代 Hotfix 設定系統層級。

若要以便在系統層級此 Hotfix 請依照下列步驟執行:
  1. 在 [登錄編輯程式] 中,找出下列登錄子機碼:
    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
  2. 建立 DWORD 值 的登錄項的目。
  3. 命名新的登錄項目 DisableUserModeCallbackFilter。
  4. 設定 DisableUserModeCallbackFilter 登錄項目至 1 數值。
若要以便在處理序層級此 Hotfix 請依照下列步驟執行:
  1. 在 [登錄編輯程式] 中,找出下列登錄子機碼:
    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
    ] 或 [
    HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
  2. 建立一個登錄子機碼。
  3. 使用您想要啟用此 Hotfix 的處理序的名稱命名新的登錄子機碼。比方說如果想啟用此 Hotfix Notepad.exe 程序上的您命名新的登錄子機碼"Notepad.exe]。
  4. 新登錄子機碼下,建立 DWORD 值 的登錄項的目。
  5. 命名新的登錄項目 DisableUserModeCallbackFilter。
  6. 設定 DisableUserModeCallbackFilter 登錄項目至 1 數值。
這個 Hotfix 也包括 Kernel32.DLL 會匯出的新函式。應用程式可以呼叫這些新函式來啟用執行階段時,Hotfix。這些新函式和旗標定義為下列:
BOOL
WINAPI
SetProcessUserModeExceptionPolicy(
    __in DWORD dwFlags
    );

BOOL
WINAPI
GetProcessUserModeExceptionPolicy(
    __out LPDWORD lpFlags
    );

#define PROCESS_CALLBACK_FILTER_ENABLED     0x1
依預設值,使用 PROCESS_CALLBACK_FILTER_ENABLED 旗標集來建立新的處理程序。Hotfix 啟用處理程序的清除旗標:
DWORD dwFlags;
If (GetProcessUserModeExceptionPolicy(&dwFlags)) {
    SetProcessUserModeExceptionPolicy(dwFlags & ~PROCESS_CALLBACK_FILTER_ENABLED); 
}
重要 的登錄機碼只為了開發案例。獨立軟體廠商 (ISV) 不應該變更他們的安裝程式中影像檔案執行選項 (IFEO) 索引鍵。

重新啟動需求

套用此 Hotfix 之後,您必須重新啟動電腦。

Hotfix 取代資訊

此 Hotfix 不會取代先前發行的 Hotfix。

檔案資訊

此 Hotfix 的英文 (美國) 版本安裝檔案具有下列表格中所列的屬性。日期及這些檔案的時間會列出在定位國際時間 (UTC)。日期和本機電腦上這些檔案的時間,顯示以您當地的時間與目前的日光節約時間 (DST) 偏差。此外,日期和時間可能會執行時變更您在檔案上的某些作業。
Windows Vista 和 Windows Server 2008 的檔案資訊註記
重要Windows Vista Hotfix 與 「 Windows Server 2008 Hotfix 都包含在相同的套件 。不過,只有 「 Windows Vista 」 會列在 Hotfix 要求] 頁面上。若要要求套用至一或兩個作業系統的 Hotfix 套件,選取列在 「 Windows Vista 」 下,在頁面的 Hotfix。永遠請參考 < 適用於 > 一節來判斷每個 Hotfix 會套用到的實際作業系統的文件中。
  • 檔案套用至特定產品 SR_Level (RTM,SPn) 及服務分支 (LDR、 GDR) 可確認藉由檢查檔案版本號碼,如下列表格所示。
    摺疊此表格展開此表格
    版本產品SR_Level服務分支
    6.0.600 222xxxWindows Vista 及 Windows Server 2008sp2LDR
  • 資訊清單檔案 (.manifest) 和 [MUM (.mum) 安裝檔案的每個環境都是"其他檔案 Windows Server 2008,以及 Windows Vista 資訊 > 一節中 listed separately。MUM 檔案] 及 [資訊清單檔案] 和 [關聯的安全性類別目錄 (.cat) 檔案是非常重要維護更新元件的狀態。安全性類別目錄檔案的屬性並未列出,是使用 Microsoft 數位簽章簽署。
所有支援 x64 為主的 Windows Server 2008 及版本的 Windows Vista x

摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台服務分支
Kernel32.dll6.0.6002.222671,218,56012-Nov-200917: 42x64不適用
Ntdll.dll6.0.6002.222671,582,80012-Nov-200917: 48x64不適用
Kernel32.dll6.0.6002.22267858,62412-Nov-200917: 41x86
Ntdll.dll6.0.6002.222671,165,59212-Nov-200917: 44x86
所有支援 IA x64 為主的 Windows Server 2008 的版本

摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台服務分支
Kernel32.dll6.0.6002.222672,185,21615-Nov-200919: 11不適用不適用
Ntdll.dll6.0.6002.222672,564,16815-Nov-200919: 17IA 64不適用
Kernel32.dll6.0.6002.22267858,62412-Nov-200917: 41x86
Ntdll.dll6.0.6002.222671,165,59212-Nov-200917: 44x86
Windows 7 和 Windows Server 2008 R2 檔案資訊筆記
重要Windows 7 Hotfix 與 「 Windows Server 2008 R2 Hotfix 都包含在相同的套件 。不過,Hotfix 要求] 頁面中的 Hotfix 會列在這兩個作業系統下。若要要求套用至一或兩個作業系統的 Hotfix 套件,選取列在 [Windows 7/Windows Server 2008 R2] 下,在頁面的 Hotfix。永遠請參考 < 適用於 > 一節來判斷每個 Hotfix 會套用到的實際作業系統的文件中。
  • 資訊清單檔案 (.manifest) 和 [MUM (.mum) 安裝檔案的每個環境都是"其他檔案資訊的 Windows Server 2008 R2 和 Windows 7 」 一節中 listed separately。MUM 檔案] 及 [資訊清單檔案] 和 [關聯的安全性類別目錄 (.cat) 檔案是非常重要維護更新元件的狀態。安全性類別目錄檔案的屬性並未列出,是使用 Microsoft 數位簽章簽署。
所有支援 x x64 為主的版本和 Windows Server 2008 R2 的 Windows 7

摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台服務分支
Kernel32.dll6.1.7600.205731,162,75212-Nov-200920: 02x64不適用
Ntdll.dll6.1.7600.205731,737,32012-Nov-200920: 09x64不適用
Kernel32.dll6.1.7600.20573837,12012-Nov-200919: 55x86
Ntdll.dll6.1.7600.205731,290,24812-Nov-200919: 58x86
所有支援 IA x64 為主的 Windows Server 2008 R2 的版本

摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台服務分支
Kernel32.dll6.1.7600.205732,137,08812-Nov-200906: 16IA 64不適用
Ntdll.dll6.1.7600.205732,783,93612-Nov-200917: 35IA 64不適用
Kernel32.dll6.1.7600.20573837,12012-Nov-200919: 55x86
Ntdll.dll6.1.7600.205731,290,24812-Nov-200919: 58x86

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
973460在 64 位元版本或 Windows XP 商用版的 Windows Server 2003 中執行的 64 位元應用程式從擲回的例外狀況會以無訊息模式忽略


如需有關軟體更新術語的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
824684用來描述 Microsoft 軟體更新標準術語的說明

其他檔案資訊

對於 Windows Vista 和 Windows Server 2008 的其他檔案資訊

所有支援的其他檔案 x x64 為主的 Windows Vista 及版本的 Windows Server 2008

摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Amd64_0f42b3c2ef9b98e4e0113694f5b6e0ca_31bf3856ad364e35_6.0.6002.22267_none_3a25d0ed22bc1163.manifest不適用1,04216-Nov-200908: 47不適用
Amd64_8482a23005e0862a289bf92530421180_31bf3856ad364e35_6.0.6002.22267_none_897b8e5f5107b89b.manifest不適用1,03616-Nov-200908: 47不適用
Amd64_microsoft 視窗 kernel32_31bf3856ad364e35_6.0.6002.22267_none_f212b98e25173c75.manifest不適用4,52312-Nov-200919: 23不適用
Amd64_microsoft 視窗 ntdll_31bf3856ad364e35_6.0.6002.22267_none_b72bb28ecaf95fdd.manifest不適用4,94112-Nov-200919: 21不適用
Wow64_microsoft 視窗 kernel32_31bf3856ad364e35_6.0.6002.22267_none_fc6763e05977fe70.manifest不適用5,32112-Nov-200919: 16不適用
Wow64_microsoft 視窗 ntdll_31bf3856ad364e35_6.0.6002.22267_none_c1805ce0ff5a21d8.manifest不適用5,48912-Nov-200919: 16不適用
在支援的 IA-64 版本的 Windows Server 2008 上所有額外的檔案

摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Ia64_2ca2c45892704f67f7164870e4e836e0_31bf3856ad364e35_6.0.6002.22267_none_8469c4720eb53166.manifest不適用1,03416-Nov-200909: 34不適用
Ia64_2e50ad2da37fc561ef1032e617e28a72_31bf3856ad364e35_6.0.6002.22267_none_15781e5470d1544c.manifest不適用1,04016-Nov-200909: 34不適用
Ia64_microsoft 視窗 kernel32_31bf3856ad364e35_6.0.6002.22267_none_95f5c2006cb7d43b.manifest不適用4,52016-Nov-200907: 29不適用
Ia64_microsoft 視窗 ntdll_31bf3856ad364e35_6.0.6002.22267_none_5b0ebb011299f7a3.manifest不適用4,93816-Nov-200907: 26不適用
Wow64_microsoft 視窗 kernel32_31bf3856ad364e35_6.0.6002.22267_none_fc6763e05977fe70.manifest不適用5,32112-Nov-200919: 16不適用
Wow64_microsoft 視窗 ntdll_31bf3856ad364e35_6.0.6002.22267_none_c1805ce0ff5a21d8.manifest不適用5,48912-Nov-200919: 16不適用

對於 Windows 7 和 Windows Server 2008 R2 的其他檔案資訊

所有支援的其他檔案 x x64 為主的版本和 Windows Server 2008 R2 的 Windows 7

摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Amd64_5e392545c9a18105cff0a2efe23e2a60_31bf3856ad364e35_6.1.7600.20573_none_5db473d3e6c0bf11.manifest不適用69712-Nov-200923: 12不適用
Amd64_625f3821eba98e599b5350ce96abbd10_31bf3856ad364e35_6.1.7600.20573_none_4304eef1c5718360.manifest不適用69712-Nov-200923: 12不適用
Amd64_6f9f53bbe34b08091f9928c95cd9ca1c_31bf3856ad364e35_6.1.7600.20573_none_61255b3d6f3ce1e6.manifest不適用70012-Nov-200923: 12不適用
Amd64_d77bc388858b80e8087fccc49e9aaee8_31bf3856ad364e35_6.1.7600.20573_none_f2146af022d93f27.manifest不適用70012-Nov-200923: 12不適用
Amd64_microsoft 視窗 kernel32_31bf3856ad364e35_6.1.7600.20573_none_f04544f18913dda7.manifest不適用4,91612-Nov-200920: 57不適用
Amd64_microsoft 視窗 ntdll_31bf3856ad364e35_6.1.7600.20573_none_b55e3df22ef6010f.manifest不適用3,80612-Nov-200920: 51不適用
Wow64_microsoft 視窗 kernel32_31bf3856ad364e35_6.1.7600.20573_none_fa99ef43bd749fa2.manifest不適用4,65312-Nov-200920: 11不適用
Wow64_microsoft-視窗-ntdll_31bf3856ad364e35_6.1.7600.20573_none_bfb2e8446356c30a.manifest不適用3,56612-Nov-200920: 12不適用
對於所有其他檔案支援 IA x64 為主的 Windows Server 2008 R2 的版本

摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Ia64_2056e786283e5e81d21b2654f53c34ef_31bf3856ad364e35_6.1.7600.20573_none_ae1830105ff1dc0b.manifest不適用69812-Nov-200923: 12不適用
Ia64_625f3821eba98e599b5350ce96abbd10_31bf3856ad364e35_6.1.7600.20573_none_e6e7f7640d121b26.manifest不適用69612-Nov-200923: 12不適用
Ia64_d77bc388858b80e8087fccc49e9aaee8_31bf3856ad364e35_6.1.7600.20573_none_95f773626a79d6ed.manifest不適用69912-Nov-200923: 12不適用
Ia64_fc2af028cf85d69aac408f33c478239a_31bf3856ad364e35_6.1.7600.20573_none_4aa16236c09a93f7.manifest不適用69512-Nov-200923: 12不適用
Ia64_microsoft 視窗 kernel32_31bf3856ad364e35_6.1.7600.20573_none_94284d63d0b4756d.manifest不適用4,91412-Nov-200920: 49不適用
Ia64_microsoft 視窗 ntdll_31bf3856ad364e35_6.1.7600.20573_none_59414664769698d5.manifest不適用3,80412-Nov-200920: 46不適用
Package_for_kb976038_rtm ~ 31bf3856ad364e35 ~ ia64 ~ ~ 6.1.1.0.mum不適用1,95812-Nov-200923: 12不適用
Wow64_microsoft 視窗 kernel32_31bf3856ad364e35_6.1.7600.20573_none_fa99ef43bd749fa2.manifest不適用4,65312-Nov-200920: 11不適用
Wow64_microsoft-視窗-ntdll_31bf3856ad364e35_6.1.7600.20573_none_bfb2e8446356c30a.manifest不適用3,56612-Nov-200920: 12不適用

屬性

文章編號: 976038 - 上次校閱: 2009年12月28日 - 版次: 1.1
這篇文章中的資訊適用於:
  • 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 商用進階 64 位元版
  • Windows Vista 家用入門 64 位元版
  • Windows Vista 家用進階 64 位元版
  • Windows Vista 旗艦 64 位元版
  • Windows 7 Enterprise
  • Windows 7 Home Basic
  • Windows 7 Home Premium
  • Windows 7 Professional
  • Windows 7 Starter
  • Windows 7 Ultimate
關鍵字:?
kbmt kbqfe kbhotfixserver kbsurveynew kbautohotfix kbexpertiseinter kbbug kbfix KB976038 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:976038
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