EDIT: моє погано, я не прочитав КБ досить грунтовно, щоб зрозуміти, що це в основному марно як відповідь самостійно.
Більш корисний спосіб визначити , якщо ви перебуваєте в безпечному режимі не з : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000від Mark E. Руссиновича, Девід А. Соломона .
Ядро Windows сканує параметри завантаження в пошуках перемикачів безпечного режиму на початку завантаження та встановлює внутрішню змінну InitSafeBootMode на значення, яке відображає перемикачі, які знайде ядро. Ядро записує значення InitSafeBootMode до значення реєстру HKLM \ SYSTEM \ CurrentControlSet \ SafeBoot \ Option \ Option Value, щоб компоненти в режимі користувача, такі як SCM, могли визначати, в якому режимі завантаження працює система.
Візьміть вищезгадане та з’єднайте із наведеним нижче, і у вас буде місцезнаходження реєстру, яке ви можете перевірити, чисельне значення ви можете перевести на щось корисне.
З support.microsoft KB під назвою "Як визначити, чи працює система в безпечному режимі від драйвера пристрою".
Ядро ОС Windows експортує вказівник на змінну ULONG, яка називається InitSafeBootMode. Ця змінна містить налаштування безпечного режиму.
Драйвер пристрою може визначити, чи працює система в безпечному режимі за значенням змінної InitSafeBootMode. Значення 0 означає, що система не працює в безпечному режимі.
У наступній таблиці перераховані режими для інших значень. Режим
значення 1 SAFEBOOT_MINIMAL 2 SAFEBOOT_NETWORK 3 * SAFEBOOT_DSREPAIR
* Примітка. Значення 3 стосується лише контролерів домену Windows.