实现操作区域处理程序
驱动程序必须提供操作区域处理程序,这是 PACPI_OP_REGION_HANDLER 类型的回调。 ACPI 驱动程序会调用操作处理程序来访问驱动程序操作区域中的数据字段。 函数驱动程序和 ACPI BIOS 的组合操作由供应商定义,并且特定于设备。 通常,函数驱动程序和 ACPI BIOS 会访问操作区域中的索引,从而导致设备特定的操作并返回任何适当的信息。
操作区域处理程序通常使用 ACPI 驱动程序传递给处理程序的以下参数:
AccessType 指定是读取还是写入访问权限。
如果是读取访问权限,则会将数据从操作区域内存缓冲区传输到数据缓冲区。 如果是写入访问权限,则会将数据从数据缓冲区传输到操作区域内存缓冲区。 请参阅访问操作区域。
Address 指定操作区域内存缓冲区中的字节偏移量。
Size 指定要传输的字节数。
Data 指定 ACPI 驱动程序为数据传输提供的缓冲区。
Context 指定驱动程序为操作区域处理程序注册的操作区域上下文。
操作区域上下文仅由函数驱动程序使用,并且特定于设备。
除了上述参数,ACPI 驱动程序还向操作区域处理程序传递指向以下内容的指针:操作区域对象、完成处理程序和完成上下文。 但是,函数驱动程序不使用处理程序中的操作区域对象,并且保留完成处理程序和上下文供内部使用。