ACPI_OP_REGION_HANDLER类型的例程由 ACPI 设备函数驱动程序提供,以便 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 驱动程序调用作区域处理程序时,它指定 地址 和 大小 的值,以确保访问位于 ACPI 设备的 ACPI BIOS 中定义的作区域中。 ACPI 设备函数驱动程序必须确保它分配的作区域内存缓冲区至少与 ACPI 设备定义的作区域一样大(以字节为单位)。
有关作区域处理程序的详细信息,请参阅 支持作区域。
ACPI_OP_REGION_HANDLER类型的例程在调用方 IRQL 上运行。
有关作区域约束的详细信息,请参阅 高级配置和电源接口(ACPI)规范。
要求
| 要求 | 价值 |
|---|---|
| 目标平台 | 桌面 |
| 标头 | oprghdlr.h (包括 Oprghdlr.h) |