Estrutura WMIGUIDREGINFO (wmilib.h)

A estrutura WMIGUIDREGINFO contém informações de registro para um determinado bloco de dados ou bloco de eventos exposto por um driver que usa as rotinas de suporte da biblioteca WMI.

Sintaxe

typedef struct _WMIGUIDREGINFO {
  LPCGUID Guid;
  ULONG   InstanceCount;
  ULONG   Flags;
} WMIGUIDREGINFO, *PWMIGUIDREGINFO;

Membros

Guid

Ponteiro para o GUID que identifica o bloco. A memória que contém o GUID pode ser paginada, a menos que também seja usada para chamar WmiFireEvent.

InstanceCount

Especifica o número de instâncias definidas para o bloco.

Flags

Sinalizar bits que indicam características do bloco. Esses bits de sinalizador são definidos no arquivo de cabeçalho Wmistr.h. O WMI ORs o valor do parâmetro Flags com os bits de sinalizador definidos pelo driver no parâmetro RegFlags de sua rotina DpWmiQueryReginfo , que se aplicam a todos os blocos de dados e blocos de eventos registrados pelo driver. Portanto , os sinalizadores complementam as configurações padrão do driver para um determinado bloco.

Um driver pode definir o seguinte bit de sinalizador em Sinalizadores:

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, o parâmetro Pdo da rotina DpWmiQueryReginfo do driver 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. O uso do caminho da instância do dispositivo como base para nomes de instância estática é eficiente porque esses nomes são garantidos como 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 por consumidores de dados.

Um driver também pode definir um ou mais dos seguintes bits de sinalizador:

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 abrir o bloco de dados e uma solicitação de IRP_MN_DISABLE_COLLECTION quando o último consumidor de dados fechar 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 os solicite explicitamente abrindo o bloco.

WMIREG_FLAG_REMOVE_GUID

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

Comentários

Um driver que manipula IRPs WMI chamando rotinas de suporte da biblioteca WMI cria uma matriz de estruturas WMIGUIDREGINFO , uma para cada bloco de dados e bloco de eventos a ser registrado. O driver define o membro GuidList de sua estrutura WMILIB_CONTEXT para apontar para o primeiro WMIGUIDREGINFO na série.

A memória dessa estrutura pode ser alocada do pool paginado.

Requisitos

Requisito Valor
Cabeçalho wmilib.h (inclua Wmilib.h)

Confira também

DpWmiQueryReginfo

IRP_MN_DISABLE_COLLECTION

IRP_MN_ENABLE_COLLECTION

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMILIB_CONTEXT

WmiFireEvent