PEP_ACPI_EVALUATE_CONTROL_METHOD结构(pep_x.h)

PEP_ACPI_EVALUATE_CONTROL_METHOD 结构指定要计算的 ACPI 控制方法、要提供给此方法的输入参数,以及计算结果的输出缓冲区。

语法

typedef struct _PEP_ACPI_EVALUATE_CONTROL_METHOD {
  PEPHANDLE             DeviceHandle;
  ULONG                 RequestFlags;
  union {
    ULONG       MethodName;
    ANSI_STRING MethodNameString;
  };
  NTSTATUS              MethodStatus;
  PVOID                 CompletionContext;
  ULONG                 InputArgumentCount;
  SIZE_T                InputArgumentSize;
  PACPI_METHOD_ARGUMENT InputArguments;
  ULONG                 OutputArgumentCount;
  SIZE_T                OutputArgumentSize;
  PACPI_METHOD_ARGUMENT OutputArguments;
} PEP_ACPI_EVALUATE_CONTROL_METHOD, *PPEP_ACPI_EVALUATE_CONTROL_METHOD;

成员

DeviceHandle

一个 PEPHANDLE 值,该值标识设备的 ACPI 服务的注册。 平台扩展插件(PEP)提供了此句柄,以响应以前的 PEP_NOTIFY_ACPI_REGISTER_DEVICE 通知。

RequestFlags

一组标志。 此成员包含以下值之一。

标志名称 价值 意义
PEP_ACPI_ECM_FLAG_NONE 0x0 不是有效的控件方法名称。
PEP_ACPI_ECM_FLAG_RELATIVE_NAME 0x1 MethodNameUlong 成员包含路径相对控件方法名称。
PEP_ACPI_ECM_FLAG_FULLY_QUALIFIED_NAME 0x2 MethodNameString 成员包含完全限定的控制方法名称。

MethodName

一个 ULONG 值,该值包含 ACPI 控件方法的四个字符相对路径名称。

MethodNameString

包含 ACPI 控件方法的完全限定名称的 ANSI_STRING 结构。 此名称指定 ACPI 命名空间中方法的路径和名称。 有关详细信息,请参阅 枚举子设备和控制方法

MethodStatus

一个 NTSTATUS 值,该值指示 ACPI 控件方法评估的状态。 将此成员设置为STATUS_SUCCESS以指示平台扩展插件(PEP)已成功完成对方法的评估。 设置为STATUS_NOT_SUPPORTED,指示 PEP 无法识别控制方法。 设置为 STATUS_BUFFER_TOO_SMALL 以指示由 InputArgumentSize 成员指定的输出缓冲区大小不足以包含方法结果。

如果 PEP 要异步评估方法,请将此成员设置为STATUS_PENDING并从 AcceptAcpiNotification 回调返回。 稍后,完成评估后,PEP 调用 CompleteWork 例程,以通知 Windows 电源管理框架(PoFx)控制方法的评估已完成。

CompletionContext

指向完成上下文值的指针。 仅当以异步方式计算控制方法时,PEP 才使用此成员。 在这种情况下,PEP 会在调用 CompleteWork 例程中提供此完成上下文指针,该例程通知 Windows 电源管理框架(PoFx)控制方法的评估已完成。 此调用的输入参数中包含的是指向 PEP 写入完成上下文指针的 PEP_WORK_ACPI_EVALUATE_CONTROL_METHOD_COMPLETE 结构的指针。 上下文对 PEP 不透明,包含 PoFx 在内部使用的数据。

InputArgumentCount

InputArguments 成员指向的输入缓冲区中的输入参数数。 每个参数都以指定参数大小的 ACPI_METHOD_ARGUMENT 结构开头。 目前,InputArgumentCount 值的最大 为 1。

InputArgumentSize

InputArguments 成员指向的输入缓冲区的大小(以字节为单位)。

InputArguments

指向输入缓冲区的指针,该缓冲区包含一个 ACPI_METHOD_ARGUMENT 结构,该结构指定指定 ACPI 控件方法的输入参数。

OutputArgumentCount

OutputArguments 成员指向的输出缓冲区中的输出参数数。 每个参数都以指定参数大小的 ACPI_METHOD_ARGUMENT 结构开头。 目前,允许的最大 OutputArgumentCount 值为 1。

OutputArgumentSize

在输入时,OutputArguments 成员指向的输出缓冲区的大小(以字节为单位)。 如果此缓冲区不够大,无法包含计算方法的结果,则 PEP 会用所需的大小覆盖 OutputArgumentSize 输入值,并将 MethodStatus 成员设置为STATUS_BUFFER_TOO_SMALL。

OutputArguments

指向 PEP 向其写入 ACPI_METHOD_ARGUMENT 结构的输出缓冲区的指针,该结构包含计算指定的 ACPI 控制方法的结果。

言论

PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD 通知使用此结构。 MethodStatus 成员包含 PEP 写入结构以响应此通知的输出值。 OutputArgumentSize 成员包含发送通知时 PoFx 提供的输入值。 如果输入值小于所需的输出缓冲区大小,PEP 可能会用输出值覆盖此输入值。 此结构中的所有其他成员都包含发送通知时 PoFx 提供的输入值。

此结构定义一个未命名的联合,其中包含四个字符的相对路径控制方法名称(如果 RequestFlags = PEP_ACPI_ECM_FLAG_RELATIVE_NAME)或完全限定的控制方法名称(如果 RequestFlags = PEP_ACPI_ECM_FLAG_FULLY_QUALIFIED_NAME)。

要求

要求 价值
最低支持的客户端 从 Windows 10 开始支持。
标头 pep_x.h (包括 Pep_x.h)

另请参阅