共用方式為


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

子系統索引,這是OS指派給指定 PlatformIdleStateIndex 內容內每個子系統的唯一索引。

核心會將此值初始化為零,並針對每個後續子系統靜態資訊通知遞增此值。 值為 0 表示它是給定 PlatformIdleStateIndex 的第一個這類通知。 此欄位旨在提供此通知實例之間的 PEP 內容。 這是唯一的欄位,其輸入值會因指定 PlatformIdleStateIndex 的這個通知實例而有所不同,而 PEP 可能會使用此值來查閱子系統。

PEP 可以忽略此值。

[out] SubsystemHandle

PEP 可以選擇性地指派值的內容指標。 它會在此特定子系統的後續通知上收到指標。 在後續通知中,PEP 會使用 PlatformIdleStateIndex 搭配 SubsystemName 和/或 SubsystemHandle 來查閱特定子系統的會計數據。

根據預設,如果這個成員為零,則為 值。 操作系統會忽略這個值,而且只會在通知中使用。

不需要 PEP 才能填入此成員。

[in/out] ParentName

用來保存對應子系統之父名稱的緩衝區。 每個子系統都有父系和子系統,且 ParentName 的值相同,會被視為同層級。 子系統同層級階層是選擇性的。 如果沒有任何階層,所有子系統都是最上層子系統,並指定 ParentName的通用值。 為了指出階層,最上層子系統會指定通用 ParentName,而每個非最上層子系統都會指定其父子系統的 ParentName for ParentName

進入之前,核心會:

  • 針對 ParentName.Buffer[] 預先配置 64 個 WCHAR
  • 零緩衝區
  • ParentName.MaximumLength 設定為以位元組為單位的緩衝區大小,以及
  • 設定 ParentName.Length = 0
在結束之前,PEP 必須將 Null 終止的字串複製到 ParentName.Buffer ,並以位元組計數更新 ParentName.Length ,其 大小為 (WCHAR ) 倍數複製的 UNICODE 字元數,不包括終止 UNICODE_NULL

PEP 必須使用 ParentName.Buffer 中位址所指向的已配置記憶體,以提供父名稱。 由於此記憶體已預先配置,因此無法變更其大小。 PEP 負責視需要截斷父名稱,使其不會超過 ParentName.MaximumLength 中指定的長度, (包括終止 UNICODE_NULL 字元) 。

[in/out] SubsystemName

用來保存此子系統名稱的緩衝區。 每個子系統都有子系統名稱, 且 SubsystemName 在給定平臺閑置狀態內容中的所有子系統中都必須是唯一的。 子系統的 SubsystemName 不能與 ParentName 相同。

進入之前,核心會:

  • 針對 SubsystemName.Buffer[] 預先配置 64 個 WCHAR
  • 零緩衝區
  • SubsystemName.MaximumLength 設定為以位元組為單位的緩衝區大小,以及
  • 設定 SubsystemName.Length = 0
在結束之前,PEP 必須將以 Null 終止的字串複製到 SubsystemName.Buffer ,並以位元組計數更新 SubsystemName.Length ,其 大小為 (WCHAR ) 複製的 UNICODE 字元數,不包括終止 UNICODE_NULL

PEP 必須使用 SubsystemName.Buffer 中位址所指向的已配置記憶體,以提供子系統名稱。 由於此記憶體已預先配置,因此無法變更其大小。 PEP 負責視需要截斷子系統名稱,使其不會超過 SubsystemName.MaximumLength 中指定的長度, (包括終止 UNICODE_NULL 字元) 。

[out] MetadataCount

這個 SoC 子系統所設定的元數據索引鍵/值字串組數目。

元數據是選擇性的。 如果 PEP 未報告此 SoC 子系統的任何元數據,PEP 會傳回零。

Flags

這個成員是保留的,而且應該設定為零。

規格需求

需求
最低支援的用戶端 從Windows 10 開始支援。
標頭 pepfx.h (包含 Pep_x.h)

另請參閱

PEP_DPM_QUERY_SOC_SUBSYSTEM通知