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
- GlyphShapingProperties.cs
- RemotingException.cs
- MetadataSet.cs
- InvalidWorkflowException.cs
- ExpressionBuilder.cs
- ToolStripItem.cs
- PropertyValueChangedEvent.cs
- DataBindingExpressionBuilder.cs
- DataKeyCollection.cs
- MultiPageTextView.cs
- MarkupExtensionReturnTypeAttribute.cs
- CodeThrowExceptionStatement.cs
- HtmlInputHidden.cs
- WindowsSidIdentity.cs
- Matrix3D.cs
- ContainerActivationHelper.cs
- CodeCompiler.cs
- CompoundFileStreamReference.cs
- CompleteWizardStep.cs
- Win32SafeHandles.cs
- _IPv4Address.cs
- EditingCommands.cs
- FastEncoderWindow.cs
- ProcessHostMapPath.cs
- TdsParserStateObject.cs
- AssemblyResourceLoader.cs
- ResetableIterator.cs
- SafeMILHandleMemoryPressure.cs
- ThreadLocal.cs
- PathSegment.cs
- BinaryUtilClasses.cs
- WebPartEditorApplyVerb.cs
- HwndHost.cs
- FontStretch.cs
- RemotingConfigParser.cs
- DataGridRowClipboardEventArgs.cs
- TreeBuilder.cs
- ServiceBehaviorAttribute.cs
- XPathNodeHelper.cs
- SerializationIncompleteException.cs
- HttpModulesSection.cs
- Button.cs
- EmbeddedObject.cs
- objectquery_tresulttype.cs
- DataKeyArray.cs
- SerializationStore.cs
- FormViewPagerRow.cs
- ExpandSegment.cs
- DesignerTransaction.cs
- TextRangeEditLists.cs
- VersionPair.cs
- ElementMarkupObject.cs
- ObjectMemberMapping.cs
- GuidConverter.cs
- Column.cs
- DocumentViewerAutomationPeer.cs
- _TimerThread.cs
- TcpAppDomainProtocolHandler.cs
- Marshal.cs
- ServiceDeploymentInfo.cs
- VirtualDirectoryMappingCollection.cs
- SafeEventLogReadHandle.cs
- BinaryFormatter.cs
- SqlRowUpdatingEvent.cs
- WindowsGraphicsCacheManager.cs
- ConsumerConnectionPointCollection.cs
- NameNode.cs
- WebPartCatalogCloseVerb.cs
- RelOps.cs
- ManipulationDelta.cs
- WinInetCache.cs
- SystemWebCachingSectionGroup.cs
- TextChange.cs
- ExpressionBuilder.cs
- EmbeddedMailObjectsCollection.cs
- UIPermission.cs
- BitHelper.cs
- Number.cs
- DispatchWrapper.cs
- CodeAccessSecurityEngine.cs
- SchemaAttDef.cs
- FullTextLine.cs
- SubqueryRules.cs
- ApplicationServiceManager.cs
- Compilation.cs
- JavaScriptObjectDeserializer.cs
- MimeXmlImporter.cs
- FullTextBreakpoint.cs
- TypedTableGenerator.cs
- Lease.cs
- BooleanConverter.cs
- ZipIOLocalFileBlock.cs
- PrimitiveSchema.cs
- XmlArrayItemAttributes.cs
- BamlLocalizableResourceKey.cs
- FileDialogCustomPlacesCollection.cs
- MenuAutoFormat.cs
- SafeNativeMethods.cs
- SoapReflectionImporter.cs
- PolyBezierSegmentFigureLogic.cs