ACPI

Overview of ACPI technology.

To develop for ACPI, you need these headers:

For the programming guide, see ACPI.

IOCTLs

 
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

 
ACPI_PLD_EDGE

Describes joint edge bits 10:12,24:26.
ACPI_PLD_HORIZONTAL_POSITION

Describes horizontal position bits 72:73.
ACPI_PLD_JOINT_TYPE

Describes joint type bits 6:9.
ACPI_PLD_ORIENTATION

Describes orientation bit 78.
ACPI_PLD_PANEL

Describes panel surface bits 67:69.
ACPI_PLD_ROTATION

Describes rotation bits 115:118.
ACPI_PLD_SHAPE

Describes shape bits 74:77.
ACPI_PLD_VERTICAL_POSITION

Describes vertical position bits 70:71.
HSP_PROTOCOL_ID

This topic describes the HSP_PROTOCOL_ID enumeration.
IVRS_BLOCK_TYPE

Enumerates the I/O Virtualization Reporting Structure (IVRS) block types.
IVRS_TABLE_TYPE

Enumerates the I/O Virtualization Hardware Definition (IVHD) entry types.
NFIT_STRUCTURE_TYPE

Describes NVDIMM Firmware Interface Table (NFIT) structure types.
SRAT_ENTRY_TYPE

This topic describes the SRAT_ENTRY_TYPE enumeration.

Functions

 
ACPI_OP_REGION_CALLBACK

Describes the ACPI_OP_REGION_CALLBACK callback function.
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.
HMAT_ENTRY_LENGTH

The HMAT_ENTRY_LENGTH macro returns the size of the type in the HMAT_ENTRY structure.
PROC_TOPOLOGY_NODE_CACHE_TYPE_DATA

Defines the processor topology node cache type data macro.
PROC_TOPOLOGY_NODE_CACHE_TYPE_INSTRUCTION

Defines the processor topology node cache type instruction macro.
PROC_TOPOLOGY_NODE_CACHE_TYPE_UNIFIED

Defines the processor topology node cache type unified macro.
RegisterOpRegionHandler

The RegisterOpRegionHandler routine registers an operation region handler with the ACPI driver.

Structures

 
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.
ACPI_PDTT

Defines the ACPI Processor Debug Trigger Table (PDTT) structure.
ACPI_PLD_CONTAINER_BUFFER

Defines the ACPI Physical Location Descriptor (PLD) container buffer structure.
ACPI_PLD_INTERFACE_CLASS_BUFFER

Describes the ACPI PLD interface class descriptor buffer, revision 1 (Microsoft custom PLD buffer extension, 128-bits).
ACPI_PLD_INTERFACE_INSTANCE_ANSI_BUFFER

Describes the ACPI PLD interface instance ANSI descriptor buffers, revision 1 (Microsoft custom PLD buffer extension, 128-bits).
ACPI_PLD_INTERFACE_INSTANCE_GUID_BUFFER

Describes the ACPI PLD interface instance GUID descriptor buffer, revision 1 (Microsoft custom PLD buffer extension, 128-bits).
ACPI_PLD_INTERFACE_INSTANCE_UNICODE_BUFFER

Describes the ACPI PLD interface instance Unicode descriptor buffer, revision 1 (Microsoft custom PLD buffer extension, 128-bits).
ACPI_PLD_JOINT_BUFFER

Describes the ACPI PLD joint descriptor buffer, revision 1 (Microsoft custom PLD buffer extension, 128-bits).
ACPI_PLD_SPATIAL_BUFFER

Describes the ACPI PLD spatial descriptor buffer, revision 1 (Microsoft custom PLD buffer extension, 128-bits).
ASPT_ENTRY

This topic describes the ASPT_ENTRY union used by the AMD Secure Processor Table (ASPT).
ASPT_ENTRY_ACPI_MAILBOX_REGISTERS

This topic describes the ASPT_ENTRY_ACPI_MAILBOX_REGISTERS structure used by the AMD Secure Processor Table (ASPT).
ASPT_ENTRY_ASP_GLOBAL_REGISTERS

This topic describes the ASPT_ENTRY_ASP_GLOBAL_REGISTERS structure used by the AMD Secure Processor Table (ASPT).
ASPT_ENTRY_HEADER

This topic describes the ASPT_ENTRY_HEADER structure used by the AMD Secure Processor Table (ASPT).
ASPT_ENTRY_SEV_MAILBOX_REGISTERS

This topic describes the ASPT_ENTRY_SEV_MAILBOX_REGISTERS structure used by the AMD Secure Processor Table (ASPT).
ASPT_TABLE

This topic describes the ASPT_TABLE structure used by the AMD Secure Processor Table (ASPT).
BBRT_TABLE

Defines a Boot Background Resource Table.
ECDT

This topic describes the ECDT structure.
GIC_ITS

This topic describes the GIC_ITS structure.
HMAT_ENTRY

The HMAT_ENTRY structure contains the Heterogeneous Memory Attribute Table (HMAT) information for the table.
HMAT_TABLE

Defines the _HMAT_TABLE structure.
IVHD_ACPI_DEVICE_ENTRY

Defines the I/O Virtualization Hardware Definition (IVHD) ACPI device entry structure.
IVRS_IVINFO

Defines the I/O Virtualization Reporting Structure (IVRS) I/O virtualization 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.
MHSP_CHANNEL

This topic describes the MHSP_CHANNEL structure used by the Microsoft HSP ACPI table.
MHSP_TABLE

Describes the MHSP_TABLE structure.
NFIT_PLATFORM_CAPABILITIES

Describes the NVDIMM Firmware Interface Table (NFIT) platform capabilities structure. Originally defined in ACPI 6.2 Errata A.
PCC_REDUCED_1_SUBSPACE

Contains information about the ACPI Platform Communication Channel (PCC) HW-reduced Type 1 subspace.
PCC_REDUCED_2_SUBSPACE

Contains information about the ACPI Platform Communication Channel (PCC) HW-reduced Type 2 subspace.
PDTT_PCC_SUBCHANNEL_INDENTIFIER

Defines the Processor Properties Topology Table (PPTT) Platform Communication Channel (PCC) subchannel identifier structure.
PPTT

Defines the Processor Properties Topology Table (PPTT) structure.
PRM_HANDLER_INFORMATION

Defines the PRM_HANDLER_INFORMATION structure.
PRM_MODULE_INFORMATION

Defines the PRM_MODULE_INFORMATION structure.
PRMT_TABLE

Defines the PRMT_TABLE structure.
PROC_TOPOLOGY_CACHE_ATTRIBUTES

Defines the processor topology cache attributes structure.
PROC_TOPOLOGY_CACHE_FLAGS

Defines the processor topology cache flags structure.
PROC_TOPOLOGY_NODE

Defines the processor topology node structure.
PROC_TOPOLOGY_NODE_FLAGS

Defines the processor topology node flags structure.
SATC

This topic describes the SATC structure.
SDEV_SECURE_ACPI_INFO_ENTRY

Defines an information entry for a secure ACPI device for use in a secure device table.
SDEV_SECURE_RESOURCE_ID_ENTRY

Defines a resource ID entry for a secure ACPI device for use in a secure device table.
SDEV_SECURE_RESOURCE_MEMORY_ENTRY

Defines a resource memory entry for a secure ACPI device for use in a secure device table.
SPMI_DESCRIPTION_TABLE

Defines the SPMI_DESCRIPTION_TABLE structure.