ACPI_OP_REGION_HANDLER callback function (oprghdlr.h)

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.

Syntax

ACPI_OP_REGION_HANDLER AcpiOpRegionHandler;

NTSTATUS AcpiOpRegionHandler(
  ULONG AccessType,
  PVOID OperationRegionObject,
  ULONG Address,
  ULONG Size,
  PULONG Data,
  ULONG_PTR Context,
  PACPI_OP_REGION_CALLBACK CompletionHandler,
  PVOID CompletionContext
)
{...}

Parameters

AccessType

Specifies one of the following access types:

Access type Description
ACPI_OPREGION_WRITE Write to the operation region memory buffer.
ACPI_OPREGION_READ Read from the operation region memory buffer.

OperationRegionObject

Specifies the operation region object returned by RegisterOpRegionHandler for the operation region handler.

Address

Specifies a byte offset in the operation region memory buffer. Depending on the access type, data is transferred to or from this memory location.

Size

Specifies the number of bytes to access.

Data

Pointer to the data buffer supplied by the ACPI driver that is associated with the access. For a read access, bytes are transferred from the operation region memory buffer to the data buffer. For a write access, bytes are transferred from the data buffer to the operation region memory buffer.

Context

Pointer to the same operation region context that the function driver specified when it registered the operation region handler.

CompletionHandler

Reserved for internal use.

CompletionContext

Reserved for internal use.

Return value

Returns one of the following status values:

Return code Description
STATUS_SUCCESS The access was successful.
STATUS_INVALID_DEVICE_REQUEST The access type is invalid.
STATUS_Xxx An internal error occurred.

Remarks

When the ACPI driver calls an operation region handler, it specifies values for Address and Size that ensure that the access is within the operation region that is defined in the ACPI BIOS for the ACPI device. The ACPI device function driver must ensure that the operation region memory buffer it allocates is at least as large, in bytes, as the operation region defined for the ACPI device.

For more information about operation region handlers, see Supporting an Operation Region.

An ACPI_OP_REGION_HANDLER-typed routine runs at the caller's IRQL.

For detailed information about constraints on operation regions, see the Advanced Configuration and Power Interface (ACPI) Specification.

Requirements

Requirement Value
Target Platform Desktop
Header oprghdlr.h (include Oprghdlr.h)

See also

DeRegisterOpRegionHandler