Condividi tramite


struttura PEP_QUERY_SOC_SUBSYSTEM (pep_x.h)

La struttura PEP_QUERY_SOC_SUBSYSTEM viene usata dal di notifica PEP_DPM_QUERY_SOC_SUBSYSTEM per raccogliere informazioni di base su un particolare sistema in un sottosistema soC (Chip).

Sintassi

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;

Membri

[in] PlatformIdleStateIndex

Indice dello stato di inattività della piattaforma su cui viene eseguita una query dal kernel.

[in] SubsystemIndex

Indice del sottosistema, che è un indice univoco assegnato dal sistema operativo a ogni sottosistema all'interno del contesto di un determinato PlatformIdleStateIndex.

Il kernel inizializza questo valore su zero e lo incrementa per ogni notifica delle informazioni statiche del sottosistema successiva. Il valore 0 indica che è la prima notifica per il PlatformIdleStateIndex specificato. Questo campo è destinato a fornire il contesto PEP tra le istanze di questa notifica. È l'unico campo il cui valore di input varia in base alle istanze di questa notifica per un determinato PlatformIdleStateIndex e un PEP potrebbe usare questo valore per cercare un sottosistema.

Il PEP può ignorare questo valore.

[out] SubsystemHandle

Puntatore di contesto a cui il PEP può facoltativamente assegnare un valore. Riceverà il puntatore sulle notifiche successive per questo particolare sottosistema. Nelle notifiche successive, un PEP usa PlatformIdleStateIndex insieme a SubsystemName e/o SubsystemHandle per cercare i dati contabili di un particolare sottosistema.

Per impostazione predefinita, il valore se questo membro è zero. Questo valore viene ignorato dal sistema operativo e usato solo nelle notifiche.

Il PEP non è necessario per completare questo membro.

[in/out] ParentName

Buffer per contenere il nome padre del sottosistema corrispondente. Ogni sottosistema ha un sottosistema padre e con lo stesso valore per parentName vengono considerati elementi di pari livello. Le gerarchie di pari livello del sottosistema sono facoltative. In assenza di una gerarchia, tutti i sottosistemi sono sottosistemi di primo livello e specificano un valore comune per ParentName. Per indicare una gerarchia, i sottosistemi di livello superiore specificano un ParentName comune, mentre ogni sottosistema non di primo livello specifica il SubsystemName padre per ParentName.

Prima della voce, il kernel:

  • Prea allocare 64 WCHAR per ParentName.Buffer[]
  • Zero the buffer
  • Impostare ParentName.MaximumLength sulle dimensioni del buffer in byte e
  • Impostare ParentName.Length = 0
Prima dell'uscita, il PEP deve copiare una stringa con terminazione Null in ParentName.Buffer e aggiornare ParentName.Length con un conteggio di byte sizeof(WCHAR) volte il numero di caratteri UNICODE copiati, senza includere il UNICODE_NULLdi terminazione.

Il PEP deve usare la memoria allocata a cui punta l'indirizzo in ParentName.Buffer per specificare il nome padre. Poiché la memoria è preallocata, le dimensioni non possono essere modificate. Il PEP è responsabile del troncamento del nome padre, se necessario, in modo che non superi la lunghezza specificata in ParentName.MaximumLength (incluso il carattere di terminazione UNICODE_NULL).

[in/out] SubsystemName

Buffer per contenere il nome del sottosistema. Ogni sottosistema ha un nome di sottosistema e SubsystemName deve essere univoco tra tutti i sottosistemi all'interno del contesto di un determinato stato di inattività della piattaforma. L'SubsystemName di un sottosistema non può essere uguale a ParentName.

Prima della voce, il kernel:

  • Prea allocare 64 WCHAR per SubsystemName.Buffer[]
  • Zero the buffer
  • Impostare SubsystemName.MaximumLength sulle dimensioni del buffer in byte e
  • Impostare SubsystemName.Length = 0
Prima dell'uscita, il PEP deve copiare una stringa con terminazione Null in SubsystemName.Buffer e aggiornare SubsystemName.Length con un conteggio di byte sizeof(WCHAR) volte il numero di caratteri UNICODE copiati, senza includere la terminazione UNICODE_NULL.

Il PEP deve usare la memoria allocata a cui punta l'indirizzo in SubsystemName.Buffer per specificare il nome del sottosistema. Poiché la memoria è preallocata, le dimensioni non possono essere modificate. Il PEP è responsabile del troncamento del nome del sottosistema, se necessario, in modo che non superi la lunghezza specificata in SubsystemName.MaximumLength (incluso il carattere di terminazione UNICODE_NULL).

[out] MetadataCount

Numero di coppie di stringhe chiave/valore di metadati tallied da questo sottosistema SoC.

I metadati sono facoltativi. Il PEP restituisce zero se non segnala metadati per questo sottosistema SoC.

Flags

Questo membro è riservato e deve essere impostato su zero.

Fabbisogno

Requisito Valore
client minimo supportato Supportato a partire da Windows 10.
intestazione pep_x.h (includere Pep_x.h)

Vedere anche

PEP_DPM_QUERY_SOC_SUBSYSTEM notifica