EDITAR: mi mal, no leí el KB lo suficiente como para darme cuenta de que es básicamente inútil como respuesta por sí solo.
Una forma más útil de determinar si está en modo seguro o no es de : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000por Mark E. Russinovich, David A. Solomon .
El kernel de Windows escanea los parámetros de arranque en busca de los conmutadores de modo seguro temprano durante el arranque y establece la variable interna InitSafeBootMode en un valor que refleje los conmutadores que encuentra el kernel. El kernel escribe el valor de InitSafeBootMode en el valor de registro HKLM \ SYSTEM \ CurrentControlSet \ SafeBoot \ Option \ Option Value para que los componentes en modo de usuario, como SCM, puedan determinar en qué modo de arranque se encuentra el sistema.
Tome lo anterior y empareje con el siguiente, y tendrá una ubicación de registro que puede verificar con un valor numérico que puede traducir en algo útil.
De support.microsoft KB titulado, "Cómo determinar si el sistema se está ejecutando en modo seguro desde un controlador de dispositivo".
El kernel del sistema operativo Windows exporta un puntero a una variable ULONG que se denomina InitSafeBootMode. Esta variable contiene la configuración del modo seguro.
Un controlador de dispositivo puede determinar si el sistema se está ejecutando en modo seguro por el valor de la variable InitSafeBootMode. Un valor de 0 significa que el sistema no se está ejecutando en modo seguro.
La siguiente tabla enumera los modos para otros valores. Modo de
valor 1 SAFEBOOT_MINIMAL 2 SAFEBOOT_NETWORK 3 * SAFEBOOT_DSREPAIR
* Nota El valor de 3 se aplica solo a los controladores de dominio de Windows.