internal MSExchangeStoreDriverDeliveryAgentInstance(string instanceName, MSExchangeStoreDriverDeliveryAgentInstance autoUpdateTotalInstance) : base(instanceName, "MSExchange Delivery Store Driver Agents")
        {
            bool flag = false;
            List <ExPerformanceCounter> list = new List <ExPerformanceCounter>();

            try
            {
                this.DeliveryAgentFailures = new ExPerformanceCounter(base.CategoryName, "StoreDriverDelivery Agent Failure", instanceName, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.DeliveryAgentFailures, new ExPerformanceCounter[0]);
                list.Add(this.DeliveryAgentFailures);
                long num = this.DeliveryAgentFailures.RawValue;
                num += 1L;
                flag = true;
            }
            finally
            {
                if (!flag)
                {
                    foreach (ExPerformanceCounter exPerformanceCounter in list)
                    {
                        exPerformanceCounter.Close();
                    }
                }
            }
            this.counters = list.ToArray();
        }
        private static StoreDriverDeliveryAgentPerfCounters.InstanceEntry CreateInstanceEntry(string agentName)
        {
            MSExchangeStoreDriverDeliveryAgentInstance msexchangeStoreDriverDeliveryAgentInstance = null;

            try
            {
                if (agentName != null)
                {
                    msexchangeStoreDriverDeliveryAgentInstance = MSExchangeStoreDriverDeliveryAgent.GetInstance(agentName);
                }
            }
            catch (InvalidOperationException arg)
            {
                TraceHelper.StoreDriverDeliveryTracer.TraceFail <string, InvalidOperationException>(TraceHelper.MessageProbeActivityId, 0L, "Get StoreDriverDelivery agent PerfCounters Instance {0} failed due to: {1}", agentName, arg);
            }
            if (msexchangeStoreDriverDeliveryAgentInstance == null)
            {
                return(null);
            }
            return(new StoreDriverDeliveryAgentPerfCounters.InstanceEntry(msexchangeStoreDriverDeliveryAgentInstance));
        }
 internal InstanceEntry(MSExchangeStoreDriverDeliveryAgentInstance perfCounterInstance)
 {
     this.PerfCounterInstance          = perfCounterInstance;
     this.DeliveryAgentFailuresCounter = new SlidingPercentageCounter(StoreDriverDeliveryAgentPerfCounters.SlidingWindowLength, StoreDriverDeliveryAgentPerfCounters.SlidingBucketLength, true);
 }