ACPI

Overview of ACPI technology.

To develop for ACPI, you need these headers:

For the programming guide, see ACPI.

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

Functions

Title Description
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

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.
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).
BBRT_TABLE Defines a Boot Background Resource Table.
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.
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 the ACPI Platform Communication Channel (PCC) HW-reduced Type 1 subspace.
PCC_REDUCED_2_SUBSPACE Contains information about the 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.
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.
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.