PEP_QUERY_SOC_SUBSYSTEM 结构 (pepfx.h)
PEP_DPM_QUERY_SOC_SUBSYSTEM通知使用PEP_QUERY_SOC_SUBSYSTEM结构来收集有关芯片 (SoC) 子系统上的特定系统的基本信息。
语法
typedef struct _PEP_QUERY_SOC_SUBSYSTEM {
[in] ULONG PlatformIdleStateIndex;
[in] ULONG SubsystemIndex;
[out] PVOID SubsystemHandle;
[in/out] UNICODE_STRING ParentName;
[in/out] UNICODE_STRING SubsystemName;
[out] ULONG MetadataCount;
ULONG Flags;
} PEP_QUERY_SOC_SUBSYSTEM, *PPEP_QUERY_SOC_SUBSYSTEM;
成员
[in] PlatformIdleStateIndex
内核正在查询的平台空闲状态索引。
[in] SubsystemIndex
子系统索引,这是操作系统在给定 PlatformIdleStateIndex 的上下文中分配给每个子系统的唯一索引。
内核将此值初始化为零,并针对每个后续子系统静态信息通知递增该值。 值为 0 表示它是给定 PlatformIdleStateIndex 的第一个此类通知。 此字段旨在提供此通知实例之间的 PEP 上下文。 对于给定 PlatformIdleStateIndex ,它是唯一输入值因此通知实例而异的字段,PEP 可能会使用此值来查找子系统。
PEP 可以忽略此值。
[out] SubsystemHandle
PEP 可以选择为其赋值的上下文指针。 它将在此特定子系统的后续通知上接收指针。 在后续通知中,PEP 使用 PlatformIdleStateIndex 以及 SubsystemName 和/或 SubsystemHandle 来查找特定子系统的记帐数据。
默认情况下,如果此成员为零,则为 值。 此值被 OS 忽略,并且仅在通知中使用。
填充此成员不需要 PEP。
[in/out] ParentName
用于保存相应子系统的父名称的缓冲区。 每个子系统都有一个父级, 并且具有相同值 ParentName 的子系统被视为同级。 子系统同级层次结构是可选的。 在没有任何层次结构的情况下,所有子系统都是顶级子系统,并为 ParentName 指定一个通用值。 为了指示层次结构,顶级子系统指定一个通用 的 ParentName, 而每个非顶级子系统指定其父子系统的 SubsystemName for ParentName。
在输入之前,内核将:
- 为 ParentName.Buffer[] 预分配 64 个 WCHAR
- 零缓冲区
- 将 ParentName.MaximumLength 设置为缓冲区的大小(以字节为单位),以及
- 设置 ParentName.Length = 0
PEP 必须使用 ParentName.Buffer 中的地址指向的已分配内存来提供父名称。 由于此内存是预先分配的,因此无法更改其大小。 如有必要,PEP 负责截断父名称,使其不超过 ParentName.MaximumLength (包括终止 UNICODE_NULL 字符) 中指定的长度。
[in/out] SubsystemName
用于保存此子系统名称的缓冲区。 每个子系统都有一个子系统名称, 并且 SubsystemName 在给定平台空闲状态的上下文中必须是唯一的。 子系统的 SubsystemName 不能与 ParentName 相同。
在输入之前,内核将:
- 为 SubsystemName.Buffer[] 预分配 64 个 WCHAR
- 零缓冲区
- 将 SubsystemName.MaximumLength 设置为缓冲区的大小(以字节为单位),以及
- 设置 SubsystemName.Length = 0
PEP 必须使用 SubsystemName.Buffer 中的地址指向的已分配内存来提供子系统名称。 由于此内存是预先分配的,因此无法更改其大小。 如有必要,PEP 负责截断子系统名称,使其不超过 SubsystemName.MaximumLength (包括终止 UNICODE_NULL 字符) 中指定的长度。
[out] MetadataCount
此 SoC 子系统统计的元数据键/值字符串对的数量。
元数据是可选的。 如果 PEP 不报告此 SoC 子系统的任何元数据,则 PEP 返回零。
Flags
此成员为保留成员,应设置为零。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 10 开始支持。 |
标头 | pepfx.h (包括 Pep_x.h) |