Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Utility / Trace.cs / 1305600 / Trace.cs
/****************************************************************************\ * * File: Trace.cs * * Description: * Implements ETW tracing for Avalon Managed Code * * Copyright (C) 2001 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ #if !SILVERLIGHTXAML using System.Collections; using System.Diagnostics.Eventing; using System.Diagnostics; using System.Runtime.InteropServices; using System.Security.Permissions; using System.Security; using System.Threading; using System; using MS.Internal.WindowsBase; #if SYSTEM_XAML namespace MS.Internal.Xaml #else namespace MS.Utility #endif { #region Trace static internal partial class EventTrace { static readonly internal TraceProvider EventProvider; // EasyTraceEvent // Checks the keyword and level before emiting the event static internal void EasyTraceEvent(Keyword keywords, Event eventID) { if (IsEnabled(keywords, Level.Info)) { EventProvider.TraceEvent(eventID, keywords, Level.Info); } } // EasyTraceEvent // Checks the keyword and level before emiting the event static internal void EasyTraceEvent(Keyword keywords, Level level, Event eventID) { if (IsEnabled(keywords, level)) { EventProvider.TraceEvent(eventID, keywords, level); } } // EasyTraceEvent // Checks the keyword and level before emiting the event static internal void EasyTraceEvent(Keyword keywords, Event eventID, object param1) { if (IsEnabled(keywords, Level.Info)) { EventProvider.TraceEvent(eventID, keywords, Level.Info, param1); } } // EasyTraceEvent // Checks the keyword and level before emiting the event static internal void EasyTraceEvent(Keyword keywords, Level level, Event eventID, object param1) { if (IsEnabled(keywords, level)) { EventProvider.TraceEvent(eventID, keywords, level, param1); } } // EasyTraceEvent // Checks the keyword and level before emiting the event static internal void EasyTraceEvent(Keyword keywords, Event eventID, object param1, object param2) { if (IsEnabled(keywords, Level.Info)) { EventProvider.TraceEvent(eventID, keywords, Level.Info, param1, param2); } } static internal void EasyTraceEvent(Keyword keywords, Level level, Event eventID, object param1, object param2) { if (IsEnabled(keywords, Level.Info)) { EventProvider.TraceEvent(eventID, keywords, Level.Info, param1, param2); } } // EasyTraceEvent // Checks the keyword and level before emiting the event static internal void EasyTraceEvent(Keyword keywords, Event eventID, object param1, object param2, object param3) { if (IsEnabled(keywords, Level.Info)) { EventProvider.TraceEvent(eventID, keywords, Level.Info, param1, param2, param3); } } #region Trace related enumerations public enum LayoutSource : byte { LayoutManager, HwndSource_SetLayoutSize, HwndSource_WMSIZE } #endregion ////// Callers use this to check if they should be logging. /// static internal bool IsEnabled(Keyword flag, Level level) { return EventProvider.IsEnabled(flag, level); } ////// Internal operations associated with initializing the event provider and /// monitoring the Dispatcher and input components. /// ////// Critical: This calls critical code in TraceProvider /// TreatAsSafe: it generates the GUID that is passed into the TraceProvider /// WPF versions prior to 4.0 used provider guid: {a42c77db-874f-422e-9b44-6d89fe2bd3e5} /// [SecurityCritical, SecurityTreatAsSafe] static EventTrace() { Guid providerGuid = new Guid("E13B77A8-14B6-11DE-8069-001B212B5009"); if (Environment.OSVersion.Version.Major < 6 || IsClassicETWRegistryEnabled()) { EventProvider = new ClassicTraceProvider(); } else { EventProvider = new ManifestTraceProvider(); } EventProvider.Register(providerGuid); } [SecurityCritical] static bool IsClassicETWRegistryEnabled() { try { string regKey = @"HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics\"; new RegistryPermission(RegistryPermissionAccess.Read, regKey).Assert(); return int.Equals(1, Microsoft.Win32.Registry.GetValue(regKey, "ClassicETW", 0)); } finally { RegistryPermission.RevertAssert(); } } } #endregion Trace } #endif // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- VBCodeProvider.cs
- DelimitedListTraceListener.cs
- ProcessModuleCollection.cs
- ServicePointManagerElement.cs
- BinaryParser.cs
- RepeaterItemCollection.cs
- PageThemeCodeDomTreeGenerator.cs
- HttpRequestBase.cs
- CheckBoxField.cs
- BamlRecordWriter.cs
- XmlSchemaObjectTable.cs
- EditorAttribute.cs
- Query.cs
- SRef.cs
- ProxyWebPart.cs
- ResourceManagerWrapper.cs
- FormClosedEvent.cs
- DataBinding.cs
- ThreadStartException.cs
- MobileRedirect.cs
- Ray3DHitTestResult.cs
- baseaxisquery.cs
- InheritablePropertyChangeInfo.cs
- LongValidatorAttribute.cs
- EntityReference.cs
- MimeTypePropertyAttribute.cs
- XLinq.cs
- UndoUnit.cs
- SecurityKeyUsage.cs
- FreeFormDesigner.cs
- NativeActivityTransactionContext.cs
- SignerInfo.cs
- RayHitTestParameters.cs
- Documentation.cs
- WCFBuildProvider.cs
- FrameworkPropertyMetadata.cs
- Utilities.cs
- GeometryConverter.cs
- ScalarType.cs
- TagNameToTypeMapper.cs
- ScriptingProfileServiceSection.cs
- Matrix.cs
- AmbientValueAttribute.cs
- CapabilitiesSection.cs
- DateTimeConverter.cs
- DoubleStorage.cs
- ResourceProviderFactory.cs
- PropagatorResult.cs
- DictionaryContent.cs
- DifferencingCollection.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- DeferredElementTreeState.cs
- TextPatternIdentifiers.cs
- HtmlListAdapter.cs
- SortDescription.cs
- DbDeleteCommandTree.cs
- ProxyManager.cs
- SafePointer.cs
- WindowsFormsSectionHandler.cs
- TextBox.cs
- WindowsGraphics2.cs
- DataRow.cs
- DataControlExtensions.cs
- DbConvert.cs
- _TLSstream.cs
- ToolStripTextBox.cs
- StringExpressionSet.cs
- EqualityComparer.cs
- SelectedDatesCollection.cs
- ReadOnlyDataSource.cs
- OletxCommittableTransaction.cs
- ControlCachePolicy.cs
- AppDomain.cs
- SettingsBase.cs
- CreateParams.cs
- CodeTypeDeclaration.cs
- SendingRequestEventArgs.cs
- StructuralObject.cs
- Axis.cs
- EUCJPEncoding.cs
- ItemAutomationPeer.cs
- HMACSHA384.cs
- WebCategoryAttribute.cs
- WeakEventTable.cs
- UrlPropertyAttribute.cs
- TrustManagerPromptUI.cs
- Variant.cs
- ZipIOCentralDirectoryBlock.cs
- ColorTransformHelper.cs
- SR.cs
- HwndHostAutomationPeer.cs
- Window.cs
- DataGridViewAccessibleObject.cs
- OpacityConverter.cs
- DateTimeValueSerializerContext.cs
- XsltLoader.cs
- CodeTypeDeclarationCollection.cs
- ListDataBindEventArgs.cs
- SortDescription.cs
- HideDisabledControlAdapter.cs