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) |