// acpiioct.h
typedef struct _ACPI_EVAL_INPUT_BUFFER_COMPLEX_V1 {
ULONG Signature;
union {
UCHAR MethodName[4];
ULONG MethodNameAsUlong;
} DUMMYUNIONNAME;
ULONG Size;
ULONG ArgumentCount;
ACPI_METHOD_ARGUMENT_V1 Argument[ANYSIZE_ARRAY];
} ACPI_EVAL_INPUT_BUFFER_COMPLEX_V1, *PACPI_EVAL_INPUT_BUFFER_COMPLEX_V1, ACPI_EVAL_INPUT_BUFFER_COMPLEX, *PACPI_EVAL_INPUT_BUFFER_COMPLEX;
View the official Windows Driver Kit DDI referenceNo description available.
The ACPI_EVAL_INPUT_BUFFER_COMPLEX structure is used as input to an IOCTL_ACPI_EVAL_METHOD request and to an IOCTL_ACPI_ASYNC_EVAL_METHOD request. The structure supplies the name of a control method and an input array of ACPI_METHOD_ARGUMENT structures.
SignatureThe signature of a complex input buffer, which must be set to ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE.
DUMMYUNIONNAMEDUMMYUNIONNAME.MethodNameA four-element ASCII character array that contains the name of the method. For example, 'ABCD.'
DUMMYUNIONNAME.MethodNameAsUlongA value of type ULONG that contains the name of the method in the format (ULONG) ('DCBA'), where the method name is the four-element ASCII character array 'ABCD.'
SizeThe number of bytes that the Argument array contains.
ArgumentCountThe number of variable-length ACPI_METHOD_ARGUMENT structures that the Argument array contains. The Argument array can hold a maximum of seven argument structures.
ArgumentAn array of ACPI_METHOD_ARGUMENT structures.
If a device supports a control method named 'ABCD' that takes an array of arguments as input, a driver for the device can evaluate the method by sending an IOCTL_ACPI_EVAL_METHOD request or an IOCTL_ACPI_ASYNC_EVAL_METHOD request to the device and setting the members of the input ACPI_EVAL_INPUT_BUFFER_COMPLEX structure as follows:
For more information about how to use this structure, see Evaluating ACPI Control Methods.