阅读:2290回复:15
请问我有没有办法在驱动中判断系统是在安全模式还是普通模式
如体
我现在想禁用安全模式,有什么更好的办法么?? |
|
|
沙发#
发布于:2004-08-06 13:22
关注...
|
|
|
板凳#
发布于:2004-08-06 13:59
写一个在安全模式下也加载的驱动,和一个只在正常模式下加载的驱动,后者在前面先加载,当安全模式下也加载的驱动启动的时候检测前面哪个是否加载了,如没有,那可能在安全模式下,然后。。。。。。。
|
|
|
地板#
发布于:2004-08-06 14:03
嗯,谢谢老大
能不能顺便告诉我,什么样的驱动在正常模式加载,什么样的在安全模式加载???? |
|
|
地下室#
发布于:2004-08-06 14:09
好象INSIDE WIN2000里有介绍的,你看看先。。。。。。
|
|
|
5楼#
发布于:2004-08-06 14:15
不确定是不是 start值为0的service
|
|
6楼#
发布于:2004-08-06 17:17
wowocock兄,这是你判断是否为安全模式的方法???????????
terrychen 老弟,你使用InitSafeBootMode来判断吧,这个比较简单些。 |
|
|
7楼#
发布于:2004-08-06 18:37
The Windows 2000 kernel scans boot parameters in search of the safe-mode switches early during the boot and sets the internal variable InitSafeBootMode to a value that reflects the switches the kernel finds. The kernel writes theInitSafeBootMode value to the registry value HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Option\OptionValue so that user-mode components, such as the SCM, can determine what boot mode the system is in. In addition,if the system is booting safe mode with command prompt, the kernel sets the HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Option\UseAlternate Shell value to 1. The kernel records the parameters that Ntldr passes to it in the value HKLM\SYSTEM\CurrentControlSet\Control\SystemStartOptions.
|
|
8楼#
发布于:2004-08-06 19:03
2000看文章看的真细!
|
|
9楼#
发布于:2004-08-06 20:13
good ,heihei
|
|
|
10楼#
发布于:2004-08-06 20:40
过奖过奖,不过是有些印象,然后再翻书的
HKLMSYSTEM\\CurrentControlSet\\Control\\SafeBoot\\Option\\OptionValue |
|
11楼#
发布于:2004-08-09 14:55
谢谢各位老大指点,这回有救了
|
|
|
12楼#
发布于:2004-08-09 15:28
我又有点想法了,是不是在安全模式下由注册表的某一部分决定系统加载那些东西,不加载那些,那如果我修改了这些内容,是不是可以在安全模式下也同样可以自动启动我的程序???
|
|
|
13楼#
发布于:2004-09-19 17:51
arthurtu
你说的键在我的系统怎么没有: 我的 HKLM\\SYSTEM\\CurrentControlSet\\Control\\SafeBoot\\ 下面就只有Minimal和Network两个子项了,没有Option子项呀!!!!! |
|
14楼#
发布于:2004-09-20 17:50
进安全模式就有了
|
|
|
15楼#
发布于:2009-03-18 16:51
Windows 内核导出了一个变量.一个 ULONG 类型的指针.InitSafeBootMode .用于确定系统运行于何种模式下.驱动程序可以用这个导出的变量来判断系统当前处于何种模式下.下列是关于这个变量的一些取值的说明:
Value Mode 0 The operating system is not in Safe Mode. 1 SAFEBOOT_MINIMAL 2 SAFEBOOT_NETWORK 3* SAFEBOOT_DSREPAIR(仅用于windows 域控制器) 要使用这个变量可以参考如下: extern PULONG InitSafeBootMode; 然后便可以使用类似如下的代码片断做判断. if (*InitSafeBootMode > 0) { // The operating system is in Safe Mode. // Take appropriate action. // } |
|