5.5.2.3. 局部变量和本地创建的数据对象
控制方法最多可以访问八个本地数据对象。对本地数据对象的访问具有简写编码。在初始控制方法执行时,本地数据对象为NULL。通过ASLLocalTerm 语言元素访问本地对象。
控制方法执行完成后,可以返回一个对象,该对象可以用作方法执行的结果。如果“调用者”想要保留结果,则必须使用结果或将其保存到不同的对象。有关其他详细信息,请参阅 Return ASL 运算符的说明
在方法范围内创建的命名空间对象是动态的。它们仅在方法执行期间存在。它们在代码指定时创建,并在退出时销毁。方法可以使用范围运算符或使用完整路径名在名称空间中的当前范围之外创建动态对象。这些对象仍将在方法退出时被销毁。在加载时在方法范围之外创建的对象是静态的。例如:
Scope (\XYZ)
{
Name (BAR, 5) // Creates \\XYZ.BAR
Method (FOO, 1)
{
CREG = BAR // same effect as CREG = \XYZ.BAR
Name (BAR, 7) // Creates \\XYZ.FOO.BAR
DREG = BAR // same effect as DREG = \XYZ.FOO.BAR
Name (\XYZ.FOOB, 3) // Creates \\XYZ.FOOB
} // end method
} // end scope
对象\XYZ.BAR 是加载包含上述ASL 的表时创建的静态对象。对象 \XYZ.FOO.BAR 是在执行 FOO 方法中的 Name (BAR, 7) 语句时创建的动态对象。对象 \XYZ.FOOB 是执行 Name (XYZ.FOOB, 3) 语句时由 \XYZ.FOO 方法创建的动态对象。请注意,\XYZ.FOOB 对象在 \XYZ.FOO 方法退出后被销毁。