Control Method Input Buffer Structures

The ACPI driver supports the IOCTL_ACPI_EVAL_METHOD request. A driver for a device can use this request to evaluate a control method that is an immediate child object in the ACPI namespace of the device to which the request is sent. The IOCTL_ACPI_EVAL_METHOD request supports the following input structures:

Input structure Description
ACPI_EVAL_INPUT_BUFFER Supplies the signature of the buffer and the name of a control method that does not take an input argument.
ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER Supplies the signature of the structure, the name of a control method, and a single input argument value of type ULONG.
ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING Supplies the signature of the structure, the name of a control method, and an input argument that is a NULL-terminated ASCII string.
ACPI_EVAL_INPUT_BUFFER_COMPLEX Supplies the signature of the structure, the name of a control method, and an input array of ACPI_METHOD_ARGUMENT structures. The array can contain a maximum number of seven such structures. An ACPI_METHOD_ARGUMENT structure can contain a ULONG integer, an ASCII string, an ACPI package description, or an array of custom data.

Windows also supports the IOCTL_ACPI_EVAL_METHOD_EX request. A driver for a device can use this request to evaluate a control method that is a descendant child object in the ACPI namespace of the device to which the request is sent. The IOCTL_ACPI_EVAL_METHOD_EX request supports the following input structures:

Input structure Description
ACPI_EVAL_INPUT_BUFFER_EX supplies the signature of the structure and the path and name of a control method that does not take an input argument.
ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX supplies the signature of the structure and the path and name of a control method that takes a single integer of type ULONG64 as an input argument.
ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX supplies the signature of the structure and the path and name of a control method that takes a single NULL-terminated ASCII string as an input argument.
ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX supplies the signature of the structure and the path and name of a control method that takes an array of ACPI_METHOD_ARGUMENT structures as input. The array can contain a maximum number of seven such structures. An ACPI_METHOD_ARGUMENT structure can contain a ULONG integer, an ASCII string, an ACPI package description, or an array of custom data.

To obtain the path and name of child objects in the ACPI namespace of a device, a driver for a device can use an IOCTL_ACPI_ENUM_CHILDREN request, as described in Enumerating Child Devices and Control Methods.