ACPI_OP_REGION_HANDLER回调函数 (oprghdlr.h)

ACPI 设备功能驱动程序提供ACPI_OP_REGION_HANDLER类型的例程,以便 ACPI 驱动程序 能够访问设备的操作区域。

语法

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
)
{...}

参数

AccessType

指定以下访问类型之一:

访问类型 说明
ACPI_OPREGION_WRITE 写入操作区域内存缓冲区。
ACPI_OPREGION_READ 从操作区域内存缓冲区读取。

OperationRegionObject

指定 RegisterOpRegionHandler 为操作区域处理程序返回的操作区域对象。

Address

指定操作区域内存缓冲区中的字节偏移量。 根据访问类型,数据将传输到此内存位置或从此内存位置传输。

Size

指定要访问的字节数。

Data

指向与访问关联的 ACPI 驱动程序提供的数据缓冲区的指针。 对于读取访问,字节从操作区域内存缓冲区传输到数据缓冲区。 对于写入访问,字节从数据缓冲区传输到操作区域内存缓冲区。

Context

指向函数驱动程序在注册操作区域处理程序时指定的相同操作区域上下文的指针。

CompletionHandler

保留以供内部使用。

CompletionContext

保留以供内部使用。

返回值

返回以下状态值之一:

返回代码 说明
STATUS_SUCCESS 访问成功。
STATUS_INVALID_DEVICE_REQUEST 访问类型无效。
STATUS_Xxx 发生内部错误。

注解

当 ACPI 驱动程序调用操作区域处理程序时,它会指定 AddressSize 的值,以确保访问位于 ACPI 设备的 ACPI BIOS 中定义的操作区域内。 ACPI 设备函数驱动程序必须确保它分配的操作区域内存缓冲区至少与为 ACPI 设备定义的操作区域一样大(以字节为单位)。

有关操作区域处理程序的详细信息,请参阅 支持操作区域

ACPI_OP_REGION_HANDLER类型的例程在调用方 IRQL 上运行。

有关操作区域约束的详细信息,请参阅 高级配置和电源接口 (ACPI) 规范

要求

要求
目标平台 桌面
标头 oprghdlr.h (包括 Oprghdlr.h)

另请参阅

DeRegisterOpRegionHandler