事件標識碼 41 的進階疑難解答:「系統已重新啟動,但未先完全關閉」

注意事項

家庭使用者:本文主要提供給支援專員與 IT 專業人員使用。 如果您要尋找有關藍色螢幕錯誤訊息的詳細資訊,請造訪 針對藍色螢幕錯誤進行疑難解答

關閉 Windows 的慣用方式是選取 [ 開始],然後選取關閉或關閉電腦的選項。 當您使用此標準方法時,操作系統會關閉所有檔案,並通知執行中的服務和應用程式,讓它們可以將任何未儲存的數據寫入磁碟,並排清任何作用中的快取。

如果您的電腦意外關閉,Windows 會在下次電腦啟動時記錄事件標識碼 41。 事件文字類似下列資訊:

Event ID: 41  
Description: The system has rebooted without cleanly shutting down first.

此事件表示某些非預期的活動使 Windows 無法正確關閉。 這類關機可能是因為電源供應器中斷或停止錯誤所造成。 如果可行,Windows 會在關閉時記錄任何錯誤碼。 在下一個 Windows 啟動 的核心階段 ,Windows 會檢查這些程式代碼,並在事件識別碼 41 的事件數據中包含任何現有的程式代碼。

EventData  
BugcheckCode 159  
BugcheckParameter1 0x3  
BugcheckParameter2 0xfffffa80029c5060  
BugcheckParameter3 0xfffff8000403d518  
BugcheckParameter4 0xfffffa800208c010  
SleepInProgress false  
PowerButtonTimestamp 0Converts to 0x9f (0x3, 0xfffffa80029c5060, 0xfffff8000403d518, 0xfffffa800208c010)  

如何在疑難解答非預期的關機或重新啟動時使用事件標識碼 41

事件標識碼 41 本身可能未包含足夠的資訊,無法明確定義發生的情況。 一般而言,您也必須考慮非預期關機時發生的情況 (例如電源供應器故障) 。 使用本文中的資訊來識別適合您情況的疑難解答方法:

  • 案例 1:計算機因為停止錯誤而重新啟動,而事件識別碼 41 包含停止錯誤 (錯誤檢查) 碼
  • 案例 2:計算機會重新啟動,因為您按下並按住電源按鈕
  • 案例 3:計算機沒有回應或隨機重新啟動、未記錄事件識別碼 41 或事件識別碼 41 專案會列出錯誤碼值零

案例 1:計算機因為停止錯誤而重新啟動,而事件識別碼 41 包含停止錯誤 (錯誤檢查) 碼

當計算機因為停止錯誤而關閉或重新啟動時,Windows 會在事件標識碼 41 中包含停止錯誤數據,作為更多事件數據的一部分。 此資訊包括停止錯誤碼 (也稱為錯誤檢查碼) ,如下列範例所示:

EventData  
BugcheckCode 159  
BugcheckParameter1 0x3  
BugcheckParameter2 0xfffffa80029c5060  
BugcheckParameter3 0xfffff8000403d518  
BugcheckParameter4 0xfffffa800208c010  

注意事項

事件標識碼41包含十進位格式的Bug檢查程式代碼。 描述 Bug 檢查碼的大部分文件都會將程式代碼稱為十六進位值,而不是十進位值。 若要將十進位轉換成十六進位,請遵循下列步驟:

  1. 取 [開始],在 [搜尋] 方塊中輸入 calc,然後選取 [計算機]
  2. [計算機] 視窗中,選 取 [檢視>程序設計人員]
  3. 在計算機的左側,確認 已醒目提示 Dec
  4. 使用鍵盤輸入 Bug 檢查程式代碼的小數值。
  5. 在計算機的左側,選取 [ 十六進位]
    計算機顯示的值現在是十六進位程序代碼。

當您將 Bug 檢查程式代碼轉換成十六進位格式時,請確認 「0x」 指定後面接著八個數位 (也就是 「x」 後面的程式代碼部分包含足夠的零,以填入) 的八位數。 例如,0x9F通常會記錄為0x0000009f,而0xA會記錄為0x0000000A。 在本文中範例事件數據的案例中,“159” 會轉換為 0x0000009f。

識別十六進位值之後,請使用下列參考繼續進行疑難解答:

案例 2:計算機會重新啟動,因為您按下並按住電源按鈕

由於此重新啟動計算機的方法會干擾 Windows 關機作業,因此建議您只在沒有任何替代方案時才使用此方法。 例如,如果您的電腦沒有回應,您可能必須使用此方法。 當您按住電源按鈕來重新啟動計算機時,計算機會記錄事件標識碼 41,其中包含 PowerButtonTimestamp 專案的非零值。

<EventData>
<Data Name="BugcheckCode">0</Data>
<Data Name="BugcheckParameter1">0x0</Data>
<Data Name="BugcheckParameter2">0x0</Data>
<Data Name="BugcheckParameter3">0x0</Data>
<Data Name="BugcheckParameter4">0x0</Data>
<Data Name="SleepInProgress">0</Data>
<Data Name="PowerButtonTimestamp">131728546170882432</Data>
<Data Name="BootAppStatus">0</Data>
</EventData>

如需針對沒有回應的計算機進行疑難解答時的說明,請參閱 Windows 說明。 請考慮使用「停止回應」、「回應」或「空白畫面」等關鍵詞來搜尋協助。

案例 3:計算機沒有回應或隨機重新啟動、未記錄事件識別碼 41 或事件識別碼 41 專案或列出錯誤碼值為零

此案例包含下列情況:

  • 您關閉無回應電腦的電源,然後重新啟動電腦。
    若要確認電腦沒有回應,請按鍵盤上的 Caps 鎖定 鍵。 如果按下 Caps 鎖定鍵時鍵盤上的 Caps 鎖定燈未變更,計算機可能沒有回應 (也稱為硬性停止回應) 。
  • 計算機會重新啟動,但不會產生事件標識碼 41。
  • 計算機會重新啟動併產生事件標識碼 41,但 BugcheckCodePowerButtonTimestamp 值為零。

在這種情況下,某些專案會防止 Windows 產生錯誤碼或將錯誤碼寫入磁碟。 某些專案可能會封鎖磁碟 (的寫入存取,例如,如果計算機) 沒有回應,或計算機關閉的速度太快而無法寫入錯誤碼,甚至偵測到錯誤。

事件標識碼 41 中的資訊提供一些開始檢查問題的位置指示:

  • 未記錄事件標識碼 41,或錯誤檢查碼為零。 此行為可能表示電源供應器問題。 如果計算機的電源中斷,計算機可能會關閉,而不會產生停止錯誤。 如果確實產生停止錯誤,則可能不會完成將錯誤碼寫入磁碟。 下次電腦啟動時,可能不會記錄事件標識碼 41。 或者,如果是,Bug 檢查程式代碼為零。 下列情況可能是原因:

    • 如果是可攜式計算機,則會移除或清空電池。
    • 如果是桌面電腦,則計算機已拔除或發生電源中斷。
    • 電源供應器的電源不足或發生錯誤。
  • PowerButtonTimestamp 值為零。 如果您將電源中斷連線到未回應輸入的計算機,可能會發生此行為。 下列情況可能是原因:

    • Windows 進程會封鎖磁碟的寫入存取,而且您至少按住電源按鈕來關閉電腦四秒。
    • 您已將電源中斷連線到沒有回應的電腦。
  • 無法寫入傾印檔案,且所有值都是零。 例如:

    <EventData>
    <Data Name="BugcheckCode">0</Data>
    <Data Name="BugcheckParameter1">0x0</Data>
    <Data Name="BugcheckParameter2">0x0</Data>
    <Data Name="BugcheckParameter3">0x0</Data>
    <Data Name="BugcheckParameter4">0x0</Data>
    <Data Name="SleepInProgress">0</Data>
    <Data Name="PowerButtonTimestamp">0</Data>
    <Data Name="BootAppStatus">0</Data>
    </EventData>
    

    不過,volmgr 會記錄事件標識碼 46: 損毀傾印初始化失敗!。 如果計算機在沒有設定傾印檔案的情況下啟動,就可能發生此事件。 默認傾印檔案是頁面檔。

    事件記錄檔的螢幕快照。

    因此,當您的案例發生非預期的重新啟動,且事件標識碼 41 的所有值都為 0 時,請檢查 volmgr 是否有事件識別碼 46。 如果是,請檢查頁面檔組態。 非預期的重新啟動仍可能因為錯誤檢查而發生,但系統無法在事件標識碼 41 中寫入錯誤檢查類型,也無法產生記憶體轉儲。 當 您啟動電腦時,請參閱事件標識碼 46

一般而言,此案例中所述的徵兆表示硬體問題。 若要協助找出問題,請執行下列步驟:

  • 停用過度封鎖。 如果計算機已啟用過度封鎖,請停用它。 確認系統以正確的速度執行時發生問題。
  • 檢查記憶體。 使用記憶體檢查工具來判斷記憶體健康情況和組態。 確認所有記憶體晶元都以相同的速度執行,而且每個晶元都已在系統中正確設定。
  • 檢查電源供應器。 確認電源供應器有足夠的瓦數可適當地處理已安裝的裝置。 如果您新增記憶體、安裝較新的處理器、安裝更多磁碟驅動器或新增外部裝置,則這類裝置所需的能源可能會比目前的電源供應器一致地提供更多。 如果計算機因為計算機的電源中斷而記錄事件標識碼 41,請考慮取得不間斷的電源供應 (UPS) ,例如電池備份電源供應器。
  • 檢查是否過熱。 檢查硬體的內部溫度,並檢查是否有任何過熱的元件。
  • 如果計算機是實體計算機,則可能是由自動伺服器復原 (ASR 重新啟動,) 偵測到計算機沒有回應的軟體。
  • 如果系統在 Hyper-V 虛擬機中執行, (VM) ,而且不是叢集環境的一部分,則 Hyper-V 活動訊號功能可能已重新啟動系統。 如果啟用此功能,且主機偵測不到來自 VM 的活動訊號 (可能是因為它沒有回應) ,則 Hyper-V 會重新啟動 VM。
  • 如果問題發生在 Hyper-V 叢集環境中,問題可能與 [啟用虛擬機的活動訊號監視 ] 選項有關。 當您嘗試從叢集環境中執行的虛擬機取得完整記憶體轉儲檔案時,請參閱損毀的記憶體轉儲檔案。
  • 如果 VMWare VM 發生問題,可能會與 VMWare 中的活動訊號功能相關,或 VM 屬於部分第三方叢集。
  • 從應用程式和系統記錄檔中的事件標識碼 6008) 取得 (關機時間之前,檢查是否有任何可疑事件。

如果您執行這些檢查,但仍無法隔離問題,請將系統設定為其預設組態,並確認問題是否仍發生。

注意事項

如果您看到包含 Bug 檢查碼的停止錯誤訊息,但事件識別碼 41 不包含該程式代碼,請變更電腦的重新啟動行為。 如果要執行這項操作,請依照下列步驟執行:

  1. 以滑鼠右鍵按兩下 [我的計算機],然後選取 [ 屬性>][進階系統設定>]
  2. 在 [ 啟動和復原] 區段中,選取 [ 設定]
  3. 清除 [ 自動重新啟動] 複選框。

其他相關資訊

事件標識碼 41 的詳細數據

當電腦意外關閉或重新啟動時,會發生 Kernel Power 事件識別碼 41 錯誤。 當以 Windows 為基礎的電腦啟動時,會執行檢查以判斷計算機是否已完全關閉。 如果沒有,則會產生 Kernel Power 事件標識碼 41 訊息。

事件標識碼 41 可用來報告發生非預期的情況,導致 Windows 無法正確關閉。 資訊可能不足,無法明確定義發生什麼事。 如需詳細資訊,請參閱 核心 Power 事件標識碼 41

  • 記錄檔名稱:系統
  • 產品:Windows 操作系統
  • 標識碼:41
  • 來源:Microsoft-Windows-Kernel-Power
  • 層級:重大
  • 版本:6.1
  • 訊息:系統已重新啟動,但未先完全關閉。 如果系統停止回應、損毀或意外中斷電源,可能會造成此錯誤。

注意事項

.evtx 檔案中顯示的時間會調整為系統的時間。 檢查伺服器的時區。

  • 事件標識碼 41:此事件表示 Windows 在未完全關機的情況下重新啟動。
  • 事件標識碼 1074:當應用程式負責系統關閉或重新啟動時,會記錄此事件。 它也會指出使用者何時使用 [ 開始 ] 功能表或按 Ctrl+Alt+Del 來重新啟動或關閉系統。
  • 事件標識碼 6006:此事件表示 Windows 已適當地關閉。
  • 事件標識碼 6008:此事件表示關機不正確或中途。 當最近一次關機未預期時,就會記錄此記錄。

在計算機關機之前, shutdown.exe 會將關機事件記錄在 Windows 系統記錄檔中,其中包含 Source=User32 和事件識別碼 1074,以及任何自定義訊息 & 原因代碼。

事件記錄檔是指出從 shutdown.exe 觸發重新啟動的唯一方法是擱置中。 事件也會記錄用戶名稱,以及發出命令的 shutdown 日期和時間。

使用 shutdown.exe 重新啟動伺服器時,關機程式通常會允許 30 秒,以確保每個執行中的服務都有停止的時間。 服務會依字母順序關閉。 使用 或 SC 以特定順序NET STOP手動停止服務可能會稍微快一點。

開機狀態檔案 (自 windows 內部第 6 個)

Windows 會使用開機狀態檔案 (%SystemRoot%\Bootstat.dat) 來記錄它已在系統生命週期的各種階段進行,包括啟動和關機的事實。

這可讓開機管理員、Windows 載入器和啟動修復工具偵測異常關機或無法完全關機,以提供用戶復原和診斷開機選項,例如上次已知良好和安全模式。 此二進位檔包含系統報告下列系統生命週期階段成功報告的資訊:

  • 開機 (成功開機的定義與用來判斷上次已知良好狀態的定義相同,如先前所述)
  • Shutdown
  • 從休眠或暫停繼續

開機狀態檔案也會指出使用者上次嘗試開機操作系統時是否偵測到問題,以及顯示的復原選項,表示使用者已察覺問題並採取動作。 ntdll.dll 中 rtl) (執行時間連結庫 API 包含 Windows 用來讀取和寫入檔案的私人介面。 如同 BCD,使用者無法編輯它。

關於關機

起始關機時,Windows 會將WM_QUERYENDSESSION訊息傳送至具有使用者介面 (UI) 線程的所有執行中應用程式。 此訊息會要求應用程式儲存任何未儲存的數據,並正常終止。 如果應用程式未在特定時間限制內回應訊息,Windows 會傳送WM_ENDSESSION訊息給應用程式,這會立即終止應用程式。

如果所有應用程式都回應WM_QUERYENDSESSION訊息並正常終止,Windows 會在系統事件記錄檔中記錄全新關機事件。 如果有任何應用程式未回應訊息或異常終止,Windows 會在系統事件記錄檔中記錄中途關機事件。

非預期的關機大多是由作業系統外部的元件所造成。

中途關機是計算機系統在未經過適當關機程式的情況下關閉時。 當電源突然關閉,或當計算機按住電源按鈕強制關閉時,就會發生這種情況。 中途關機可能會導致數據遺失或損毀,也可能導致開機問題。

中途關機計數登錄是Windows 登錄中的登錄機碼,用來追蹤計算機系統關閉的次數,而不需要經過適當的關機程式。 針對開機問題進行疑難解答以識別系統是否未正確關閉電源時,此密鑰會很有用。

您也可以在下列登錄機碼中清除所有 (值,例如 DirtyShutdown、LastAliveStamp、TimeStampInterval) : Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability。 這有助於防止關機事件追蹤器在非預期的關機之後出現。