Compartilhar via


estrutura PEP_QUERY_SOC_SUBSYSTEM (pep_x.h)

A estrutura de PEP_QUERY_SOC_SUBSYSTEM é usada pelo de notificação PEP_DPM_QUERY_SOC_SUBSYSTEM para coletar informações básicas sobre um sistema específico em um subsistema SoC (chip).

Sintaxe

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;

Membros

[in] PlatformIdleStateIndex

O índice de estado ocioso da plataforma que está sendo consultado pelo kernel.

[in] SubsystemIndex

O índice do subsistema, que é um índice exclusivo atribuído pelo sistema operacional a cada subsistema dentro do contexto de um determinado PlatformIdleStateIndex.

O kernel inicializa esse valor como zero e incrementa-o para cada notificação de informações estáticas do subsistema subsequente. Um valor de 0 significa que é a primeira notificação desse tipo para o PlatformIdleStateIndex fornecido. Esse campo destina-se a fornecer o contexto PEP entre instâncias dessa notificação. É o único campo cujo valor de entrada varia entre instâncias dessa notificação para um determinado PlatformIdleStateIndex e um PEP pode usar esse valor para pesquisar um subsistema.

O PEP pode ignorar esse valor.

[out] SubsystemHandle

Um ponteiro de contexto ao qual o PEP pode, opcionalmente, atribuir um valor. Ele receberá o ponteiro nas notificações subsequentes para esse subsistema específico. Nas notificações subsequentes, um PEP usa PlatformIdleStateIndex juntamente com SubsystemName e/ou SubsystemHandle para pesquisar os dados de contabilidade de um subsistema específico.

Por padrão, o valor se esse membro for zero. Esse valor é ignorado pelo sistema operacional e usado apenas em notificações.

O PEP não é necessário para preencher esse membro.

[in/out] ParentName

Um buffer para manter o nome pai do subsistema correspondente. Cada subsistema tem um pai e subsistemas com o mesmo valor para ParentName são considerados irmãos. Hierarquias de irmãos do subsistema são opcionais. Na ausência de qualquer hierarquia, todos os subsistemas são subsistemas de nível superior e especificam um valor comum para ParentName. Para indicar uma hierarquia, os subsistemas de nível superior especificam um ParentName comum, enquanto cada subsistema de nível não superior especifica o subsistema subsistema pai para ParentName.

Antes da entrada, o kernel:

  • Alocar previamente 64 de WCHARs para ParentName.Buffer[]
  • Zero o buffer
  • Defina ParentName.MaximumLength com o tamanho do buffer em bytes e
  • Definir ParentName.Length = 0
Antes de sair, o PEP deve copiar uma cadeia de caracteres terminada em nulo em ParentName.Buffer e atualizar ParentName.Length com uma contagem de bytes sizeof(WCHAR) vezes o número de caracteres UNICODE copiados, sem incluir o UNICODE_NULLde término.

O PEP deve usar a memória alocada apontada pelo endereço em ParentName.Buffer para fornecer o nome pai. Como essa memória é pré-alocada, seu tamanho não pode ser alterado. O PEP é responsável por truncar o nome pai, se necessário, para que ele não exceda o comprimento especificado em ParentName.MaximumLength (incluindo o caractere de UNICODE_NULL de terminação).

[in/out] SubsystemName

Um buffer para manter o nome desse subsistema. Cada subsistema tem um nome de subsistema e SubsystemName deve ser exclusivo entre todos os subsistemas dentro do contexto de um determinado estado ocioso da plataforma. O subsistema SubsystemName de um subsistema não pode ser o mesmo que ParentName.

Antes da entrada, o kernel:

  • Alocar previamente 64 de WCHARs para SubsystemName.Buffer[]
  • Zero o buffer
  • Defina SubsystemName.MaximumLength com o tamanho do buffer em bytes e
  • Definir SubsystemName.Length = 0
Antes de sair, o PEP deve copiar uma cadeia de caracteres terminada em nulo em SubsystemName.Buffer e atualizar SubsystemName.Length com uma contagem de bytes sizeof(WCHAR) vezes o número de caracteres UNICODE copiados, sem incluir o UNICODE_NULLde término.

O PEP deve usar a memória alocada apontada pelo endereço no SubsystemName.Buffer para fornecer o nome do subsistema. Como essa memória é pré-alocada, seu tamanho não pode ser alterado. O PEP é responsável por truncar o nome do subsistema, se necessário, para que ele não exceda o comprimento especificado em SubsystemName.MaximumLength (incluindo o caractere de UNICODE_NULL de terminação).

[out] MetadataCount

O número de pares de cadeia de caracteres chave/valor de metadados contabilizados por esse subsistema SoC.

Metadados são opcionais. O PEP retornará zero se não relatar metadados para esse subsistema SoC.

Flags

Esse membro é reservado e deve ser definido como zero.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte a partir do Windows 10.
cabeçalho pep_x.h (inclua Pep_x.h)

Consulte também

PEP_DPM_QUERY_SOC_SUBSYSTEM de notificação