ACPI 命名空间层次结构必须从处理器的系统总线(“_SB”开始)准确地为平台的硬件拓扑建模。 通常,连接到总线或控制器的设备在命名空间中显示为该总线或控制器设备的子级。
以下规则特别适用于基于 SoC 的平台:
内存映射的功能块(包括处理器)直接显示在_SB节点下。
外围设备连接至某种组合的简单外围总线(SPB)控制器和/或 GPIO 控制器时,将其连接描述为连接资源。 有关详细信息,请参阅“常规用途 I/O”和“简单外围总线”(SPB)。
以这种方式连接的外围设备可能直接出现在_SB节点下,或者在父SPB或GPIO控制器下。 后者是优先选择,如果可能,因为它在命名空间本身中直接显示设备关系,而不是需要解码资源来发现关系。
通过支持硬件枚举(例如 SDIO 和 USB)的标准总线连接的任何功能块或外围设备根本不需要在命名空间中显示。
但是,在某些情况下,必须在命名空间中的父控制器下包含此类设备。 例如,这是嵌入式 USB HSIC 或 SDIO 设备所必需的,其中平台特定的(非标准)控制(例如电源开关、GPIO 或 SPB 连接等)与设备相关联,作为系统设计的一部分。 在这种情况下,标准父总线驱动程序会枚举设备,但 Windows ACPI 驱动程序(Acpi.sys)作为筛选器加载到设备堆栈中,以根据需要代表总线驱动程序调用非标准控件的控制方法。
任何“私有”总线或设备(例如,I2S),如果是专门用于某一功能驱动程序(例如音频驱动程序),则根本不需要在命名空间中出现。 但是,在这种情况下,设备使用的任何系统资源都必须显示在命名空间中函数设备的资源列表中。 有关详细信息,请参阅设备管理命名空间对象主题中的“设备配置对象”部分。
ACPI 定义许多标准命名空间对象和方法,但实现者可以根据需要定义新对象。 ACPI 定义的对象和方法用于常见的操作系统功能,例如:
平台说明 例如,设备标识和系统资源分配。
通用设备控制 例如,配置资源和控制电源资源。
特定于类的功能控件 例如,变暗显示或报告电池状态。