WITHIN-component
Gebeurtenisgebruikers gebruiken de WITHIN-component in gebeurtenisquery's om een polling-interval op te geven of een groeperingsinterval.
Een polling-interval is het interval dat WMI (Windows Management Instrumentation) gebruikt om de gegevensprovider te peilen die verantwoordelijk is voor de klasse voor intrinsieke gebeurtenissen, waarvan de query op de gebeurtenis lid is. Dit interval is de maximale tijdsduur die kan worden doorgegeven voordat een melding van een gebeurtenis moet worden afgeleverd. Een consument gebruikt een polling-interval in een WITHIN-component wanneer de consument melding van wijzigingen in een klasse vereist en een gebeurtenisprovider niet beschikbaar is. De consument registreert zich voor een intrinsieke gebeurtenis en omvat het polling-interval.
Als u een polling-interval wilt opgeven, plaatst u de WITHIN-component direct vóór de WHERE-component, zoals hieronder wordt weergegeven:
SELECT * FROM IntrinsicEventClass WITHIN interval WHERE property = value
IntrinsicEventClass is de intrinsieke gebeurtenisklasse waarvan de gebeurtenis lid is, het interval het polling-interval is en de waarde de waarde is voor de eigenschap waarvoor de consument een melding vereist.
Het polling-interval is een drijvendekommagetal en kan fractioneel zijn om waarden kleiner dan 1 seconde te accepteren. Het interval moet echter een aantal seconden vertegenwoordigen in plaats van een extreem kleine waarde, zoals 0,001, omdat het opgeven van een waarde die te klein is, ertoe kan leiden dat WMI de instructie weigert als ongeldig, vanwege de resource-intensieve aard van polling. Omdat de meeste gebeurtenisgebruikers geen onmiddellijke melding nodig hebben, is het raadzaam dat ze een interval gebruiken dat groter is dan 5 minuten.
In het volgende queryvoorbeeld wordt elke 10 seconden gecontroleerd op wijzigingen die optreden in exemplaren van de Win32_LogicalDisk-klasse. Als een exemplaar van de klasse wordt gewijzigd binnen het opgegeven polling-interval, wordt er een meldings gebeurtenis verzonden voor elke wijziging.
SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE TargetInstance ISA "Win32_LogicalDisk"
Afhankelijk van de query kunnen een gebeurtenisprovider en WMI de taak van het leveren van gebeurtenissen delen. Een gebeurtenisprovider die bijvoorbeeld gebeurtenissen van de __InstanceCreationEvent en __InstanceModificationEvent systeemklassen ondersteunt, en niet gebeurtenissen van de __InstanceDeletionEvent systeemklasse. Met de volgende query kan de gebeurtenisprovider de gebeurtenissen voor het maken en wijzigen genereren wanneer deze optreden en deze laten leveren wanneer ze worden gemaakt. Met de query kan WMI ook elke 10 (tien) seconden __InstanceDeletionEvent gebeurtenissen genereren met behulp van het polling-mechanisme.
SELECT * FROM __InstanceOperationEvent WITHIN 10 WHERE TargetInstance ISA "MyOwnClass"
U kunt ook de WITHIN-component gebruiken om een groeperingsinterval op te geven. Een groeperingsinterval is een niet-ondertekend 32-bits geheel getal dat de periode aangeeft, na ontvangst van een initiële gebeurtenis, waarbij WMI vergelijkbare gebeurtenissen moet verzamelen. Wanneer deze periode verloopt, levert WMI de statistische gebeurtenis, die bestaat uit alle vergelijkbare gebeurtenissen. Zie GROUP-componentvoor meer informatie.
Gebeurtenisconsumers die zich registreren voor vaak voorkomende gebeurtenissen, maken gebruik van een groeperingsinterval met de WITHIN-component. Het toevoegen van GROUP WITHIN aan de WHERE-component in een gebeurtenisquery resulteert in WMI die één statistische gebeurtenis verzendt in plaats van veel gebeurtenissen. De statistische gebeurtenis wordt vertegenwoordigd door de __AggregateEvent systeemklasse.
Als u een groeperingsinterval wilt opgeven, plaatst u de WITHIN-component direct na de GROUP-component.
SELECT * FROM EventClass WHERE property = value GROUP WITHIN Interval
EventClass is de gebeurtenisklasse waarvan de gebeurtenis lid is, de waarde is de waarde voor de eigenschap waarvoor de consument een melding vereist en Interval is het groeperingsinterval.
Zie Bepalen welk type gebeurtenis moet worden ontvangenvoor meer informatie.
Gebruikers van permanente gebeurtenissen kunnen alleen worden gemaakt met poll-query's als u beheerdersbevoegdheden hebt.