#pragma namespace ( "\\\\.\\root\\cimv2" ) [ dynamic, provider("Microsoft WMI Template Provider"), crln_output_class("ITG_MonitorState"), crln_arity("1"), crln_type("DataProperty"), description("") ] class MSFT_Protocol_Vs_Icmp_Template : MSFT_TemplateBase { [key] string Name; [crln_classname("Monitor"), NotNull ] string ProtocolWatchClass; [crln_condition("Monitor"), NotNull ] string ProtocolWatchCondition; [crln_domain("Monitor"), NotNull ] string ProtocolWatchServer; [crln_domain("Monitor")] string ProtocolWatchDomain; [crln_id_prop("Monitor"), NotNull] string ProtocolCorrelationIdProperty; [crln_delay_tol("Monitor")] real32 ProtocolDelayTolerance; [crln_delay_tol("Monitor")] real32 ProtocolWindowInterval; [crln_delay_tol("Monitor")] real32 ProtocolPercentage; [crln_delay_tol("Monitor")] real32 IcmpPollInterval; [crln_delay_tol("Monitor")] real32 IcmpWindowInterval; [crln_delay_tol("Monitor")] real32 IcmpPercentage; }; [ dynamic, provider("Microsoft WMI Transient Provider")] class MSFT_Protocol_Vs_Icmp_State : MSFT_CorrelationStateBase { boolean WatchIcmpState; boolean WatchProtocolState; real64 AverageIcmpValue; real64 AverageProtocolValue ; boolean ProtocolJoinedState; boolean IcmpJoinedState; boolean WatchJoinedState; }; Instance Of MSFT_TemplateBuilder { Name = "ProtocolWatch" ; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_TimeWatchTemplate { [ template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeWatchOnProtocolStatus") ] Name ; [ template_arg("ProtocolWatchClass") ] WatchClass ; [ template_arg("ProtocolWatchCondition") ] WatchCondition ; [ template_val ( "%ProtocolCorrelationIdProperty% = \"http://%ProtocolWatchServer%/\" " "%!ConditionalSubstitution(\"AND (\",ProtocolWatchDomain)%" "%ProtocolWatchDomain%" "%!ConditionalSubstitution(\")\",ProtocolWatchDomain)%" ) ] WatchDomain ; [ template_arg("ProtocolDelayTolerance") ] DelayTolerance ; [ template_arg("ProtocolCorrelationIdProperty") ] CorrelationIdProp ; WatchTime = 0; ReminderTime = 0; }; Order = 0; } ; Instance Of MSFT_TemplateBuilder { Name = "ProtocolAverage" ; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_TimeAverageTemplate { [ template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeAverageOnProtocolStatus") ] Name ; WatchClass = "MSFT_TimeWatchState"; WatchProp = "MeetsCondition"; [ template_val ( "Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeWatchOnProtocolStatus'" ) ] WatchDomain ; CorrelationIdProp = "CorrelationId"; [ template_arg("ProtocolWindowInterval") ] WindowInterval ; [ template_arg("ProtocolDelayTolerance") ] Interval ; }; Order = 1; } ; Instance Of MSFT_TemplateBuilder { Name = "IcmpWatch" ; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_TimeWatchTemplate { [ template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeWatchOnIcmpStatus") ] Name ; WatchClass = "Win32_PingProtocolStatus"; WatchCondition = "StatusCode != 0"; DelayTolerance = 5; CorrelationIdProp = "Address"; WatchTime = 0; ReminderTime = 0; [ template_val ( "Address = '%ProtocolWatchServer%' " ) ] WatchDomain ; }; Order = 2 ; } ; Instance Of MSFT_TemplateBuilder { Name = "IcmpAverage" ; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_TimeAverageTemplate { [ template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeAverageOnIcmp") ] Name ; WatchClass = "MSFT_TimeWatchState"; WatchProp = "MeetsCondition"; [ template_val ( "Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeWatchOnIcmpStatus'" ) ] WatchDomain ; CorrelationIdProp = "CorrelationId"; [ template_arg("IcmpWindowInterval") ] WindowInterval ; [ template_arg("IcmpPollInterval") ] Interval ; }; Order = 3 ; } ; Instance Of MSFT_TemplateBuilder { Name = "Icmp_Protocol_SimpleJoin" ; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_SimpleJoinTemplate { [ template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.SimpleJoinOnHttpAndIcmpAverages") ] Name ; WatchClassA = "MSFT_TimeAverageState"; [ template_val ( "Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeAverageOnProtocolStatus'" ) ] WatchDomainA ; CorrelationIdPropA = "__Class"; [template_val ( "Average < %ProtocolPercentage%" ) ] WatchConditionA ; WatchClassB = "MSFT_TimeAverageState"; [ template_val ( "Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeAverageOnIcmp'" ) ] WatchDomainB ; CorrelationIdPropB = "__Class"; [template_val ( "Average < %IcmpPercentage%" ) ] WatchConditionB ; }; Order = 4 ; } ; Instance Of MSFT_TemplateBuilder { Name = "Icmp_Protocol_SimpleJoin_Watch" ; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_TimeWatchTemplate { [ template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeWatchOnIcmpAndHttpStatus") ] Name ; WatchClass = "MSFT_SimpleJoinState"; WatchCondition = "AMeetsCondition = TRUE And BMeetsCondition = FALSE"; [ template_val ( "Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.SimpleJoinOnHttpAndIcmpAverages'" ) ] WatchDomain ; DelayTolerance = 5; CorrelationIdProp = "__RELPATH"; WatchTime = 30 ; ReminderTime = 0; }; Order = 5 ; } ; instance of MSFT_TemplateBuilder as $CEC_ICMP { Name = "Icmp_Consumer"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_UpdatingConsumer { [template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.Icmp_Consumer")] Name ; [template_arg("Name")] Scenario; // flags = { 2 }; [template_val{ "INSERT MSFT_Protocol_Vs_Icmp_State " "( Scenario, CorrelationId, WatchIcmpState ) " "( \"MSFT_Protocol_Vs_Icmp_Template_%Name%\", \"MSFT_Protocol_Vs_Icmp_Template_%Name%\" , __EVENT.TargetInstance.MeetsCondition )" }] Commands; }; Order = 6 ; }; instance of MSFT_TemplateBuilder { Name = "Icmp_CreationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.Icmp_CreationFilter" )] Name; [template_val( "Select * from __InstanceCreationEvent " "Where " "TargetInstance isa 'MSFT_TimeWatchState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeWatchOnIcmpStatus'" ) ] FilterQuery; [template_ref($CEC_ICMP)] Instruction; }; Order = 7; }; instance of MSFT_TemplateBuilder { Name = "Icmp_ModificationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.Icmp_ModificationFilter" )] Name; [template_val( "Select * from __InstanceModificationEvent " "Where " "TargetInstance isa 'MSFT_TimeWatchState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeWatchOnIcmpStatus'") ] FilterQuery; [template_ref($CEC_ICMP)] Instruction; }; Order = 8; }; instance of MSFT_TemplateBuilder as $CEC_PROTOCOLSTATE { Name = "ProtocolState_Consumer"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_UpdatingConsumer { [template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.ProtocolState_Consumer")] Name ; [template_arg("Name")] Scenario; // flags = { 2 }; [template_val{ "INSERT MSFT_Protocol_Vs_Icmp_State " "( Scenario, CorrelationId, WatchProtocolState ) " "( \"MSFT_Protocol_Vs_Icmp_Template_%Name%\", \"MSFT_Protocol_Vs_Icmp_Template_%Name%\" , __EVENT.TargetInstance.MeetsCondition )" }] Commands; }; Order = 9 ; }; instance of MSFT_TemplateBuilder { Name = "ProtocolState_CreationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.ProtocolState_CreationFilter" )] Name; [template_val( "Select * from __InstanceCreationEvent " "Where " "TargetInstance isa 'MSFT_TimeWatchState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeWatchOnProtocolStatus'") ] FilterQuery; [template_ref($CEC_PROTOCOLSTATE)] Instruction; }; Order = 10; }; instance of MSFT_TemplateBuilder { Name = "ProtocolState_ModificationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.ProtocolState_ModificationFilter" )] Name; [template_val( "Select * from __InstanceModificationEvent " "Where " "TargetInstance isa 'MSFT_TimeWatchState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeWatchOnProtocolStatus'") ] FilterQuery; [template_ref($CEC_PROTOCOLSTATE)] Instruction; }; Order = 11; }; instance of MSFT_TemplateBuilder as $CEC_AVERAGEICMP { Name = "IcmpAverage_Consumer"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_UpdatingConsumer { [template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.IcmpAverage_Consumer")] Name ; [template_arg("Name")] Scenario; // flags = { 2 }; [template_val{ "INSERT MSFT_Protocol_Vs_Icmp_State " "( Scenario, CorrelationId, AverageIcmpValue ) " "( \"MSFT_Protocol_Vs_Icmp_Template_%Name%\", \"MSFT_Protocol_Vs_Icmp_Template_%Name%\" , __EVENT.TargetInstance.Average )" }] Commands; }; Order = 12 ; }; instance of MSFT_TemplateBuilder { Name = "IcmpAverage_CreationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.IcmpAverage_CreationFilter" )] Name; [template_val( "Select * from __InstanceCreationEvent " "Where " "TargetInstance isa 'MSFT_TimeAverageState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeAverageOnIcmp'" ) ] FilterQuery; [template_ref($CEC_AVERAGEICMP)] Instruction; }; Order = 13; }; instance of MSFT_TemplateBuilder { Name = "IcmpAverage_ModificationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.IcmpAverage_ModificationFilter" )] Name; [template_val( "Select * from __InstanceModificationEvent " "Where " "TargetInstance isa 'MSFT_TimeAverageState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeAverageOnIcmp'" ) ] FilterQuery; [template_ref($CEC_AVERAGEICMP)] Instruction; }; Order = 14; }; instance of MSFT_TemplateBuilder as $CEC_AVERAGEPROTOCOLSTATE { Name = "AverageProtocolState_Consumer"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_UpdatingConsumer { [template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.AverageProtocolState_Consumer")] Name ; [template_arg("Name")] Scenario; // flags = { 2 }; [template_val{ "INSERT MSFT_Protocol_Vs_Icmp_State " "( Scenario, CorrelationId, AverageProtocolValue ) " "( \"MSFT_Protocol_Vs_Icmp_Template_%Name%\", \"MSFT_Protocol_Vs_Icmp_Template_%Name%\" , __EVENT.TargetInstance.Average )" }] Commands; }; Order = 15 ; }; instance of MSFT_TemplateBuilder { Name = "AverageProtocolState_CreationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.AverageProtocolState_CreationFilter" )] Name; [template_val( "Select * from __InstanceCreationEvent " "Where " "TargetInstance isa 'MSFT_TimeAverageState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeAverageOnProtocolStatus'" ) ] FilterQuery; [template_ref($CEC_AVERAGEPROTOCOLSTATE)] Instruction; }; Order = 16; }; instance of MSFT_TemplateBuilder { Name = "AverageProtocolState_ModificationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.AverageProtocolState_ModificationFilter" )] Name; [template_val( "Select * from __InstanceModificationEvent " "Where " "TargetInstance isa 'MSFT_TimeAverageState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeAverageOnProtocolStatus'" ) ] FilterQuery; [template_ref($CEC_AVERAGEPROTOCOLSTATE)] Instruction; }; Order = 17; }; instance of MSFT_TemplateBuilder as $CEC_SIMPLEJOIN { Name = "Join_Consumer"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_UpdatingConsumer { [template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.Join_Consumer")] Name ; [template_arg("Name")] Scenario; // flags = { 2 }; [template_val{ "INSERT MSFT_Protocol_Vs_Icmp_State " "( Scenario, CorrelationId, ProtocolJoinedState , IcmpJoinedState ) " "( \"MSFT_Protocol_Vs_Icmp_Template_%Name%\", \"MSFT_Protocol_Vs_Icmp_Template_%Name%\" , __EVENT.TargetInstance.AMeetsCondition , __EVENT.TargetInstance.BMeetsCondition )" }] Commands; }; Order = 18 ; }; instance of MSFT_TemplateBuilder { Name = "Join_CreationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.Join_CreationFilter" )] Name; [template_val( "Select * from __InstanceCreationEvent " "Where " "TargetInstance isa 'MSFT_SimpleJoinState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.SimpleJoinOnHttpAndIcmpAverages'" ) ] FilterQuery; [template_ref($CEC_SIMPLEJOIN)] Instruction; }; Order = 19; }; instance of MSFT_TemplateBuilder { Name = "Join_ModificationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.Join_ModificationFilter" )] Name; [template_val( "Select * from __InstanceModificationEvent " "Where " "TargetInstance isa 'MSFT_SimpleJoinState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.SimpleJoinOnHttpAndIcmpAverages'" ) ] FilterQuery; [template_ref($CEC_SIMPLEJOIN)] Instruction; }; Order = 20; }; instance of MSFT_TemplateBuilder as $CEC_WATCHSIMPLEJOIN { Name = "WatchJoin_Consumer"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_UpdatingConsumer { [template_val("MSFT_Protocol_Vs_Icmp_Template_%Name%.WatchJoin_Consumer")] Name ; [template_arg("Name")] Scenario; // flags = { 2 }; [template_val{ "INSERT MSFT_Protocol_Vs_Icmp_State " "( Scenario, CorrelationId, WatchJoinedState ) " "( \"MSFT_Protocol_Vs_Icmp_Template_%Name%\", \"MSFT_Protocol_Vs_Icmp_Template_%Name%\" , __EVENT.TargetInstance.MeetsCondition )" }] Commands; }; Order = 21 ; }; instance of MSFT_TemplateBuilder { Name = "WatchJoin_CreationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.WatchJoin_CreationFilter" )] Name; [template_val( "Select * from __InstanceCreationEvent " "Where " "TargetInstance isa 'MSFT_TimeWatchState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeWatchOnIcmpAndHttpStatus'" ) ] FilterQuery; [template_ref($CEC_WATCHSIMPLEJOIN)] Instruction; }; Order = 22 ; }; instance of MSFT_TemplateBuilder { Name = "WatchJoin_ModificationFilter"; Template = "MSFT_Protocol_Vs_Icmp_Template"; TemplateObject = instance of MSFT_ConsumerFilterBindingTemplate { [template_val( "MSFT_Protocol_Vs_Icmp_Template_%Name%.WatchJoin_ModificationFilter" )] Name; [template_val( "Select * from __InstanceModificationEvent " "Where " "TargetInstance isa 'MSFT_TimeWatchState' And " "TargetInstance.Scenario = 'MSFT_Protocol_Vs_Icmp_Template_%Name%.TimeWatchOnIcmpAndHttpStatus'" ) ] FilterQuery; [template_ref($CEC_WATCHSIMPLEJOIN)] Instruction; }; Order = 23 ; };