Регистрация поставщика событий
Чтобы создать поставщик событий WMI , необходимо зарегистрировать экземпляр __Win32Provider, представляющий поставщика, с помощью экземпляра __EventProviderRegistration. В качестве COM-объекта ваш поставщик должен зарегистрироваться в операционной системе и WMI. В следующей процедуре предполагается, что вы уже реализовали процесс регистрации, как описано в разделе "Регистрация поставщика".
В следующей процедуре описывается регистрация поставщика событий.
Регистрация поставщика событий
Создайте экземпляр класса __Win32Provider, описывающего поставщика.
Создайте экземпляр класса __EventProviderRegistration, описывающего набор компонентов поставщика.
Класс __EventProviderRegistration наследует множество свойств из родительского класса __ObjectProviderRegistration. Свойства, локальные для класса __EventProviderRegistration, — это путь к поставщику и список запросов, описывающих события, поддерживаемые поставщиком. Дополнительные сведения см. в разделе Запросы WMI.
Загрузите реализацию классов __Win32Provider и __EventProviderRegistration в репозиторий WMI.
WMI использует определение класса для регистрации и доступа к поставщику событий. Для получения дополнительной информации см. раздел Регистрация поставщика.
В следующем примере кода описывается реализация класса __Win32Provider и класса __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\""};
};
Первый запрос указывает, что поставщик создает все уведомления о событиях для класса событий extrinsic FaxEvent. Так как он использует оператор ISA, второй запрос подразумевает, что поставщик создает уведомления для всех событий создания экземпляра для класса Win32_LogicalDisk и всех его подклассов.
При регистрации поставщика для предоставления встроенного события событие должно применяться ко всем экземплярам класса. Другими словами, запрос не может быть записан для предоставления событий создания экземпляра только для некоторых дисков, принадлежащих классу Win32_LogicalDisk.