一、简述
关于高级电源管理程序APM(即Advanced Power Management的缩写)的设置和使用,乃至发展历史和演变过程,很多资料上都有,所以此处无必要再重复那些内容.仅需要解释的是:APM是指管理功能而言的,早期在操作系统中并无与之对应的操作界面;后来,特别是从windows95开始,APM大量被应用在微型计算机上后,这时亟需有对应的操作界面,以便使普通用户能够方便地进行电源管理设置,这才引入了ACPI(电源管理高级配置界面).现在多数计算机可以对APM和 ACPI同时予以支持。
在windows2000中,APM支持对电池供电的管理、并能将正在运行的机器引入等待状态,以节约用电.或从等待状态中重新恢复使用.诸如此类的东西都为大家所熟悉,并无新意.此处所介绍的,乃是一个基于命令行的工具,用这个工具可以在命令行的状态下诊断关于高级电源管理的状态,利用这些状态信息,帮助你发现并排除电源管理方面的问题。
在windows2000中,进行与电源管理有关的操作,主要有下几个途径:A.BIOS设置。B.注册表设置。C.在控制面版中,利用高级电源管理配置界面进行设置.其实,用界面设置和以修改注册表设置,两者的效果是殊路同归的―――-为了方便那些没有能力进行注册表编辑的使用者,才引入了图形界面,即高级电源管理配置界面的。既然高级电源管理牵扯到BIOS设置和注册表的设置,所以,电源状态诊断程序在它生成的报告文件中会列出BIOS中与电源管理有关的设置信息和注册表中相应的设置信息。
二、语法与应用
在所有支持工具的语法中,大概数这个工具的语法最为简单了,一共只有一个命令和两个开关.完整的语法如下:
apmstat [-v] [-?]
命令及参数说明:
apmstat
命令文件名称,必须使用的部分,不可省去.
-v
显示关于电源管理的设置结果:包括在BIOS中和在注册表中,与电源管理有关的信息.
-?
显示命令使用的语法和帮助信息.
执行命令应先打所谓的开命令行控制台:cmd,打开后,在系统提示符号后面键入命令:apmstat –v 然后回车.就可以得到相应的显示信息.下面是我在自己的机器上执行该命令、显示出结果之后复制下来的屏幕报告:(其中的中文是我加上的)
C:\Program Files\Support Tools>apmstat -v
This computer appears to have an APM legal HAL 这台计算机的APM具备合法的硬件抽象层
This machine has an APM bios present that looks OK, and it is
not on the list of machines known to have APM problems. 这台机器与APM有关的BIOS设置OK,且在列表中没有发现APM有问题.
Check the power applet in the control panel to see if APM is enabled 可以在控制面版中检测电源管理程序.
APM Registry Data Dump APM注册表数据映像
Major = 0001 Minor = 0002
InstallFlags = 0007
Code16Segment = f000 Code16Offset = 8560 DataSeg = fdfc
Signature = APM
Valid = 0001
Detection Log Data: 探测出的日志文件中的资料
44 45 54 4c 4f 47 31 00 00 00 00 00 00 00 00 00
D E T L O G 1
C:\Program Files\Support Tools> (屏幕信息到此为止)
如果发现电源管理有问题,在这些报告中会显示出来.利用注册表数据映像,可以作为修改注册表的参考.
三、相关背景资料
以下介绍的是关于电源管理程序的一些背景资料:
1. APM在windows2000的服务器上是被禁用的。
2. 如果windows2000在启动中没有探测到电池,一般情况下就以为是工作在桌面计算机上的.电源管理程序将自动按桌面计算机配置默认的管理方案。
3. APM 用在桌面计算机上的可能产生的问题
由于操作系统引入电源管理程序,而计算机的BIOS设置中也有与电源管理相关的项目.且双方的管理项目都是可以设定的.对不同的计算机来说,不同的设定会带来不同的结果:有的打开电源管理会引系统的不稳定,只有禁用电源管理才能解决问题.通常,桌面计算机为避免引入APM后,与第三方的供应的视频卡或其它板卡造成上述的不稳定问题,需要在计算机的BIOS中,将与APM有关的部分设为禁用.当然,也有的计算机可以允许两者并存且能很好地工作.由于这涉及到BIOS、主板、所加板卡的兼容性能,其间的情况千变万化,具体应当如何,你只有"酌情处理"了。
4.构成APM的主要部分:
APM BIOS
这是指放置在BIOS中的与APM(电源管理)有关的部分.
Ntdetect.com (Startup Hardware Detector)
这是操作系统中探测APMBIOS信息的部分,主要是探测在BIOS中,关于APM的部分现在是否可用.实际上这部分与注册表有关.从上面我们截取的屏幕信息中可以发现,不论在BIOS中电源管理设置为何种状态,都在注册表中有所反映.
NtLdr
当刚才计算机是出于休眠状态的时候,这部分负责将其从休眠状态中恢复过来.
Ntapm.sys
这部分负责将操作系统与设备驱动程序联系在一起,由于windows是属于事件触发的操作系统,所以,电源管理的实现也必须转化为一个可触发的事件.粗略地说:当出现"管理事件"之后,由这个程序来通知操作系统.
Hal.dll 硬件抽象层对应的连接库文件.
Apmbatt.sys
模拟电池的程序,实际是产生模拟电池状态的代码.
Power Options control panel program
控制面版中的电源管理程序.打开控制面版,有电源管理的图标,双击打开后,就可以进行设置,这就是所谓的ACPI了.
Biosinfo.inf
保存BIOS信息的文件.
5. ACPI的使用
利用控制面版来设置电源管理时,改变原有的状态之后,需要重新启动机器才能使新的设置生效.如果控制面版中没有电源管理的项目可用,则很可能这是一台不能支持电源管理的计算机.
如果计算机使用有电池供电或UPS,在控制面版的选项中,将显示有电池的选项.其实我自己的机器上根本没有电池,但打开控制面版后,也有关于电池的选项,只是有关的项目没有进行设置而已.具体可以参看控制面版.