Skip to content

Latest commit

 

History

History
129 lines (92 loc) · 6.42 KB

ns-pepfx-_pep_query_soc_subsystem.md

File metadata and controls

129 lines (92 loc) · 6.42 KB
UID title description old-location tech.root ms.date keywords ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames f1_keywords topic_type api_type api_location api_name
NS:pepfx._PEP_QUERY_SOC_SUBSYSTEM
_PEP_QUERY_SOC_SUBSYSTEM (pepfx.h)
The PEP_QUERY_SOC_SUBSYSTEM structure is used by the PEP_DPM_QUERY_SOC_SUBSYSTEM notification to gather basic information about a particular system on a chip (SoC) subsystem.
kernel\pep_query_soc_subsystem.htm
kernel
04/30/2018
PEP_QUERY_SOC_SUBSYSTEM structure
*PPEP_QUERY_SOC_SUBSYSTEM, PEP_QUERY_SOC_SUBSYSTEM, PEP_QUERY_SOC_SUBSYSTEM structure [Kernel-Mode Driver Architecture], PPEP_QUERY_SOC_SUBSYSTEM, PPEP_QUERY_SOC_SUBSYSTEM structure pointer [Kernel-Mode Driver Architecture], _PEP_QUERY_SOC_SUBSYSTEM, kernel.pep_query_soc_subsystem, pepfx/PEP_QUERY_SOC_SUBSYSTEM, pepfx/PPEP_QUERY_SOC_SUBSYSTEM
pepfx.h
Pep_x.h
Windows
Supported starting with Windows 10.
Windows
PEP_QUERY_SOC_SUBSYSTEM, *PPEP_QUERY_SOC_SUBSYSTEM
_PEP_QUERY_SOC_SUBSYSTEM
pepfx/_PEP_QUERY_SOC_SUBSYSTEM
PPEP_QUERY_SOC_SUBSYSTEM
pepfx/PPEP_QUERY_SOC_SUBSYSTEM
PEP_QUERY_SOC_SUBSYSTEM
pepfx/PEP_QUERY_SOC_SUBSYSTEM
APIRef
kbSyntax
HeaderDef
pepfx.h
_PEP_QUERY_SOC_SUBSYSTEM
PPEP_QUERY_SOC_SUBSYSTEM
PEP_QUERY_SOC_SUBSYSTEM

_PEP_QUERY_SOC_SUBSYSTEM structure (pepfx.h)

-description

The PEP_QUERY_SOC_SUBSYSTEM structure is used by the PEP_DPM_QUERY_SOC_SUBSYSTEM notification to gather basic information about a particular system on a chip (SoC) subsystem.

-struct-fields

-field PlatformIdleStateIndex [in]

The platform idle state index that is being queried by the kernel.

-field SubsystemIndex [in]

The subsystem index, which is a unique index assigned by the OS to each subsystem within the context of a given PlatformIdleStateIndex.

The kernel initializes this value to zero and increments it for each subsequent subsystem static info notification. A value of 0 means it's the first such notification for the given PlatformIdleStateIndex. This field is intended to give the PEP context between instances of this notification. It is the only field whose input value varies across instances of this notification for a given PlatformIdleStateIndex and a PEP might use this value to look up a subsystem.

The PEP can ignore this value.

-field SubsystemHandle [out]

A context pointer that the PEP can optionally assign a value to. It will receive the pointer on subsequent notifications for this particular subsystem. In subsequent notifications, a PEP uses PlatformIdleStateIndex along with SubsystemName and/or SubsystemHandle to look up a particular subsystem's accounting data.

By default the value if this member is zero. This value is ignored by the OS and used only in notifications.

The PEP is not required to fill this member.

-field ParentName [in/out]

A buffer for holding the parent name of the corresponding subsystem. Each subsystem has a parent and subsystems with the same value for ParentName are considered siblings. Subsystem sibling hierarchies are optional. In the absence of any hierarchy, all subsystems are top level subsystems and specify a common value for ParentName. To indicate a hierarchy, top level subsystems specify a common ParentName while each non-top-level subsystem specifies its parent subsystem's SubsystemName for ParentName.

Prior to entry, the kernel will:

  • Pre-allocate 64 WCHARs for ParentName.Buffer[]
  • Zero the buffer
  • Set ParentName.MaximumLength to the size of the buffer in bytes, and
  • Set ParentName.Length = 0
Prior to exit, the PEP must copy a null-terminated string into ParentName.Buffer and update ParentName.Length with a byte count that is sizeof(WCHAR) times the number of UNICODE characters copied, not including the terminating UNICODE_NULL.

The PEP must use the allocated memory that is pointed to by the address in ParentName.Buffer to provide the parent name. Since this memory is pre-allocated, its size cannot be changed. The PEP is responsible for truncating the parent name, if necessary, so that it does not exceed the length specified in ParentName.MaximumLength (including the terminating UNICODE_NULL character).

-field SubsystemName [in/out]

A buffer for holding this subsystem's name. Every subsystem has a subsystem name and SubsystemName must be unique among all subsystems within the context of a given platform idle state. A subsystem's SubsystemName cannot be the same as ParentName.

Prior to entry, the kernel will:

  • Pre-allocate 64 WCHARs for SubsystemName.Buffer[]
  • Zero the buffer
  • Set SubsystemName.MaximumLength to the size of the buffer in bytes, and
  • Set SubsystemName.Length = 0
Prior to exit, the PEP must copy a null-terminated string into SubsystemName.Buffer and update SubsystemName.Length with a byte count that is sizeof(WCHAR) times the number of UNICODE characters copied, not including the terminating UNICODE_NULL.

The PEP must use the allocated memory that is pointed to by the address in SubsystemName.Buffer to provide the subsystem name. Since this memory is pre-allocated, its size cannot be changed. The PEP is responsible for truncating the subsystem name, if necessary, so that it does not exceed the length specified in SubsystemName.MaximumLength (including the terminating UNICODE_NULL character).

-field MetadataCount [out]

The number of metadata key/value string pairs tallied by this SoC subsystem.

Metadata is optional. The PEP returns zero if it does not report any metadata for this SoC subsystem.

-field Flags

This member is reserved and should be set to zero.

-see-also

PEP_DPM_QUERY_SOC_SUBSYSTEM notification