ACPI

Overview of the ACPI technology.

To develop ACPI, you need these headers:

For the programming guide, see ACPI.

Functions

Title Description
DeRegisterOpRegionHandler function The DeRegisterOpRegionHandler routine deregisters an operation region handler with the ACPI driver.
RegisterOpRegionHandler function The RegisterOpRegionHandler routine registers an operation region handler with the ACPI driver.

Callback functions

Title Description
ACPI_OP_REGION_HANDLER callback function An ACPI_OP_REGION_HANDLER-typed routine is supplied by an ACPI device function driver to provide access by the ACPI driver to the device's operation region.

Structures

Title Description
_ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER structure The ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER structure contains output arguments from the IOCTL_ACPI_GET_DEVICE_INFORMATION control method.
_ACPI_ENUM_CHILD structure The ACPI_ENUM_CHILD structure is a member of the ACPI_ENUM_CHILDREN_OUTPUT_BUFFER structure and contains the full path and name of an object in an ACPI namespace.
_ACPI_ENUM_CHILDREN_INPUT_BUFFER structure The ACPI_ENUM_CHILDREN_INPUT_BUFFER structure is used as input to an IOCTL_ACPI_ENUM_CHILDREN request. The structure specifies which child objects to enumerate in the namespace of the device to which the request is sent.
_ACPI_ENUM_CHILDREN_OUTPUT_BUFFER structure The ACPI_ENUM_CHILDREN_OUTPUT_BUFFER structure contains an array of object names in an ACPI namespace.
_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V1 structure 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.
_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V1_EX structure The ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX structure is used as input to an IOCTL_ACPI_EVAL_METHOD_EX request and to an IOCTL_ACPI_ASYNC_EVAL_METHOD_EX request.
_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V2 structure This topic describes the ACPI_EVAL_INPUT_BUFFER_COMPLEX_V2 structure.
_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V2_EX structure This topic describes the ACPI_EVAL_INPUT_BUFFER_COMPLEX_V2_EX structure.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V1 structure The ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER 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 argument of type ULONG.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V1_EX structure The ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX structure is used as input to an IOCTL_ACPI_EVAL_METHOD_EX request and to an IOCTL_ACPI_ASYNC_EVAL_METHOD_EX request.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V2 structure This topic describes the ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V2 structure.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V2_EX structure This topic describes the ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V2_EX structure.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V1 structure The ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING 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 argument that is an ASCII string.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V1_EX structure The ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX structure is used as input to an IOCTL_ACPI_EVAL_METHOD_EX request and to an IOCTL_ACPI_ASYNC_EVAL_METHOD_EX request.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V2 structure This topic describes the ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V2 structure.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V2_EX structure This topic describes the ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V2_EX structure.
_ACPI_EVAL_INPUT_BUFFER_V1 structure The ACPI_EVAL_INPUT_BUFFER 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 that does not take an input argument.
_ACPI_EVAL_INPUT_BUFFER_V1_EX structure The ACPI_EVAL_INPUT_BUFFER_EX structure is used as input to an IOCTL_ACPI_EVAL_METHOD_EX request and to an IOCTL_ACPI_ASYNC_EVAL_METHOD_EX request.
_ACPI_EVAL_INPUT_BUFFER_V2 structure This topic describes the ACPI_EVAL_INPUT_BUFFER_V2 structure.
_ACPI_EVAL_INPUT_BUFFER_V2_EX structure This topic describes the ACPI_EVAL_INPUT_BUFFER_V2_EX structure.
_ACPI_EVAL_OUTPUT_BUFFER_V1 structure The ACPI_EVAL_OUTPUT_BUFFER structure contains output arguments from an ACPI control method.
_ACPI_EVAL_OUTPUT_BUFFER_V2 structure This topic describes the ACPI_EVAL_OUTPUT_BUFFER_V2 structure.
_ACPI_GET_DEVICE_SPECIFIC_DATA structure The ACPI_GET_DEVICE_SPECIFIC_DATA structure contains input arguments for the IOCTL_ACPI_GET_DEVICE_SPECIFIC_DATA control method.
_ACPI_MANIPULATE_GLOBAL_LOCK_BUFFER structure This topic describes the ACPI_MANIPULATE_GLOBAL_LOCK_BUFFER structure.
_ACPI_METHOD_ARGUMENT_V1 structure The ACPI_METHOD_ARGUMENT structure contains the value of an input or output argument of an ACPI control method.
_ACPI_METHOD_ARGUMENT_V2 structure This topic describes the ACPI_METHOD_ARGUMENT_V2 structure.
_BBRT_TABLE structure Defines a Boot Background Resource Table.
_GIC_ITS structure This topic describes the GIC_ITS structure.
_LPIT structure Defines an LPI ACPI table.
_LPI_STATE_DESCRIPTOR structure Defines an LPI state descriptor.
_LPI_STATE_FLAGS structure Defines LPI state flags, either as a structure or as an integer.
_SDEV_SECURE_ACPI_INFO_ENTRY structure Defines an information entry for a secure ACPI device for use in a secure device table.

I/O control codes

Title Description
IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK IOCTL The IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK device control request is reserved for internal use only.
IOCTL_ACPI_ASYNC_EVAL_METHOD IOCTL A driver for a device can use the IOCTL_ACPI_ASYNC_EVAL_METHOD device control request to asynchronously evaluate an ACPI control method that is supported by the device.
IOCTL_ACPI_ASYNC_EVAL_METHOD_EX IOCTL A driver for a device can use the IOCTL_ACPI_ASYNC_EVAL_METHOD_EX device control request to asynchronously evaluate an ACPI control method that is supported by a child device of the device.
IOCTL_ACPI_ASYNC_EVAL_METHOD_V1 IOCTL The IOCTL_ACPI_ASYNC_EVAL_METHOD_V1 control code asynchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_ASYNC_EVAL_METHOD_V1_EX IOCTL The IOCTL_ACPI_ASYNC_EVAL_METHOD_V1_EX control code asynchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_ASYNC_EVAL_METHOD_V2 IOCTL The IOCTL_ACPI_ASYNC_EVAL_METHOD_V2 control code asynchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_ASYNC_EVAL_METHOD_V2_EX IOCTL The IOCTL_ACPI_ASYNC_EVAL_METHOD_V2_EX control code asynchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_ENUM_CHILDREN IOCTL The IOCTL_ACPI_ENUM_CHILDREN device control request can be used to enumerate the path and name of devices or named child objects in the ACPI namespace of the device to which this request is sent.
IOCTL_ACPI_EVAL_METHOD IOCTL A driver for a device can use the IOCTL_ACPI_EVAL_METHOD device control request to synchronously evaluate an ACPI control method that is supported by the device.
IOCTL_ACPI_EVAL_METHOD_EX IOCTL A driver for a device can use the IOCTL_ACPI_EVAL_METHOD_EX device control request to synchronously evaluate an ACPI control method that is supported by a child device in the namespace of the device.
IOCTL_ACPI_EVAL_METHOD_V1 IOCTL The IOCTL_ACPI_EVAL_METHOD_V1 control code synchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_EVAL_METHOD_V1_EX IOCTL The IOCTL_ACPI_EVAL_METHOD_V1_EX control code synchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_EVAL_METHOD_V2 IOCTL The IOCTL_ACPI_EVAL_METHOD_V2 control code synchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_EVAL_METHOD_V2_EX IOCTL The IOCTL_ACPI_EVAL_METHOD_V2_EX control code synchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_GET_DEVICE_INFORMATION IOCTL A driver for a device can use the IOCTL_ACPI_GET_DEVICE_INFORMATION device control request to obtain fine-grained identification information about its device.
IOCTL_ACPI_GET_DEVICE_SPECIFIC_DATA IOCTL The IOCTL_ACPI_GET_DEVICE_SPECIFIC_DATA control code is used to get device specific data.
IOCTL_ACPI_RELEASE_GLOBAL_LOCK IOCTL The IOCTL_ACPI_RELEASE_GLOBAL_LOCK device control request is reserved for internal use only.

IOCTLs

Title Description
IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK The IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK device control request is reserved for internal use only.
IOCTL_ACPI_ASYNC_EVAL_METHOD A driver for a device can use the IOCTL_ACPI_ASYNC_EVAL_METHOD device control request to asynchronously evaluate an ACPI control method that is supported by the device.
IOCTL_ACPI_ASYNC_EVAL_METHOD_EX A driver for a device can use the IOCTL_ACPI_ASYNC_EVAL_METHOD_EX device control request to asynchronously evaluate an ACPI control method that is supported by a child device of the device.
IOCTL_ACPI_ASYNC_EVAL_METHOD_V1 The IOCTL_ACPI_ASYNC_EVAL_METHOD_V1 control code asynchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_ASYNC_EVAL_METHOD_V1_EX The IOCTL_ACPI_ASYNC_EVAL_METHOD_V1_EX control code asynchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_ASYNC_EVAL_METHOD_V2 The IOCTL_ACPI_ASYNC_EVAL_METHOD_V2 control code asynchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_ASYNC_EVAL_METHOD_V2_EX The IOCTL_ACPI_ASYNC_EVAL_METHOD_V2_EX control code asynchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_ENUM_CHILDREN The IOCTL_ACPI_ENUM_CHILDREN device control request can be used to enumerate the path and name of devices or named child objects in the ACPI namespace of the device to which this request is sent.
IOCTL_ACPI_EVAL_METHOD A driver for a device can use the IOCTL_ACPI_EVAL_METHOD device control request to synchronously evaluate an ACPI control method that is supported by the device.
IOCTL_ACPI_EVAL_METHOD_EX A driver for a device can use the IOCTL_ACPI_EVAL_METHOD_EX device control request to synchronously evaluate an ACPI control method that is supported by a child device in the namespace of the device.
IOCTL_ACPI_EVAL_METHOD_V1 The IOCTL_ACPI_EVAL_METHOD_V1 control code synchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_EVAL_METHOD_V1_EX The IOCTL_ACPI_EVAL_METHOD_V1_EX control code synchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_EVAL_METHOD_V2 The IOCTL_ACPI_EVAL_METHOD_V2 control code synchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_EVAL_METHOD_V2_EX The IOCTL_ACPI_EVAL_METHOD_V2_EX control code synchronously evaluates an ACPI control method that is supported by the device.
IOCTL_ACPI_GET_DEVICE_INFORMATION A driver for a device can use the IOCTL_ACPI_GET_DEVICE_INFORMATION device control request to obtain fine-grained identification information about its device.
IOCTL_ACPI_GET_DEVICE_SPECIFIC_DATA The IOCTL_ACPI_GET_DEVICE_SPECIFIC_DATA control code is used to get device specific data.
IOCTL_ACPI_RELEASE_GLOBAL_LOCK The IOCTL_ACPI_RELEASE_GLOBAL_LOCK device control request is reserved for internal use only.

Enumerations

Title Description

Functions

Title Description
ACPI_OP_REGION_HANDLER An ACPI_OP_REGION_HANDLER-typed routine is supplied by an ACPI device function driver to provide access by the ACPI driver to the device's operation region.
DeRegisterOpRegionHandler The DeRegisterOpRegionHandler routine deregisters an operation region handler with the ACPI driver.
RegisterOpRegionHandler The RegisterOpRegionHandler routine registers an operation region handler with the ACPI driver.

Structures

Title Description
_ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER The ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER structure contains output arguments from the IOCTL_ACPI_GET_DEVICE_INFORMATION control method.
_ACPI_ENUM_CHILD The ACPI_ENUM_CHILD structure is a member of the ACPI_ENUM_CHILDREN_OUTPUT_BUFFER structure and contains the full path and name of an object in an ACPI namespace.
_ACPI_ENUM_CHILDREN_INPUT_BUFFER The ACPI_ENUM_CHILDREN_INPUT_BUFFER structure is used as input to an IOCTL_ACPI_ENUM_CHILDREN request. The structure specifies which child objects to enumerate in the namespace of the device to which the request is sent.
_ACPI_ENUM_CHILDREN_OUTPUT_BUFFER The ACPI_ENUM_CHILDREN_OUTPUT_BUFFER structure contains an array of object names in an ACPI namespace.
_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V1 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.
_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V1_EX The ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX structure is used as input to an IOCTL_ACPI_EVAL_METHOD_EX request and to an IOCTL_ACPI_ASYNC_EVAL_METHOD_EX request.
_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V2 This topic describes the ACPI_EVAL_INPUT_BUFFER_COMPLEX_V2 structure.
_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V2_EX This topic describes the ACPI_EVAL_INPUT_BUFFER_COMPLEX_V2_EX structure.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V1 The ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER 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 argument of type ULONG.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V1_EX The ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX structure is used as input to an IOCTL_ACPI_EVAL_METHOD_EX request and to an IOCTL_ACPI_ASYNC_EVAL_METHOD_EX request.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V2 This topic describes the ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V2 structure.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V2_EX This topic describes the ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V2_EX structure.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V1 The ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING 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 argument that is an ASCII string.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V1_EX The ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX structure is used as input to an IOCTL_ACPI_EVAL_METHOD_EX request and to an IOCTL_ACPI_ASYNC_EVAL_METHOD_EX request.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V2 This topic describes the ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V2 structure.
_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V2_EX This topic describes the ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V2_EX structure.
_ACPI_EVAL_INPUT_BUFFER_V1 The ACPI_EVAL_INPUT_BUFFER 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 that does not take an input argument.
_ACPI_EVAL_INPUT_BUFFER_V1_EX The ACPI_EVAL_INPUT_BUFFER_EX structure is used as input to an IOCTL_ACPI_EVAL_METHOD_EX request and to an IOCTL_ACPI_ASYNC_EVAL_METHOD_EX request.
_ACPI_EVAL_INPUT_BUFFER_V2 This topic describes the ACPI_EVAL_INPUT_BUFFER_V2 structure.
_ACPI_EVAL_INPUT_BUFFER_V2_EX This topic describes the ACPI_EVAL_INPUT_BUFFER_V2_EX structure.
_ACPI_EVAL_OUTPUT_BUFFER_V1 The ACPI_EVAL_OUTPUT_BUFFER structure contains output arguments from an ACPI control method.
_ACPI_EVAL_OUTPUT_BUFFER_V2 This topic describes the ACPI_EVAL_OUTPUT_BUFFER_V2 structure.
_ACPI_GET_DEVICE_SPECIFIC_DATA The ACPI_GET_DEVICE_SPECIFIC_DATA structure contains input arguments for the IOCTL_ACPI_GET_DEVICE_SPECIFIC_DATA control method.
_ACPI_MANIPULATE_GLOBAL_LOCK_BUFFER This topic describes the ACPI_MANIPULATE_GLOBAL_LOCK_BUFFER structure.
_ACPI_METHOD_ARGUMENT_V1 The ACPI_METHOD_ARGUMENT structure contains the value of an input or output argument of an ACPI control method.
_ACPI_METHOD_ARGUMENT_V2 This topic describes the ACPI_METHOD_ARGUMENT_V2 structure.
_BBRT_TABLE Defines a Boot Background Resource Table.
_GIC_ITS This topic describes the GIC_ITS structure.
_LPI_STATE_DESCRIPTOR Defines an LPI state descriptor.
_LPI_STATE_FLAGS Defines LPI state flags, either as a structure or as an integer.
_LPIT Defines an LPI ACPI table.
_SDEV_SECURE_ACPI_INFO_ENTRY Defines an information entry for a secure ACPI device for use in a secure device table.