<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Shutdown</id>
	<title>Shutdown - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Shutdown"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Shutdown&amp;action=history"/>
	<updated>2026-04-07T01:03:35Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Shutdown&amp;diff=893&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为“为了关闭计算机，你需要使用某种电源管理。 要么是APM要么是ACPI。  == APM == 这是关闭计算机必须给出的APM命令的基本序列。 有关如何实施这些步骤的详细信息，请参阅 APM 文章。  * 执行安装检查。 *检查APM版本是否至少为‘1.1 * 断开任何现有的APM接口。 * 连接实模式接口。 * 告诉APM你的驱动支持1.1版 * 为所有设备启用电源管理。 * 将所有设…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Shutdown&amp;diff=893&amp;oldid=prev"/>
		<updated>2022-03-16T12:19:20Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“为了关闭计算机，你需要使用某种电源管理。 要么是&lt;a href=&quot;/index.php?title=APM&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;APM（页面不存在）&quot;&gt;APM&lt;/a&gt;要么是&lt;a href=&quot;/index.php?title=ACPI&quot; title=&quot;ACPI&quot;&gt;ACPI&lt;/a&gt;。  == APM == 这是关闭计算机必须给出的APM命令的基本序列。 有关如何实施这些步骤的详细信息，请参阅 &lt;a href=&quot;/index.php?title=APM&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;APM（页面不存在）&quot;&gt;APM&lt;/a&gt; 文章。  * 执行安装检查。 *检查APM版本是否至少为‘1.1 * 断开任何现有的APM接口。 * 连接实模式接口。 * 告诉APM你的驱动支持1.1版 * 为所有设备启用电源管理。 * 将所有设…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;为了关闭计算机，你需要使用某种电源管理。 要么是[[APM]]要么是[[ACPI]]。&lt;br /&gt;
&lt;br /&gt;
== APM ==&lt;br /&gt;
这是关闭计算机必须给出的APM命令的基本序列。 有关如何实施这些步骤的详细信息，请参阅 [[APM]] 文章。&lt;br /&gt;
&lt;br /&gt;
* 执行安装检查。&lt;br /&gt;
*检查APM版本是否至少为‘1.1&lt;br /&gt;
* 断开任何现有的APM接口。&lt;br /&gt;
* 连接实模式接口。&lt;br /&gt;
* 告诉APM你的驱动支持1.1版&lt;br /&gt;
* 为所有设备启用电源管理。&lt;br /&gt;
* 将所有设备的电源状态设置为“关闭”（03h）。&lt;br /&gt;
&lt;br /&gt;
如果APM版本是1.0(或者APM没有被告知你的代码支持版本1.1，因此出于遗留目的，它将以1.0运行)，则不可能为所有设备设置电源状态 (也许有办法可以单独关闭每个设备)&lt;br /&gt;
&lt;br /&gt;
== ACPI ==&lt;br /&gt;
[[Topic:16990|ACPI Shutdown code with good explanation in C]]&lt;br /&gt;
&lt;br /&gt;
以上论坛帖子中的ACPI关闭摘要：&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
从技术上讲，关闭ACPI非常简单，只需&amp;lt;code&amp;gt;outw(PM1a_CNT, SLP_TYPa | SLP_EN );&amp;lt;/code&amp;gt;，然后计算机就关机了。 问题在于这些值的收集，特别是因为 &amp;lt;code&amp;gt;SLP_TYPa&amp;lt;/code&amp;gt; 是在 &amp;lt;code&amp;gt;\_S5&amp;lt;/code&amp;gt; 对象中，该对象在 &amp;lt;code&amp;gt;DSDT&amp;lt;/code&amp;gt; 中，因此AML被进行了编码。 &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''警告：'''上述代码不应在生产中使用。 作者跳过了很多事情，比如调用_PTS方法。 需要一个真正的AML解释器，例如ACPICA。&lt;br /&gt;
&lt;br /&gt;
在许多硬件上，需要调用_PTS，不调用它将导致关机失败，或导致硬件在某个半关机阶段冻结。 这种现象大多发生在笔记本电脑上，但也会发生在台式机上。&lt;br /&gt;
&lt;br /&gt;
== 模拟器专用方法 ==&lt;br /&gt;
&lt;br /&gt;
在某些情况下（例如测试），你可能需要断电方法，但不需要它在真正的硬件上工作。&lt;br /&gt;
&lt;br /&gt;
在Bochs和更早版本的QEMU(低于2.0)中，你可以执行以下操作：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
outw(0xB004, 0x2000);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在较新版本的QEMU中，你可以使用:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
outw(0x604, 0x2000);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在Virtualbox中，你可以通过以下方式关闭：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
outw(0x4004, 0x3400);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==另见==&lt;br /&gt;
&lt;br /&gt;
=== 文章 ===&lt;br /&gt;
* [[Reboot]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Power management]]&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>