控制方法输入缓冲区结构

ACPI 驱动程序支持 IOCTL_ACPI_EVAL_METHOD 请求。 设备的驱动程序可以使用此请求来评估一个控制方法,该方法是向其发送请求的设备 ACPI 命名空间中的直接子对象。 IOCTL_ACPI_EVAL_METHOD 请求支持以下输入结构:

输入结构 说明
ACPI_EVAL_INPUT_BUFFER 提供缓冲区的签名以及不采用输入参数的控制方法的名称。
ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER 提供结构的签名、控制方法的名称以及 ULONG 类型的单个输入参数值。
ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING 提供结构的签名、控制方法的名称以及作为以 NULL 结尾的 ASCII 字符串的输入参数。
ACPI_EVAL_INPUT_BUFFER_COMPLEX 提供结构的签名、控制方法的名称以及 ACPI_METHOD_ARGUMENT 结构的输入数组。 该数组最多可以包含七个此类结构。 ACPI_METHOD_ARGUMENT 结构可以包含 ULONG 整数、ASCII 字符串、ACPI 包描述或自定义数据数组。

Windows 还支持 IOCTL_ACPI_EVAL_METHOD_EX 请求。 设备的驱动程序可以使用此请求来评估一个控制方法,该方法是向其发送请求的设备 ACPI 命名空间中的后代子对象。 IOCTL_ACPI_EVAL_METHOD_EX 请求支持以下输入结构:

输入结构 说明
ACPI_EVAL_INPUT_BUFFER_EX 提供结构签名以及不采用输入参数的控制方法的路径和名称。
ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX 提供结构的签名以及控制方法的路径和名称,该方法采用单个类型整数 ULONG64 作为输入参数。
ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX 提供结构的签名以及控制方法的路径和名称,该方法采用单个以 NULL 结尾的 ASCII 字符串作为输入参数。
ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX 提供结构的签名,以及采用 ACPI_METHOD_ARGUMENT 结构数组作为输入的控制方法的路径和名称。 该数组最多可以包含七个此类结构。 ACPI_METHOD_ARGUMENT 结构可以包含 ULONG 整数、ASCII 字符串、ACPI 包描述或自定义数据数组。

若要获取设备 ACPI 命名空间中子对象的路径和名称,设备的驱动程序可以使用 IOCTL_ACPI_ENUM_CHILDREN 请求,如枚举子设备和控制方法中所述。