संपादित करें: मेरा बुरा, मैंने केबी को पूरी तरह से महसूस करने के लिए पर्याप्त रूप से नहीं पढ़ा कि यह मूल रूप से अपने आप में एक उत्तर के रूप में बेकार है।
निर्धारित करने के लिए एक अधिक उपयोगी तरीका अगर आप नहीं की सुरक्षित मोड में से है : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000द्वारा मार्क ई Russinovich, डेविड ए सुलैमान ।
विंडोज कर्नेल बूट के दौरान सुरक्षित मोड स्विच की तलाश में बूट पैरामीटर स्कैन करता है और आंतरिक चर InitSafeBootMode को एक मान पर सेट करता है जो उन स्विच को दर्शाता है जो कर्नेल ढूँढता है। कर्नेल InitSafeBootMode मान को रजिस्ट्री मान HKLM \ SYSTEM \ CurrentControlSet \ SafeBoot \ Option \ Option मान में लिखता है ताकि उपयोगकर्ता-मोड घटक, जैसे SCM, यह निर्धारित कर सके कि सिस्टम किस बूट मोड में है।
ऊपर और नीचे के साथ जोड़ी ले लो, और आपके पास एक रजिस्ट्री स्थान होगा जिसे आप संख्यात्मक मान से जांच सकते हैं कि आप कुछ उपयोगी में अनुवाद कर सकते हैं।
Support.microsoft KB से, "डिवाइस ड्राइवर से सिस्टम सुरक्षित मोड में चल रहा है या नहीं, इसका निर्धारण कैसे करें" शीर्षक।
Windows OS कर्नेल एक पॉइंटर को ULong वैरिएबल में एक्सपोर्ट करता है जिसे InitSafeBootMode नाम दिया गया है। इस चर में सेफ मोड सेटिंग्स हैं।
डिवाइस ड्राइवर यह निर्धारित कर सकता है कि सिस्टम InitSafeBootMode चर के मान से सुरक्षित मोड में चल रहा है या नहीं। 0 के मान का अर्थ है कि सिस्टम सेफ़ मोड में नहीं चल रहा है।
निम्न तालिका अन्य मूल्यों के लिए मोड को सूचीबद्ध करती है।
मान मोड
1 SAFEBOOT_MINIMAL
2 SAFEBOOT_NETWORK
3 * SAFEBOOT_DSREPAIR
* नोट 3 का मान केवल Windows डोमेन नियंत्रकों पर लागू होता है।