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