ACPI(Advanced Configuration and Power Interface)是一種用於配置和管理現代電腦硬體的標準。它提供了一種統一的機制來描述系統的硬體資源,並允許作業系統與這些資源進行交互。
在記憶體 E000 中搜尋 “RSD PTR ” (Notice that this signature must contain a trailing blank character.)
#include <stdint.h> typedef struct __RSDP_SIGNATURE { uint8_t signature[4]; uint8_t checksum; uint8_t oem_id[6]; uint8_t reserved[2]; uint32_t length; uint64_t rsdp_address; } __RSDP_SIGNATURE; __RSDP_SIGNATURE* find_rsdp() { __RSDP_SIGNATURE* rsdp = (__RSDP_SIGNATURE*)0x000E0000; while (rsdp->signature[0] != 'R' || rsdp->signature[1] != 'S' || rsdp->signature[2] != 'D' || rsdp->signature[3] != 'P') { rsdp++; if (rsdp > (__RSDP_SIGNATURE*)0x000FFFFF) { return nullptr; } } if (rsdp->checksum != 0) { return nullptr; } return rsdp; }
RSDT(Root System Description Table)和 XSDT(Extended System Description Table) RSDT 和 XSDT 的工作方式非常相似。操作系統會首先找到 RSDP(Root System Description Pointer), 這是一個指向 RSDT 或 XSDT 的指標。然後,操作系統會使用 RSDT 或 XSDT 來查找其他 ACPI 資料表,這些資料表描述了系統的硬體資源。
Windows 操作系統使用 ACPI 來配置和管理系統的硬體資源。它使用 ACPI 資料表來獲取有關系統硬體的資訊,例如 CPU、記憶體、儲存、匯流排和設備。Windows 還使用 ACPI 來控制系統的電源管理功能,例如睡眠和休眠。
以下是 Windows 操作系統如何使用 ACPI 的一些詳細資訊:
ACPI 對 Windows 操作系統至關重要。它允許 Windows 配置和管理系統的硬體資源,並提供電源管理和設備管理功能。
以下是一些有關 Windows 操作系統如何使用 ACPI 的附加細節:
XSDT(Extended System Description Table)是在 ACPI 3.0 規格中引入的。它是一種 64 位資料表,用於儲存指向其他 ACPI 資料表的指標。在 ACPI 3.0 之前,使用 RSDT(Root System Description Table)來儲存這些指標。RSDT 是一種 32 位資料表,因此它只能儲存有限數量的 ACPI 資料表指標。
XSDT 的引入允許在 ACPI 系統中使用更多 ACPI 資料表。這對於現代電腦系統來說很重要,因為它們通常包含比舊電腦系統更多更複雜的硬體。
以下是 ACPI 規格中引入 XSDT 的一些詳細資訊:
ACPI 3.0 規格於 2009 年 3 月 31 日發佈。 XSDT 在 ACPI 3.0 規格的第 4.1.3 節中定義。 RSDT 在 ACPI 3.0 規格的第 4.1.2 節中定義。 以下是一些使用 XSDT 的 ACPI 系統的示例:
Windows 8 及更高版本 Linux 3.10 及更高版本 macOS X 10.8 及更高版本