文章編號: 139071 - 上次校閱: 2006年7月26日 - 版次: 5.4

FIX: OLE 自動化 BSTR 快取會導致記憶體遺漏來源的 Windows 2000

可以下載 Hotfix下載 Hotfix
檢視和要求下載 hotfix
系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

結論

本文將告訴您下列關於此 Hotfix 版本:
  • Hotfix 套件所修正之問題。
  • 安裝 Hotfix 套件所需的必要條件。
  • 是否您必須重新啟動電腦安裝 Hotfix 套件之後。
  • 是否 Hotfix 套件會取代任何其他 Hotfix 套件。
  • 您必須在是否做任何登錄變更。
  • Hotfix 套件中所包含的檔案。

徵狀

自動化 (先前稱為 OLE 自動化與 ActiveX 自動化) 會快取的 BSTR 字串配置的空間。 這可能會造成 IMallocSpy 錯誤的 BSTR 使用者的應用程式,自動化的 BSTR,字串會使用此屬性記憶體遺漏 (Memory Leak)。 藉由停用自動化的快取藉由設定環境變數找不到正確的來源的遺漏 OANOCACHE = 1 執行應用程式之前。在許多伺服器端應用程式中 BSTR 快取不是必要的。沒有可停用在 Windows 2000 電腦上快取的 BSTR 的 Hotfix。Windows XP 和 Windows Server 2003 不需要停用快取 BSTR Hotfix。

解決方案

Microsoft 提供支援的 Hotfix。不過,此 Hotfix 旨在修正本文中所述隨問題。只會發生此特定問題的系統套用此 Hotfix。

如果此 Hotfix 可供下載,您可在本知識庫文件的頂端找到「 可用的 Hotfix 下載 」區段。如果沒有出現此區段,將要求提交到 Microsoft 客戶服務及支援],以取得該 Hotfix。

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

必要條件

您必須安裝 Windows 2000 服務套件 4 (SP4) 套用此 Hotfix。

重新啟動資訊

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

登錄資訊

您沒有變更登錄。

Hotfix 檔案資訊

此 Hotfix 包含只需修正本文所列問題的那些檔案。此 Hotfix 並未包含必須將產品完整更新至最新版組建的所有檔案。此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用 [中日期] 和 [時間] 工具,在 [控制台] 中的 [時區] 索引標籤]。
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Asycfilt.dll2.40.4528.0143,6322005 年九月 11 日13: 05x86
一定2.40.4528.0631,0562005 年九月 11 日13: 05x86
Olepro32.dll5.0.4528.0164,1122005 年九月 11 日13: 05x86
Stdole2.tlb2.40.4528.016,8962005 年八月 23 日02: 13

狀況說明

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

其他相關資訊

自動化快取的 BSTRs 配置的空間。這可以加速 SysAllocString/SysFreeString 序列。不過,這可能導致 IMallocSpy 至屬性遺漏 (Memory Leak),到錯誤的記憶體使用者,因為它並不知道的自動化執行快取。比方說如果應用程式會配置 BSTR,並且釋放它,記憶體的釋放的區塊會放入 BSTR 快取由自動化。如果應用程式然後會配置另一個 BSTR,它可能會收到來自快取的可用區塊。如果不釋放第二個 BSTR 配置,IMallocSpy 將第一個 [BSTR 配置屬性遺漏。正確的遺漏來源 (第二個配置) 可以藉由停用自動化執行 [BSTR 快取來決定。您可以這樣做,即可設定環境變數 OANOCACHE = 1 執行應用程式之前。在 Windows 2000 上 oleaut32.dll 本文中所參考 Hotfix 版本是必要的。也是重要漏水在正確的時間來防止 false 遺漏報表看起來。當 IMallocSpy 實作會太快檢查遺漏 (Memory Leak) 時,可能就會發生這些遺漏 (Memory Leak)。使用者由 IMalloc 所配置的記憶體可合法存放它 OleUninitialize 之後。比方說自動化 BSTR 快取是在一定檔案 DLL_PROCESS_DETACH 時間刪除。這表示該檢查漏水 OleUninitialize 可能會造成記憶體遺漏 (Memory Leak) 的則為 False 報表後,立即。尋找記憶體遺漏 (Memory Leak) 的好地方處於靜態的執行個體的一個類別,都實作 IMallocSpy 解構函式。使用 DLL_PROCESS_DETACH 呼叫每一個應用程式所連結的 DLL DllMain 後,會呼叫這個靜態的執行個體的解構函式。

設定 OANOCACHE 環境變數

  1. 在控制台中按兩下 [系統] 圖示。出現 [系統內容] 對話方塊。
  2. 在 [進階] 索引標籤上按一下 [環境變數]。環境變數] 對話方塊隨即出現。
  3. 在 [系統變數 下, 按一下 [新增]。新增系統變數] 對話方塊隨即出現。
  4. 型別 OANOCACHE變數名稱] 方塊中。
  5. 在 [變數值] 方塊中輸入 1
  6. 按三次 [確定]
OANOCACHE 環境變數變更之前您必須停止下列伺服器處理程序,如果執行:
  • Inetinfo 處理序
  • Dllhost 處理程序
  • W3wp 處理程序
  • Aspnet_wp 程序
附註如果您不確定是否執行這些伺服器處理程序,設定環境變數 OANOCACHE = 1,然後重新啟動電腦。

?考

如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
824684? (http://support.microsoft.com/kb/824684/ ) 用來描述 Microsoft 軟體更新標準術語的說明

這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
關鍵字:?
kbmt kbautohotfix kbhotfixserver kbqfe kbexpertiseadvanced kbfix kbpubtypekc kbautomation KB139071 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:139071? (http://support.microsoft.com/kb/139071/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。