Eseményszolgáltató regisztrálása
WMI-eseményszolgáltató létrehozásához regisztrálnia kell azt a __Win32Provider példányt, amely a szolgáltatót képviseli egy __EventProviderRegistration-példány használatával. COM-objektumként a szolgáltatónak regisztrálnia kell az operációs rendszerrel és a WMI-vel. Az alábbi eljárás feltételezi, hogy már implementálta a regisztrációs folyamatot Szolgáltató regisztrálása.
Az alábbi eljárás azt ismerteti, hogyan regisztrálhat eseményszolgáltatót.
Eseményszolgáltató regisztrálása
Hozza létre a szolgáltatót leíró __Win32Provider osztály egy példányát.
Hozzon létre egy példányt a __EventProviderRegistration osztályból, amely leírja a szolgáltató funkciókészletét.
A __EventProviderRegistration osztály számos tulajdonságot örököl a __ObjectProviderRegistration szülőosztálytól. A __EventProviderRegistration osztályhoz tartozó tulajdonságok a szolgáltató objektumútvonalai, valamint a szolgáltató által támogatott eseményeket leíró lekérdezések listája. További információért lásd a WMI lekérdezéserészt.
Töltse be a __Win32Provider és __EventProviderRegistration osztályok implementálását a WMI-adattárba.
A WMI az osztálydefiníció használatával regisztrálja és éri el az eseményszolgáltatót. A további információért lásd Szolgáltató regisztrálása.
Az alábbi példakód egy __Win32Provider osztály és egy __EventProviderRegistration osztály implementációját ismerteti.
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\""};
};
Az első lekérdezés azt jelzi, hogy a szolgáltató minden eseményértesítést generál a FaxEvent külső eseményosztályhoz. Mivel az ISA-operátort használja, a második lekérdezés azt jelenti, hogy a szolgáltató értesítéseket hoz létre az Win32_LogicalDisk osztály és annak összes alosztálya összes példánylétrehozási eseményéről.
Amikor egy szolgáltató regisztrál egy belső esemény biztosítására, az eseménynek az osztály összes példányára érvényesnek kell lennie. Más szóval nem írható lekérdezés, amely csak az Win32_LogicalDisk osztályhoz tartozó lemezmeghajtók példánylétrehozási eseményeit biztosítja.