Estrutura WMIREGGUIDW (wmistr.h)

A estrutura WMIREGGUID contém informações de registro novas ou atualizadas para um bloco de dados ou bloco de eventos.

Sintaxe

typedef struct {
  GUID  Guid;
  ULONG Flags;
  ULONG InstanceCount;
  union {
    ULONG     InstanceNameList;
    ULONG     BaseNameOffset;
    ULONG_PTR Pdo;
    ULONG_PTR InstanceInfo;
  } DUMMYUNIONNAME;
} WMIREGGUIDW, *PWMIREGGUIDW;

Membros

Guid

Especifica o GUID que representa o bloco a ser registrado ou atualizado.

Flags

Indica características do bloco a ser registrado ou atualizado.

Se um bloco estiver sendo registrado com nomes de instância estática, um driver definirá um dos seguintes sinalizadores:

WMIREG_FLAG_INSTANCE_LIST

Indica que o driver fornece nomes de instância estática para esse bloco em uma lista estática seguindo a estrutura WMIREGINFO no buffer em IrpStack-Parameters.WMI.Buffer>. Se esse sinalizador for definido, InstanceNameList será o deslocamento em bytes desde o início da estrutura WMIREGINFO que contém esse WMIREGGUID para uma série contígua de cadeias de caracteres Unicode contadas por InstanceCount .

WMIREG_FLAG_INSTANCE_BASENAME

Solicita que o WMI gere nomes de instância estática de um nome base fornecido pelo driver seguindo a estrutura WMIREGINFO no buffer em IrpStack-Parameters.WMI.Buffer>. O WMI gera nomes de instância acrescentando um contador ao nome base. Se esse sinalizador estiver definido, BaseNameOffset será o deslocamento em bytes desde o início da estrutura WMIREGINFO que contém esse WMIREGGUID para uma única cadeia de caracteres Unicode contada que serve como o nome base.

WMIREG_FLAG_INSTANCE_PDO

Solicita que o WMI gere nomes de instância estática da ID da instância do dispositivo para o PDO. Se esse sinalizador for definido, InstanceInfo apontará para o PDO passado para a rotina AddDevice do driver. O WMI gera nomes de instância do caminho da instância do dispositivo do PDO. Usar o caminho da instância do dispositivo como base para nomes de instância estática é eficiente porque esses nomes têm a garantia de serem exclusivos. O WMI fornece automaticamente um nome "amigável" para a instância como um item em um bloco de dados que pode ser consultado pelos consumidores de dados.

Se um bloco estiver sendo registrado com nomes de instância dinâmica, WMIREG_FLAG_INSTANCE_LIST, WMIREG_FLAG_INSTANCE_BASENAME e WMIREG_FLAG_INSTANCE_PDO deverão estar claros.

Um driver também pode definir um ou mais dos seguintes sinalizadores:

WMIREG_FLAG_EVENT_ONLY_GUID

O bloco pode ser habilitado ou desabilitado apenas como um evento e não pode ser consultado ou definido. Se esse sinalizador estiver claro, o bloco também poderá ser consultado ou definido.

WMIREG_FLAG_EXPENSIVE

Solicita que o WMI envie uma solicitação de IRP_MN_ENABLE_COLLECTION na primeira vez que um consumidor de dados abre o bloco de dados e uma solicitação de IRP_MN_DISABLE_COLLECTION quando o último consumidor de dados fecha o bloco de dados. Isso é recomendado se a coleta desses dados afetar o desempenho, pois um driver não precisa coletar os dados até que um consumidor de dados solicite explicitamente a ele abrindo o bloco.

WMIREG_FLAG_REMOVE_GUID

Solicita que o WMI remova o suporte para esse bloco. Esse sinalizador é válido apenas em resposta a uma solicitação para atualizar as informações de registro (IRP_MN_REGINFO ou IRP_MN_REGINFO_EX com Parameters.WMI.DataPath definido como WMIUPDATE).

WMIREG_FLAG_TRACED_GUID

O bloco só pode ser gravado em um arquivo de log e pode ser acessado somente por meio de rotinas de modo de usuário declaradas em evntrace.h. Somente os provedores de dados do modo kernel NT definem esse sinalizador.

WMIREG_FLAG_TRACE_CONTROL_GUID

O GUID atua como o GUID de controle para habilitar ou desabilitar os GUIDs de rastreamento associados a ele no arquivo MOF. Esse sinalizador só será válido se WMIREG_FLAG_TRACED_GUID também estiver definido. Somente os provedores de dados do modo kernel NT definem esse sinalizador.

InstanceCount

Especifica o número de nomes de instância estáticos a serem definidos para esse bloco. Se o bloco estiver sendo registrado com nomes de instância dinâmica, o WMI ignorará InstanceCount.

DUMMYUNIONNAME

DUMMYUNIONNAME.InstanceNameList

Indica o deslocamento em bytes desde o início da estrutura WMIREGINFO que contém esse WMIREGGUID para uma série contígua de cadeias de caracteres Unicode contadas por InstanceCount . Esse membro só será válido se WMIREG_FLAG_INSTANCE_LIST estiver definido em Sinalizadores. Se o bloco estiver sendo registrado com nomes de instância dinâmica, o WMI ignorará InstanceNameList.

DUMMYUNIONNAME.BaseNameOffset

Indica o deslocamento em bytes desde o início da estrutura WMIREGINFO que contém esse WMIREGGUID para uma única cadeia de caracteres Unicode contada que serve como base para o WMI gerar nomes de instância estática. Esse membro só será válido se WMIREG_FLAG_INSTANCE_BASENAME estiver definido em Sinalizadores. Se o bloco estiver sendo registrado com nomes de instância dinâmica, o WMI ignorará BaseNameOffset.

DUMMYUNIONNAME.Pdo

Ponteiro para o PDO (objeto de dispositivo físico) passado para a rotina AddDevice do driver. O WMI usa o caminho da instância do dispositivo desse PDO como uma base da qual gerar nomes de instância estáticos. Esse membro só será válido se WMIREG_FLAG_INSTANCE_PDO estiver definido em Sinalizadores. Se o bloco estiver sendo registrado com nomes de instância dinâmica, o WMI ignorará Pdo.

DUMMYUNIONNAME.InstanceInfo

Reservado para uso pelo WMI.

Comentários

Um driver cria uma ou mais estruturas WMIREGGUID em resposta a uma solicitação de IRP_MN_REGINFO ou IRP_MN_REGINFO_EX para registrar ou atualizar seus blocos. O driver passa uma matriz dessas estruturas no membro WmiRegGuid de uma estrutura WMIREGINFO, que o driver grava no buffer em IrpStack-Parameters.WMI.Buffer>.

Um driver pode registrar ou atualizar um bloco com nomes de instância estáticos ou dinâmicos. Os nomes de instância estática fornecem o melhor desempenho; no entanto, os nomes de instância dinâmica são preferenciais para blocos de dados se o número de instâncias ou nomes de instâncias for alterado com frequência. Para obter mais informações sobre nomes de instância, consulte Definindo nomes de instância do WMI.

Requisitos

Requisito Valor
Cabeçalho wmistr.h (inclua Wmistr.h)

Confira também

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMIREGINFO