DetailPage-MSS-KB

知識庫

文章編號: 837643 - 上次校閱: 2004年5月29日 - 版次: 1.0

 

結論

本文將告訴您,如何判斷系統是否正在執行在 「 安全模式 」 下從裝置驅動程式。

其他相關資訊

將匯 [Windows OS 核心出指標到名為 InitSafeBootMode ULONG 變數。這個變數包含 「 安全模式設定。

裝置驅動程式可以判斷系統是否正執行於 「 安全模式 InitSafeBootMode 變數的值。 數值 0 表示系統 在 「 安全模式 」 下執行。

下表列出其他值的模式。
摺疊此表格展開此表格
模式
1 SAFEBOOT_MINIMAL
2SAFEBOOT_NETWORK
3 *SAFEBOOT_DSREPAIR
* 注意3 的值可套用到僅限 Windows 網域控制站。

您必須將下列宣告驅動程式中。
extern PULONG InitSafeBootMode; 
您必須檢查以判斷是否在安全模式中執行系統 InitSafeBootMode
if (*InitSafeBootMode > 0){ 

     // The system is in Safe Mode. 
     // Take appropriate action. 
     //     
} 
,例如若要防止在 「 安全模式中工作驅動程式,使用下列方法之一:
  • 函式的驅動程式

    如果函數驅動程式有 SERVICE_BOOT_START 的服務啟動類型,檢查 InitSafeBootMode 變數 AddDevice 常式中的值,並傳回失敗。

    附註您從未必須從 DriverEntry 常式傳回失敗。
  • 篩選器驅動程式

    如果您的篩選器驅動程式會啟動在開機期間,檢查 InitSafeBootMode 變數 AddDevice 常式中的值。不附加至裝置堆疊。從 AddDevice 常式傳回成功。
  • 其他驅動程式

    不先前提及的驅動程式檢查 InitSafeBootMode 變數 DriverEntry 常式中的值。如果系統是在 「 安全模式 」 中,請傳回失敗。

這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003 Driver Development Kit (DDK)
  • Microsoft Windows XP Driver Development Kit
  • Microsoft Win32 Device Driver Kit for Windows 2000
關鍵字: 
kbmt kbinfo kbdev kbhardware kbdriver kbddk kbwdm KB837643 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:837643  (http://support.microsoft.com/kb/837643/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
共用
其他支援選項
Microsoft Community 支援論壇
直接與我們連絡
尋找 Microsoft 認證合作夥伴
Microsoft 市集