Partager via


structure PEP_QUERY_SOC_SUBSYSTEM (pep_x.h)

La structure PEP_QUERY_SOC_SUBSYSTEM est utilisée par la notification PEP_DPM_QUERY_SOC_SUBSYSTEM pour collecter des informations de base sur un système particulier sur un sous-système de puce (SoC).

Syntaxe

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;

Membres

[in] PlatformIdleStateIndex

Index d’état d’inactivité de la plateforme qui est interrogé par le noyau.

[in] SubsystemIndex

Index de sous-système, qui est un index unique attribué par le système d’exploitation à chaque sous-système dans le contexte d’un PlatformIdleStateIndex donné.

Le noyau initialise cette valeur à zéro et l’incrémente pour chaque notification d’informations statiques de sous-système suivante. La valeur 0 signifie qu’il s’agit de la première notification de ce type pour le PlatformIdleStateIndex donné. Ce champ est destiné à fournir le contexte PEP entre les instances de cette notification. Il s’agit du seul champ dont la valeur d’entrée varie selon les instances de cette notification pour un PlatformIdleStateIndex donné et un PEP peut utiliser cette valeur pour rechercher un sous-système.

Le PEP peut ignorer cette valeur.

[out] SubsystemHandle

Pointeur de contexte auquel le PEP peut éventuellement affecter une valeur. Il reçoit le pointeur sur les notifications suivantes pour ce sous-système particulier. Dans les notifications suivantes, un PEP utilise PlatformIdleStateIndex avec SubsystemName et/ou SubsystemHandle pour rechercher les données comptables d’un sous-système particulier.

Par défaut, la valeur si ce membre est égal à zéro. Cette valeur est ignorée par le système d’exploitation et utilisée uniquement dans les notifications.

Le PEP n’est pas nécessaire pour remplir ce membre.

[in/out] ParentName

Mémoire tampon pour contenir le nom parent du sous-système correspondant. Chaque sous-système a un parent et les sous-systèmes ayant la même valeur pour ParentName sont considérés comme frères. Les hiérarchies frères de sous-système sont facultatives. En l’absence de hiérarchie, tous les sous-systèmes sont des sous-systèmes de niveau supérieur et spécifient une valeur commune pour ParentName. Pour indiquer une hiérarchie, les sous-systèmes de niveau supérieur spécifient un ParentName commun, tandis que chaque sous-système non de niveau supérieur spécifie le nom de sous-système de son sous-système parent pourParentName.

Avant l’entrée, le noyau :

  • Préallouer 64 WCHAR pour ParentName.Buffer[]
  • Zéro de la mémoire tampon
  • Définissez ParentName.MaximumLength sur la taille de la mémoire tampon en octets, et
  • Définir ParentName.Length = 0
Avant de quitter, le PEP doit copier une chaîne terminée par null dans ParentName.Buffer et mettre à jour ParentName.Length avec un nombre d’octets qui est sizeof(WCHAR) fois le nombre de caractères UNICODE copiés, sans inclure le UNICODE_NULL de fin.

Le PEP doit utiliser la mémoire allouée vers laquelle pointe l’adresse dans ParentName.Buffer pour fournir le nom parent. Étant donné que cette mémoire est pré-allouée, sa taille ne peut pas être modifiée. Le PEP est responsable de la troncation du nom parent, si nécessaire, afin qu’il ne dépasse pas la longueur spécifiée dans ParentName.MaximumLength (y compris le caractère de fin UNICODE_NULL ).

[in/out] SubsystemName

Mémoire tampon pour contenir le nom de ce sous-système. Chaque sous-système a un nom de sous-système et subsystemName doit être unique parmi tous les sous-systèmes dans le contexte d’un état d’inactivité de plateforme donné. Le nom de sous-système d’un sous-système ne peut pas être identique à ParentName.

Avant l’entrée, le noyau :

  • Préallouer 64 WCHAR pour SubsystemName.Buffer[]
  • Zéro de la mémoire tampon
  • Définissez SubsystemName.MaximumLength sur la taille de la mémoire tampon en octets, et
  • Définir SubsystemName.Length = 0
Avant de quitter, le PEP doit copier une chaîne terminée par null dans SubsystemName.Buffer et mettre à jour SubsystemName.Length avec un nombre d’octets qui est sizeof(WCHAR) fois le nombre de caractères UNICODE copiés, sans compter le UNICODE_NULL de fin.

Le PEP doit utiliser la mémoire allouée vers laquelle pointe l’adresse dans SubsystemName.Buffer pour fournir le nom du sous-système. Étant donné que cette mémoire est pré-allouée, sa taille ne peut pas être modifiée. Le PEP est chargé de tronquer le nom du sous-système, si nécessaire, afin qu’il ne dépasse pas la longueur spécifiée dans SubsystemName.MaximumLength (y compris le caractère UNICODE_NULL de fin).

[out] MetadataCount

Nombre de paires de chaînes clé/valeur de métadonnées comptabilisées par ce sous-système SoC.

Les métadonnées sont facultatives. Le PEP retourne zéro s’il ne signale aucune métadonnées pour ce sous-système SoC.

Flags

Ce membre est réservé et doit être défini sur zéro.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge à partir de Windows 10.
En-tête pep_x.h (include Pep_x.h)

Voir aussi

notification PEP_DPM_QUERY_SOC_SUBSYSTEM