Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Para criar um provedor de eventos WMI você deve registrar a instância __Win32Provider que representa seu provedor usando uma instância de __EventProviderRegistration. Como um objeto COM, seu provedor deve se registrar no sistema operacional e no WMI. O procedimento a seguir pressupõe que você já tenha implementado o processo de registro conforme descrito em Registrando um provedor.
O procedimento a seguir descreve como registrar um provedor de eventos.
Para registrar um provedor de eventos
Crie uma instância da classe __Win32Provider que descreve o provedor.
Crie uma instância da classe __EventProviderRegistration que descreve o conjunto de recursos do provedor.
A classe __EventProviderRegistration herda muitas propriedades da classe pai __ObjectProviderRegistration. As propriedades locais para a classe __EventProviderRegistration são o caminho do objeto para o provedor e uma lista de consultas que descrevem os eventos que o provedor suporta. Para obter mais informações, consulte Consultando o WMI.
Carregue sua implementação das classes __Win32Provider e __EventProviderRegistration no repositório WMI.
O WMI usa sua definição de classe para registrar e acessar seu provedor de eventos. Para obter mais informações, consulte Registar um fornecedor.
O exemplo de código a seguir descreve uma implementação de uma classe __Win32Provider e uma classe __EventProviderRegistration.
instance of __Win32Provider as $P
{
ClientLoadableCLSID = NULL;
CLSID = "{AA7828C5-95F9-11d2-BB0D-00C042424242}";
DefaultMachineName = NULL;
ImpersonationLevel = 0;
InitializationReentrancy = 0;
InitializeAsAdminFirst = FALSE;
Name = "FaxEventProvider";
PerLocaleInitialization = FALSE;
PerUserInitialization = FALSE;
Pure = TRUE;
UnloadTimeout = NULL;
};
instance of __EventProviderRegistration
{
Provider = $P;
EventQueryList = {
"SELECT * FROM FaxEvent",
"SELECT * FROM __InstanceCreationEvent WHERE TargetInstance ISA \"Win32_LogicalDisk\""};
};
A primeira consulta indica que o provedor gera todas as notificações de eventos para a classe de evento extrínseco FaxEvent. Como usa o operador ISA, a segunda consulta implica que o provedor gera notificações para todos os eventos de criação de instância para a classe Win32_LogicalDisk e todas as suas subclasses.
Quando um provedor se registra para fornecer um evento intrínseco, o evento deve ser aplicado a todas as instâncias de uma classe. Em outras palavras, uma consulta não pode ser gravada para fornecer eventos de criação de instância para apenas algumas das unidades de disco que pertencem à classe Win32_LogicalDisk.