Freigeben über


PEP_QUERY_SOC_SUBSYSTEM Struktur (pep_x.h)

Die PEP_QUERY_SOC_SUBSYSTEM Struktur wird vom PEP_DPM_QUERY_SOC_SUBSYSTEM Benachrichtigungs- verwendet, um grundlegende Informationen zu einem bestimmten System auf einem Chip-Subsystem (SoC) zu sammeln.

Syntax

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;

Angehörige

[in] PlatformIdleStateIndex

Der Idle-Statusindex der Plattform, der vom Kernel abgefragt wird.

[in] SubsystemIndex

Der Subsystemindex, ein eindeutiger Index, der vom Betriebssystem jedem Subsystem im Kontext eines bestimmten PlatformIdleStateIndexzugewiesen wird.

Der Kernel initialisiert diesen Wert auf Null und erhöht ihn für jede nachfolgende statische Informationsbenachrichtigung des Subsystems. Ein Wert von 0 bedeutet, dass es die erste solche Benachrichtigung für die angegebene PlatformIdleStateIndex-ist. Dieses Feld soll den PEP-Kontext zwischen Instanzen dieser Benachrichtigung angeben. Es handelt sich um das einzige Feld, dessen Eingabewert in verschiedenen Instanzen dieser Benachrichtigung für eine bestimmte PlatformIdleStateIndex- variiert, und ein PEP kann diesen Wert verwenden, um ein Subsystem nachzuschlagen.

Der PEP kann diesen Wert ignorieren.

[out] SubsystemHandle

Ein Kontextzeiger, dem der PEP optional einen Wert zuweisen kann. Er erhält den Zeiger zu nachfolgenden Benachrichtigungen für dieses bestimmte Subsystem. In nachfolgenden Benachrichtigungen verwendet ein PEP PlatformIdleStateIndex- zusammen mit SubsystemName und/oder SubsystemHandle-, um die Buchhaltungsdaten eines bestimmten Subsystems nachzuschlagen.

Standardmäßig ist der Wert, wenn dieses Element null ist. Dieser Wert wird vom Betriebssystem ignoriert und nur in Benachrichtigungen verwendet.

Der PEP ist nicht erforderlich, um dieses Mitglied auszufüllen.

[in/out] ParentName

Ein Puffer zum Halten des übergeordneten Namens des entsprechenden Subsystems. Jedes Subsystem verfügt über ein übergeordnetes Element und Subsysteme mit demselben Wert für ParentName- werden als gleichgeordnet eingestuft. Gleichgeordnete Subsystemhierarchien sind optional. Wenn keine Hierarchie vorhanden ist, sind alle Subsysteme Teilsysteme der obersten Ebene und geben einen gemeinsamen Wert für ParentName-an. Um eine Hierarchie anzugeben, geben Subsysteme auf oberster Ebene eine allgemeine ParentName- an, während jedes Subsystem auf nicht oberster Ebene das SubsystemName- für ParentName-angibt.

Vor der Eingabe wird der Kernel:

  • Vorabzuweisung von 64 WCHARs für ParentName.Buffer[]
  • Null des Puffers
  • Legen Sie ParentName.MaximumLength- auf die Größe des Puffers in Bytes fest, und
  • Festlegen ParentName.Length = 0
Vor dem Beenden muss die PEP eine mit Null beendete Zeichenfolge in ParentName.Buffer- kopieren und ParentName.Length mit einer Byteanzahl aktualisieren, die Sizeof(WCHAR) Mal die Anzahl der kopierten UNICODE-Zeichen, nicht einschließlich der endenden UNICODE_NULL.

Der PEP muss den zugewiesenen Speicher verwenden, auf den die Adresse in ParentName.Buffer verweist, um den übergeordneten Namen anzugeben. Da dieser Speicher bereits zugeordnet ist, kann seine Größe nicht geändert werden. Der PEP ist für das Abschneiden des übergeordneten Namens verantwortlich, falls erforderlich, damit er die in ParentName.MaximumLength- angegebene Länge nicht überschreitet (einschließlich des endierenden UNICODE_NULL Zeichens).

[in/out] SubsystemName

Ein Puffer für den Namen dieses Subsystems. Jedes Subsystem hat einen Subsystemnamen und SubsystemName muss zwischen allen Subsystemen im Kontext eines bestimmten Plattform-Leerlaufzustands eindeutig sein. Das SubsystemName- eines Subsystems kann nicht mit ParentName-identisch sein.

Vor der Eingabe wird der Kernel:

  • Vorabzuweisung von 64 WCHARs für SubsystemName.Buffer[]
  • Null des Puffers
  • Legen Sie SubsystemName.MaximumLength- auf die Größe des Puffers in Bytes fest, und
  • Set SubsystemName.Length = 0
Vor dem Beenden muss die PEP eine mit Null beendete Zeichenfolge in SubsystemName.Buffer- kopieren und SubsystemName.Length mit einer Byteanzahl aktualisieren, die Sizeof(WCHAR) Mal die Anzahl der kopierten UNICODE-Zeichen, nicht einschließlich der endenden UNICODE_NULL.

Der PEP muss den zugewiesenen Speicher verwenden, auf den die Adresse in SubsystemName.Buffer verweist, um den Subsystemnamen anzugeben. Da dieser Speicher bereits zugeordnet ist, kann seine Größe nicht geändert werden. Der PEP ist für das Abschneiden des Subsystemnamens verantwortlich, falls erforderlich, damit er die in SubsystemName.MaximumLength angegebene Länge nicht überschreitet (einschließlich des endenden UNICODE_NULL Zeichens).

[out] MetadataCount

Die Anzahl der Metadatenschlüssel-Wert-Zeichenfolgenpaare, die von diesem SoC-Subsystem hochgezählt werden.

Metadaten sind optional. Der PEP gibt null zurück, wenn er keine Metadaten für dieses SoC-Subsystem meldet.

Flags

Dieses Element ist reserviert und sollte auf Null festgelegt werden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Wird ab Windows 10 unterstützt.
Header- pep_x.h (einschließen Pep_x.h)

Siehe auch

PEP_DPM_QUERY_SOC_SUBSYSTEM Benachrichtigung