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
- ProfilePropertySettingsCollection.cs
- CustomErrorsSectionWrapper.cs
- StringWriter.cs
- HostProtectionPermission.cs
- VisualStyleRenderer.cs
- HwndMouseInputProvider.cs
- SecuritySessionFilter.cs
- Icon.cs
- counter.cs
- WebReferencesBuildProvider.cs
- SerializationFieldInfo.cs
- XmlSiteMapProvider.cs
- DesignerAttribute.cs
- MimeFormReflector.cs
- SafeViewOfFileHandle.cs
- DocumentViewerBaseAutomationPeer.cs
- ParameterCollectionEditor.cs
- InvalidDataException.cs
- ScaleTransform3D.cs
- Transform3D.cs
- RenderTargetBitmap.cs
- SelectorItemAutomationPeer.cs
- ScriptResourceAttribute.cs
- StringUtil.cs
- ListViewItemMouseHoverEvent.cs
- ScriptingWebServicesSectionGroup.cs
- DocumentApplicationJournalEntry.cs
- HtmlContainerControl.cs
- AdCreatedEventArgs.cs
- OdbcParameter.cs
- TypographyProperties.cs
- ObjectComplexPropertyMapping.cs
- IpcChannelHelper.cs
- NullableIntMinMaxAggregationOperator.cs
- TextBounds.cs
- ObjectDataSourceWizardForm.cs
- BrushConverter.cs
- ControlCachePolicy.cs
- DataContractSerializerSection.cs
- MethodImplAttribute.cs
- UnionExpr.cs
- CqlWriter.cs
- ResizeGrip.cs
- KeyFrames.cs
- MeasurementDCInfo.cs
- DocumentReference.cs
- ToolBarPanel.cs
- OdbcFactory.cs
- TextureBrush.cs
- XmlDataSourceNodeDescriptor.cs
- DrawingState.cs
- PageSetupDialog.cs
- XmlSchemaSimpleTypeUnion.cs
- PaintEvent.cs
- DynamicMetaObject.cs
- ZoneMembershipCondition.cs
- Permission.cs
- DesignerView.cs
- SerialPort.cs
- ChtmlSelectionListAdapter.cs
- GeneralTransform3DGroup.cs
- RightsManagementPermission.cs
- MenuStrip.cs
- COMException.cs
- GeometryGroup.cs
- MultiPageTextView.cs
- StoragePropertyMapping.cs
- ChineseLunisolarCalendar.cs
- RealProxy.cs
- WebConfigurationHost.cs
- CodeAttributeArgument.cs
- CheckBoxStandardAdapter.cs
- DesignerContextDescriptor.cs
- ButtonPopupAdapter.cs
- OdbcPermission.cs
- StringStorage.cs
- FilteredReadOnlyMetadataCollection.cs
- StringUtil.cs
- AnimationClockResource.cs
- ActivityDesigner.cs
- PersianCalendar.cs
- ProcessInputEventArgs.cs
- RelationshipDetailsRow.cs
- PasswordRecovery.cs
- SchemaType.cs
- JsonServiceDocumentSerializer.cs
- WindowsGraphics.cs
- ResourceAttributes.cs
- MbpInfo.cs
- ReadOnlyCollectionBase.cs
- SqlDataSourceSummaryPanel.cs
- SymmetricAlgorithm.cs
- ShapeTypeface.cs
- CurrencyManager.cs
- DefaultPropertyAttribute.cs
- RadioButton.cs
- Process.cs
- SplayTreeNode.cs
- ReadOnlyDictionary.cs
- ValidationPropertyAttribute.cs