private void FlushOldestEntry() { double maxPassedTime = -10; DateTime timeNow = DateTime.Now; ProviderMetadataId keyToDelete = null; //get the entry in the cache which was not accessed for the longest time. foreach (KeyValuePair <ProviderMetadataId, CacheItem> kvp in cache) { //the time difference (in ms) between the timeNow and the last used time of each entry TimeSpan timeDifference = timeNow.Subtract(kvp.Value.TheTime); //for the "unused" items (with ReferenceCount == 0) -> can possible be deleted. if (timeDifference.TotalMilliseconds >= maxPassedTime) { maxPassedTime = timeDifference.TotalMilliseconds; keyToDelete = kvp.Key; } } if (keyToDelete != null) { DeleteCacheEntry(keyToDelete); } }
public string GetOpcodeDisplayName(string ProviderName, EventLogHandle eventHandle) { lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); ProviderMetadata pm = GetProviderMetadata(key); return(NativeWrapper.EvtFormatMessageRenderName(pm.Handle, eventHandle, UnsafeNativeMethods.EvtFormatMessageFlags.EvtFormatMessageOpcode)); } }
public IEnumerable <string> GetKeywordDisplayNames(string ProviderName, EventLogHandle eventHandle) { lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); return(NativeWrapper.EvtFormatMessageRenderKeywords(this.GetProviderMetadata(key).Handle, eventHandle, Microsoft.Win32.UnsafeNativeMethods.EvtFormatMessageFlags.EvtFormatMessageKeyword)); } }
public string GetTaskDisplayName(string ProviderName, EventLogHandle eventHandle) { lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); return(NativeWrapper.EvtFormatMessageRenderName(this.GetProviderMetadata(key).Handle, eventHandle, Microsoft.Win32.UnsafeNativeMethods.EvtFormatMessageFlags.EvtFormatMessageTask)); } }
private void DeleteCacheEntry(ProviderMetadataId key) { if (this.IsProviderinCache(key)) { CacheItem item = this.cache[key]; this.cache.Remove(key); item.ProviderMetadata.Dispose(); } }
private void AddCacheEntry(ProviderMetadataId key, ProviderMetadata pm) { if (this.IsCacheFull()) { this.FlushOldestEntry(); } CacheItem item = new CacheItem(pm); this.cache.Add(key, item); }
private void AddCacheEntry(ProviderMetadataId key, ProviderMetadata pm) { if (IsCacheFull()) { FlushOldestEntry(); } CacheItem value = new CacheItem(pm); cache.Add(key, value); return; }
public string GetFormatDescription(string ProviderName, EventLogHandle eventHandle, string[] values) { lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); ProviderMetadata pm = GetProviderMetadata(key); try { return(NativeWrapper.EvtFormatMessageFormatDescription(pm.Handle, eventHandle, values)); } catch (EventLogNotFoundException) { return(null); } } }
private void DeleteCacheEntry(ProviderMetadataId key) { if (!IsProviderinCache(key)) { return; } CacheItem value = cache[key]; cache.Remove(key); value.ProviderMetadata.Dispose(); }
private ProviderMetadata GetProviderMetadata(ProviderMetadataId key) { if (!IsProviderinCache(key)) { ProviderMetadata pm; try { pm = new ProviderMetadata(key.ProviderName, _session, key.TheCultureInfo, _logfile); } catch (EventLogNotFoundException) { pm = new ProviderMetadata(key.ProviderName, _session, key.TheCultureInfo); } AddCacheEntry(key, pm); return(pm); } else { CacheItem cacheItem = _cache[key]; ProviderMetadata pm = cacheItem.ProviderMetadata; // // check Provider metadata to be sure it's hasn't been // uninstalled since last time it was used. // try { pm.CheckReleased(); UpdateCacheValueInfoForHit(cacheItem); } catch (EventLogException) { DeleteCacheEntry(key); try { pm = new ProviderMetadata(key.ProviderName, _session, key.TheCultureInfo, _logfile); } catch (EventLogNotFoundException) { pm = new ProviderMetadata(key.ProviderName, _session, key.TheCultureInfo); } AddCacheEntry(key, pm); } return(pm); } }
public string GetFormatDescription(string ProviderName, EventLogHandle eventHandle) { lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); try { ProviderMetadata pm = GetProviderMetadata(key); return(NativeWrapper.EvtFormatMessageRenderName(pm.Handle, eventHandle, UnsafeNativeMethods.EvtFormatMessageFlags.EvtFormatMessageEvent)); } catch (EventLogNotFoundException) { return(null); } } }
public override bool Equals(object obj) { ProviderMetadataId rhs = obj as ProviderMetadataId; if (rhs == null) { return(false); } if (this.providerName.Equals(rhs.providerName) && (cultureInfo == rhs.cultureInfo)) { return(true); } return(false); }
public string GetFormatDescription(string ProviderName, EventLogHandle eventHandle) { string str; lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); try { str = NativeWrapper.EvtFormatMessageRenderName(this.GetProviderMetadata(key).Handle, eventHandle, Microsoft.Win32.UnsafeNativeMethods.EvtFormatMessageFlags.EvtFormatMessageEvent); } catch (EventLogNotFoundException) { str = null; } } return str; }
public string GetFormatDescription(string ProviderName, EventLogHandle eventHandle) { string str; lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); try { str = NativeWrapper.EvtFormatMessageRenderName(this.GetProviderMetadata(key).Handle, eventHandle, Microsoft.Win32.UnsafeNativeMethods.EvtFormatMessageFlags.EvtFormatMessageEvent); } catch (EventLogNotFoundException) { str = null; } } return(str); }
private void FlushOldestEntry() { double totalMilliseconds = -10.0; DateTime now = DateTime.Now; ProviderMetadataId key = null; foreach (KeyValuePair <ProviderMetadataId, CacheItem> pair in this.cache) { TimeSpan span = now.Subtract(pair.Value.TheTime); if (span.TotalMilliseconds >= totalMilliseconds) { totalMilliseconds = span.TotalMilliseconds; key = pair.Key; } } if (key != null) { this.DeleteCacheEntry(key); } }
private ProviderMetadata GetProviderMetadata(ProviderMetadataId key) { if (!this.IsProviderinCache(key)) { ProviderMetadata metadata; try { metadata = new ProviderMetadata(key.ProviderName, this.session, key.TheCultureInfo, this.logfile); } catch (EventLogNotFoundException) { metadata = new ProviderMetadata(key.ProviderName, this.session, key.TheCultureInfo); } this.AddCacheEntry(key, metadata); return(metadata); } CacheItem cacheItem = this.cache[key]; ProviderMetadata providerMetadata = cacheItem.ProviderMetadata; try { providerMetadata.CheckReleased(); UpdateCacheValueInfoForHit(cacheItem); } catch (EventLogException) { this.DeleteCacheEntry(key); try { providerMetadata = new ProviderMetadata(key.ProviderName, this.session, key.TheCultureInfo, this.logfile); } catch (EventLogNotFoundException) { providerMetadata = new ProviderMetadata(key.ProviderName, this.session, key.TheCultureInfo); } this.AddCacheEntry(key, providerMetadata); } return(providerMetadata); }
public string GetLevelDisplayName(string ProviderName, [SecurityTreatAsSafe] EventLogHandle eventHandle) { lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); return NativeWrapper.EvtFormatMessageRenderName(this.GetProviderMetadata(key).Handle, eventHandle, UnsafeNativeMethods.EvtFormatMessageFlags.EvtFormatMessageLevel); } }
private ProviderMetadata GetProviderMetadata(ProviderMetadataId key) { if (!this.IsProviderinCache(key)) { ProviderMetadata metadata; try { metadata = new ProviderMetadata(key.ProviderName, this.session, key.TheCultureInfo, this.logfile); } catch (EventLogNotFoundException) { metadata = new ProviderMetadata(key.ProviderName, this.session, key.TheCultureInfo); } this.AddCacheEntry(key, metadata); return metadata; } CacheItem cacheItem = this.cache[key]; ProviderMetadata providerMetadata = cacheItem.ProviderMetadata; try { providerMetadata.CheckReleased(); UpdateCacheValueInfoForHit(cacheItem); } catch (EventLogException) { this.DeleteCacheEntry(key); try { providerMetadata = new ProviderMetadata(key.ProviderName, this.session, key.TheCultureInfo, this.logfile); } catch (EventLogNotFoundException) { providerMetadata = new ProviderMetadata(key.ProviderName, this.session, key.TheCultureInfo); } this.AddCacheEntry(key, providerMetadata); } return providerMetadata; }
private bool IsProviderinCache(ProviderMetadataId key) { return _cache.ContainsKey(key); }
private bool IsProviderinCache(ProviderMetadataId key) { return(this.cache.ContainsKey(key)); }
private void DeleteCacheEntry(ProviderMetadataId key) { if (!IsProviderinCache(key)) return; CacheItem value = _cache[key]; _cache.Remove(key); value.ProviderMetadata.Dispose(); }
private ProviderMetadata GetProviderMetadata(ProviderMetadataId key) { if (!IsProviderinCache(key)) { ProviderMetadata pm; try { pm = new ProviderMetadata(key.ProviderName, _session, key.TheCultureInfo, _logfile); } catch (EventLogNotFoundException) { pm = new ProviderMetadata(key.ProviderName, _session, key.TheCultureInfo); } AddCacheEntry(key, pm); return pm; } else { CacheItem cacheItem = _cache[key]; ProviderMetadata pm = cacheItem.ProviderMetadata; // // check Provider metadata to be sure it's hasn't been // uninstalled since last time it was used. // try { pm.CheckReleased(); UpdateCacheValueInfoForHit(cacheItem); } catch (EventLogException) { DeleteCacheEntry(key); try { pm = new ProviderMetadata(key.ProviderName, _session, key.TheCultureInfo, _logfile); } catch (EventLogNotFoundException) { pm = new ProviderMetadata(key.ProviderName, _session, key.TheCultureInfo); } AddCacheEntry(key, pm); } return pm; } }
private void AddCacheEntry(ProviderMetadataId key, ProviderMetadata pm) { if (IsCacheFull()) FlushOldestEntry(); CacheItem value = new CacheItem(pm); _cache.Add(key, value); return; }
public string GetFormatDescription(string ProviderName, EventLogHandle eventHandle) { lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); try { ProviderMetadata pm = GetProviderMetadata(key); return NativeWrapper.EvtFormatMessageRenderName(pm.Handle, eventHandle, UnsafeNativeMethods.EvtFormatMessageFlags.EvtFormatMessageEvent); } catch (EventLogNotFoundException) { return null; } } }
public string GetFormatDescription(string ProviderName, EventLogHandle eventHandle, string[] values) { lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); ProviderMetadata pm = GetProviderMetadata(key); try { return NativeWrapper.EvtFormatMessageFormatDescription(pm.Handle, eventHandle, values); } catch (EventLogNotFoundException) { return null; } } }
public string GetTaskDisplayName(string ProviderName, EventLogHandle eventHandle) { lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); ProviderMetadata pm = GetProviderMetadata(key); return NativeWrapper.EvtFormatMessageRenderName(pm.Handle, eventHandle, UnsafeNativeMethods.EvtFormatMessageFlags.EvtFormatMessageTask); } }
public IEnumerable<string> GetKeywordDisplayNames(string ProviderName, EventLogHandle eventHandle) { lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); ProviderMetadata pm = GetProviderMetadata(key); return NativeWrapper.EvtFormatMessageRenderKeywords(pm.Handle, eventHandle, UnsafeNativeMethods.EvtFormatMessageFlags.EvtFormatMessageKeyword); } }
public string GetOpcodeDisplayName(string ProviderName, EventLogHandle eventHandle) { lock (this) { ProviderMetadataId key = new ProviderMetadataId(ProviderName, CultureInfo.CurrentCulture); return NativeWrapper.EvtFormatMessageRenderName(this.GetProviderMetadata(key).Handle, eventHandle, Microsoft.Win32.UnsafeNativeMethods.EvtFormatMessageFlags.EvtFormatMessageOpcode); } }