RegisterOpRegionHandler 函数 (oprghdlr.h)

RegisterOpRegionHandler 例程向 ACPI 驱动程序注册操作区域处理程序。

语法

NTSTATUS RegisterOpRegionHandler(
  [in]  PDEVICE_OBJECT          DeviceObject,
  [in]  ULONG                   AccessType,
  [in]  ULONG                   RegionSpace,
  [in]  PACPI_OP_REGION_HANDLER Handler,
  [in]  PVOID                   Context,
  [in]  ULONG                   Flags,
  [out] PVOID                   *OperationRegionObject
);

参数

[in] DeviceObject

指向 物理设备对象的指针 (PDO) ,表示定义操作区域的 ACPI 设备。

[in] AccessType

指定ACPI_OPREGION_ACCESS_AS_COOKED。

[in] RegionSpace

指定以下区域空间类型之一。

区域空间标识符 说明
ACPI_OPREGION_REGION_SPACE_MEMORY 系统内存
ACPI_OPREGION_REGION_SPACE_IO I/O 空间
ACPI_OPREGION_REGION_SPACE_PCI_CONFIG PCI 配置
ACPI_OPREGION_REGION_SPACE_EC 嵌入式控制器
ACPI_OPREGION_REGION_SPACE_SMB 系统管理总线
ACPI_OPREGION_REGION_SPACE_CMOS_CONFIG CMOS 配置
ACPI_OPREGION_REGION_SPACE_PCIBARTARGET PCI 基址寄存器
从0x80到0xFF的供应商定义值 供应商定义的设备

[in] Handler

指向 ACPI 设备函数驱动程序) 提供的ACPI_OP_REGION_HANDLER类型操作区域处理程序 (的指针。

[in] Context

指向 ACPI 设备功能驱动程序) 提供的特定于设备的操作区域上下文 (的指针。

[in] Flags

保留以供内部使用。

[out] OperationRegionObject

指向调用方分配的缓冲区的指针,该缓冲区在输出时包含指向 ACPI 驱动程序为操作区域创建的操作区域对象的指针。

返回值

返回以下状态值之一:

返回代码 说明
STATUS_SUCCESS 已成功注册操作区域处理程序。
STATUS_ACPI_INVALID_DATA 指定的信息无效。
STATUS_INSUFFICIENT_RESOURCES 例程无法分配必要的系统资源。
STATUS_Xxx 发生内部错误。

注解

Context 指定的操作区域上下文特定于设备,仅供函数驱动程序使用。 通常,上下文是 功能设备对象的设备扩展, (FDO) 。 ACPI 驱动程序在调用操作区域处理程序时将此上下文传递回函数驱动程序。 操作区域对象仅由函数驱动程序用于在取消注册操作区域处理程序时唯一标识操作区域。

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

要求

要求
目标平台 通用
标头 oprghdlr.h (包括 Oprghdlr.h)
Library Oprghdlr.lib
IRQL PASSIVE_LEVEL

另请参阅

ACPI_OP_REGION_HANDLER

DeRegisterOpRegionHandler