pepfx.h) (PEP_ACPI_EVALUATE_CONTROL_METHOD 结构

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 控制方法的输入参数 的ACPI_METHOD_ARGUMENT 结构。

OutputArgumentCount

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

OutputArgumentSize

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

OutputArguments

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

注解

此结构由 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 开始支持。
标头 pepfx.h (包括 Pep_x.h)

另请参阅