PEP_QUERY_SOC_SUBSYSTEM Struktur (pep_x.h)

Die PEP_QUERY_SOC_SUBSYSTEM-Struktur wird von der PEP_DPM_QUERY_SOC_SUBSYSTEM Benachrichtigung verwendet, um grundlegende Informationen zu einem bestimmten System-on-a-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;

Member

[in] PlatformIdleStateIndex

Der Plattform-Leerlaufstatusindex, der vom Kernel abgefragt wird.

[in] SubsystemIndex

Der Subsystemindex, bei dem es sich um einen eindeutigen Index handelt, der vom Betriebssystem jedem Subsystem im Kontext eines bestimmten PlatformIdleStateIndex zugewiesen ist.

Der Kernel initialisiert diesen Wert auf Null und erhöht ihn für jede nachfolgende Benachrichtigung zu statischen Subsysteminformationen. Der Wert 0 bedeutet, dass es sich um die erste solche Benachrichtigung für den angegebenen PlatformIdleStateIndex handelt. Dieses Feld soll den PEP-Kontext zwischen Instanzen dieser Benachrichtigung angeben. Es ist das einzige Feld, dessen Eingabewert für eine bestimmte PlatformIdleStateIndex-Instanz von Instanz zu Benachrichtigung variiert, und ein PEP kann diesen Wert verwenden, um ein Subsystem zu suchen.

Der PEP kann diesen Wert ignorieren.

[out] SubsystemHandle

Ein Kontextzeiger, dem pep optional einen Wert zuweisen kann. Er empfängt den Zeiger auf nachfolgende Benachrichtigungen für dieses bestimmte Subsystem. In nachfolgenden Benachrichtigungen verwendet ein PEP PlatformIdleStateIndex zusammen mit SubsystemName und/oder SubsystemHandle , um die Abrechnungsdaten eines bestimmten Subsystems zu suchen.

Standardmäßig der Wert, wenn dieser Member 0 ist. Dieser Wert wird vom Betriebssystem ignoriert und nur in Benachrichtigungen verwendet.

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

[in/out] ParentName

Ein Puffer zum Speichern des übergeordneten Namens des entsprechenden Subsystems. Jedes Subsystem verfügt über ein übergeordnetes Element, und Subsysteme mit dem gleichen Wert für ParentName gelten als gleichgeordnet. Untergeordnete Subsystemhierarchien sind optional. Wenn keine Hierarchie vorhanden ist, sind alle Subsysteme der obersten Ebene und geben einen gemeinsamen Wert für ParentName an. Um eine Hierarchie anzugeben, geben Subsysteme der obersten Ebene einen gemeinsamen ParentName an, während jedes Subsystem der obersten Ebene den Subsystemname des übergeordneten Subsystems für ParentName angibt.

Vor der Eingabe führt der Kernel Folgendes aus:

  • Vorabzuweisung von 64 WCHARs für ParentName.Buffer[]
  • Puffer null
  • Legen Sie ParentName.MaximumLength auf die Größe des Puffers in Bytes fest, und
  • Festlegen von ParentName.Length = 0
Vor dem Beenden muss pep eine null-beendete Zeichenfolge in ParentName.Buffer kopieren und ParentName.Length mit einer Byteanzahl aktualisieren, die sizeof(WCHAR) mal die Anzahl der kopierten UNICODE-Zeichen ist, ohne die beendende UNICODE_NULL.

Der PEP muss den zugewiesenen Arbeitsspeicher verwenden, auf den die Adresse in ParentName.Buffer verweist, um den übergeordneten Namen anzugeben. Da dieser Arbeitsspeicher vorab zugewiesen ist, kann seine Größe nicht geändert werden. Das 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 beendenden UNICODE_NULL Zeichens).

[in/out] SubsystemName

Ein Puffer zum Speichern des Namens dieses Subsystems. Jedes Subsystem hat einen Subsystemnamen, und SubsystemName muss für alle Subsysteme innerhalb des Kontexts eines bestimmten Plattform-Leerlaufzustands eindeutig sein. SubsystemName eines Subsystems kann nicht mit ParentName identisch sein.

Vor der Eingabe führt der Kernel Folgendes aus:

  • Vorabzuweisung von 64 WCHARs für SubsystemName.Buffer[]
  • Puffer null
  • Legen Sie SubsystemName.MaximumLength auf die Größe des Puffers in Bytes fest, und
  • Festlegen von SubsystemName.Length = 0
Vor dem Beenden muss pep eine null-beendete Zeichenfolge in SubsystemName.Buffer kopieren und SubsystemName.Length mit einer Byteanzahl aktualisieren, die sizeof(WCHAR) mal die Anzahl der kopierten UNICODE-Zeichen ist, ohne die beendende UNICODE_NULL.

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

[out] MetadataCount

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

Metadaten sind optional. Pep gibt null zurück, wenn keine Metadaten für dieses SoC-Subsystem gemeldet werden.

Flags

Dieser Member ist reserviert und sollte auf null festgelegt werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Wird ab Windows 10 unterstützt.
Kopfzeile pep_x.h (einschließlich Pep_x.h)

Weitere Informationen

PEP_DPM_QUERY_SOC_SUBSYSTEM Benachrichtigung