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) |