核心記憶體傾印] 會顯示在啟動及修復,但在 Windows 2000 或 Windows Server 2003 中,會執行完整的記憶體傾印

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

在此頁中

徵狀

您可能會遇到一或多個下列徵狀:
  • 當您嘗試在 Microsoft Windows 2000 架構的電腦上檢視記憶體傾印時,記憶體傾印檔案可能已損毀,而您無法開啟檔案。
  • 啟動及修復] 對話方塊中 [寫入偵錯資訊 的清單設定設為 「 核心記憶體傾印,不過完整記憶體傾印執行 Windows 2000 電腦上或 Microsoft Windows Server 2003 電腦上執行。

發生的原因

如果下列情況成立,可能就會發生這個問題:
  • 在您的電腦以 2 GB 或更多增加記憶體數量。

    附註記憶體傾印檔案將會損毀在 Windows 2000 架構的電腦上,如果您增加到 4 GB 或更多記憶體。
  • 您已經安裝所述的 Hotfix 「 Microsoft 知識庫 」 文件中 820361,或者您已經在安全性 Hotfix MS04-011 中安裝所述的 Hotfix。

    如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
    835732Microsoft Windows 的 MS04-011: 安全性更新
  • 在登錄中 CrashDumpEnabled 項目的值已設定為 0x1。
記憶體加入執行 Windows 2000 或 Windows Server 2003 的電腦時 CrashDumpEnabled 登錄項目的值不會變更以反映增加的記憶體量。 完整記憶體傾印是由 Windows 完成時,值 0x1 便會指派 CrashDumpEnabled 登錄項目。核心記憶體傾印是由 Windows 完成時,值為 0x2 便會指派 CrashDumpEnabled 登錄項目。當您增加到 2 GB 以上執行 Windows 的電腦中的記憶體數量時,預期完整記憶體傾印設定將會變成設定 CrashDumpEnabled 登錄項目和設定 啟動及修復] 對話方塊中的 [寫入偵錯資訊] 清單中的核心記憶體傾印。

比方說當您在上具有 2 GB 記憶體的電腦安裝 Windows 時 系統內容] 的 [啟動及修復] 對話方塊中 [寫入偵錯資訊] 清單設定將是 完整的記憶體傾印。對應的 CrashDumpEnabled 登錄項目設定為 0x1 值。

如果記憶體加入執行 Windows,使總記憶體 2 GB 以上的電腦 寫入偵錯資訊 的 [清單] 設定會變更為 核心記憶體傾印。不過,CrashDumpEnabled 登錄項目會保留 0x1 值。

如果在電腦意外中斷,時,記憶體傾印發生,IopReadDumpRegistry() 函式會從登錄讀取 CrashDumpEnabled 項目的值。 不過,IopReadDumpRegistry() 函式會具有硬式編碼的限制,將會覆寫的 0x1 登錄值並會執行核心記憶體傾印,如果函式偵測到伺服器有 2 GB 以上記憶體。 因此,如果伺服器停止,核心記憶體傾印執行而非完整的記憶體傾印]。

當您在 Windows 2000 電腦上安裝 Hotfix 820361 或安全性 Hotfix MS04-011 時,硬式編碼的 2 GB 的記憶體限制會移除從 IopReadDumpRegistry() 函式。 因此,如果您 2 GB 以上的電腦中增加記憶體,Windows 2000 會嘗試建立完整的記憶體傾印,而非核心記憶體傾印,如果在電腦意外停止。

如果您增加到 4 GB 或更多在 Windows 2000 架構的電腦上記憶體,Windows 2000 無法執行完整的記憶體傾印,記憶體傾印檔案已損毀。

附註Windows Server 2003 可以執行完整的記憶體傾印,不論安裝在電腦的記憶體數量。比方說假設設定 啟動及修復] 設定值,而且 CrashDumpEnabled 登錄項目,分別執行核心記憶體傾印及完整的記憶體傾印。如果您的電腦上有 4 GB 的記憶體,完整記憶體傾印會發生如果您有一個大型系統磁碟分割上的足夠分頁檔。分頁檔必須是實體記憶體再加上 1 百萬位元組 (MB) 的大小。

CrashDumpEnabled 登錄項目位於下列登錄子機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

其他可行方案

若要更正 寫入偵錯資訊] 清單顯示在 Windows 2000 中的 Hotfix

如果要暫時略過正確 寫入偵錯資訊] 清單顯示問題在 Windows 2000 電腦上的套用知識庫文章 837297 所述的 Hotfix。 套用此 Hotfix 之後,設定值是 寫入偵錯資訊] 清單中的登錄值與同步處理。如果您的電腦具有 2 GB 以上記憶體,且 CrashDumpEnabled 登錄項目被指派值為 0x1,完整記憶體傾印] 選項是 [寫入偵錯資訊] 清單中選取。如果 CrashDumpEnabled 登錄項目不指派值 0x1,完整記憶體傾印] 選項是不會顯示在 [寫入偵錯資訊] 清單。

如更多有關此 Hotfix 的資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
837297建立損毀記憶體傾印檔案就不同於 Windows 2000 啟動及修復] 設定中所選擇之類型

若要更正 寫入偵錯資訊] 清單顯示在 Windows Server 2003 的 Hotfix

要包含在 Windows Server 2003 Service Pack 1 中排定的知識庫文章 837297 所述的 Hotfix 的 Windows Server 2003 版本。

若要強制使用 4 GB 的記憶體寫入核心記憶體傾印的 Windows 2000 的 Microsoft Visual Basic 指令碼

若要強制執行 Windows 2000 為基礎的電腦上具有 4 GB 或更多的記憶體來撰寫只有核心記憶體傾印,您可以使用下列的 Visual Basic 指令碼。

Microsoft 僅,為了說明提供程式設計範例,不提供任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已熟悉使用我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能,但它們不會修改這些範例以提供附加功能或建構程序,以符合您特定需求。
########## Start of VBS script ########## 
 
On Error Resume Next
 
Const ForAppending=8
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLogFile = objFSO.OpenTextFile("c:\memoryCheck.txt", ForAppending, True)
 
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    
Set colOperatingSystems = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")
    
For Each objOperatingSystem in colOperatingSystems
    OSNum="5.0.2195"
     csName=objOperatingSystem.CSName
 
    objLogFile.Write csName
    objLogFile.Writeline
                 
    objLogFile.Write objOperatingSystem.Caption & " " & objOperatingSystem.Version
    objLogFile.Writeline
    
    objMemory = objOperatingSystem.TotalVisibleMemorySize
    objLogFile.Write "Memory Size:" & objMemory& "KB"
    objLogFile.Writeline
 
    Set wshell = CreateObject("WScript.Shell")
    crashControl = Wshell.RegRead("HKLM\System\CurrentControlSet\Control\CrashControl\CrashDumpEnabled")
    objLogFile.Write "CrashDumpEnabled:" & crashControl 
    objLogFile.Writeline
 
    'verify whether os is 2000 server
    If (InStr(1,objOperatingSystem.Version,OSNUm)>1) and (objOperatingSystem.ProductType >1) Then 
                 objMemory = objOperatingSystem.TotalVisibleMemorySize
                     'verify whether menory is >4G
                      If objMemory >= 4194304 Then
                          'modify registry "CrashDumpEnabled" value to 2 and get the CSName if value is 1
                          If crashControl=1 Then
                               Const HKEY_LOCAL_MACHINE = &H80000002
                               Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ 
                               strComputer & "\root\default:StdRegProv")
                               strKeyPath = "System\CurrentControlSet\Control\CrashControl"
                               strValueName = "CrashDumpEnabled"
                               dwValue = 2
                               oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
                               objLogFile.Write "CrashDumpEnabled has been modified from 1 to 2"
                               objLogFile.Writeline
          Wscript.Echo "CrashDumpEnabled has been modified from 1 to 2"
                         End  If 
                       End If                                      
    End If  
Next
objLogFile.Close
 
########## End of VBS script ##########

其他相關資訊

下表顯示的類型,就會發生的損毀傾印和何種 [寫入偵錯資訊 設定會在 啟動及修復] 對話方塊中顯示。這些項目指派給 CrashDumpEnabled 登錄項目和安裝於電腦的記憶體數量的值而定。

Windows 2000 之前安裝 Hotfix 820361、 在更新之前先安裝 MS04-011,或 891861 已安裝更新之前

登錄值 0x1

摺疊此表格展開此表格
記憶體數量2 GB 或更少2 GB-4 GB4 GB 或以上
傾出執行的型別完成核心 核心
使用者介面顯示完成核心核心

登錄值 0x2

摺疊此表格展開此表格
記憶體數量2 GB 或更少2 GB-4 GB4 GB 或以上
傾出執行的型別核心核心核心
使用者介面顯示核心核心核心

安裝 Windows 2000 安裝 Hotfix 820361,安裝更新 MS04-011 之後或在更新 891861 之後

登錄值 0x1

摺疊此表格展開此表格
記憶體數量2 GB 或更少2 GB-4 GB4 GB 或以上
傾出執行的型別完成完成損毀完成
使用者介面顯示完成核心核心

登錄值 0x2

摺疊此表格展開此表格
記憶體數量2 GB 或更少2 GB-4 GB4 GB 或以上
傾出執行的型別核心核心核心
使用者介面顯示核心核心核心

Windows Server 2003 之前的安裝 Hotfix 820361,安裝更新 MS04-011 之前或之前的安裝 Service Pack 1

登錄值 0x1

摺疊此表格展開此表格
記憶體數量2 GB 或更少2 GB-4 GB4 GB 或以上
傾出執行的型別完成完成 完成
使用者介面顯示完成核心核心

登錄值 0x2

摺疊此表格展開此表格
記憶體數量2 GB 或更少2 GB-4 GB4 GB 或以上
傾出執行的型別核心核心核心
使用者介面顯示核心核心核心

Windows Server 2003 之後安裝 Hotfix 820361,安裝更新 MS04-011 之後,或安裝 Service Pack 1 後

登錄值 0x1

摺疊此表格展開此表格
記憶體數量2 GB 或更少2 GB-4 GB4 GB 或以上
傾出執行的型別完成完成完成
使用者介面顯示完成核心核心

登錄值 0x2

摺疊此表格展開此表格
記憶體數量2 GB 或更少2 GB-4 GB4 GB 或以上
傾出執行的型別核心核心核心
使用者介面顯示核心核心核心

屬性

文章編號: 885117 - 上次校閱: 2006年10月30日 - 版次: 4.2
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
關鍵字:?
kbmt kbtshoot kbprb KB885117 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:885117
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