Condividi tramite


struttura PEP_QUERY_SOC_SUBSYSTEM (pep_x.h)

La struttura PEP_QUERY_SOC_SUBSYSTEM viene usata dalla 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;

Members

[in] PlatformIdleStateIndex

Indice di stato inattiva della piattaforma sottoposto a query dal kernel.

[in] SubsystemIndex

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

Il kernel inizializza questo valore su zero e lo incrementa per ogni notifica statica del sottosistema successiva. Un valore pari a 0 indica che è la prima notifica di questo tipo per l'oggetto PlatformIdleStateIndex specificato. Questo campo è destinato a fornire il contesto PEP tra istanze di questa notifica. È l'unico campo il cui valore di input varia tra le istanze di questa notifica per una determinata piattaforma 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ò assegnare facoltativamente un valore. Riceverà il puntatore sulle notifiche successive per questo particolare sottosistema. Nelle notifiche successive, un PEP usa PlatformIdleStateIndex insieme a SottosistemName e/o SottosistemAHandle per cercare i dati di contabilità 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 riempire 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 sono considerati fratelli. Le gerarchie di pari livello del sottosistema sono facoltative. In assenza di qualsiasi gerarchia, tutti i sottosistemi sono sottosistemi di primo livello e specificano un valore comune per ParentName. Per indicare una gerarchia, i sottosistemi di primo livello specificano un nome Padre comune mentre ogni sottosistema non di primo livello specifica il sottosistema padre SottosistemaName per ParentName.

Prima della voce, il kernel sarà:

  • Pre-allocare 64 WCHAR per ParentName.Buffer[]
  • Zero il 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 che è sizeof(WCHAR) volte il numero di caratteri UNICODE copiati, non incluso l'UNICODE_NULL terminazione.

Il PEP deve usare la memoria allocata a cui punta l'indirizzo in ParentName.Buffer per specificare il nome padre. Poiché questa memoria è pre-allocata, le dimensioni non possono essere modificate. Il PEP è responsabile della troncatura 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 del sottosistema e SottosistemaName deve essere univoco tra tutti i sottosistemi nel contesto di uno stato di inattività della piattaforma specificato. Il sottosistema SottosistemaName non può essere uguale a ParentName.

Prima della voce, il kernel sarà:

  • Pre-allocare 64 WCHAR per SottosistemaName.Buffer[]
  • Zero il buffer
  • Impostare SottosistemaName.MaximumLength sulle dimensioni del buffer in byte e
  • Impostare SottosistemaName.Length = 0
Prima dell'uscita, il PEP deve copiare una stringa con terminazione null in SottosistemaName.Buffer e aggiornare SottosistemaName.Length con un conteggio di byte che è sizeof(WCHAR) volte il numero di caratteri UNICODE copiati, non incluso il UNICODE_NULL terminazione.

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

[out] MetadataCount

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

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

Flags

Questo membro è riservato e deve essere impostato su zero.

Requisiti

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

Vedi anche

notifica PEP_DPM_QUERY_SOC_SUBSYSTEM