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
- cookie.cs
- unsafenativemethodstextservices.cs
- IconBitmapDecoder.cs
- SignedInfo.cs
- SqlTrackingService.cs
- ipaddressinformationcollection.cs
- GZipStream.cs
- SHA384CryptoServiceProvider.cs
- MobileUITypeEditor.cs
- webproxy.cs
- PathFigure.cs
- UpdateCommand.cs
- CodeMethodReturnStatement.cs
- ListControl.cs
- StaticFileHandler.cs
- SettingsBase.cs
- IndexOutOfRangeException.cs
- ArgumentDirectionHelper.cs
- Column.cs
- DefaultEventAttribute.cs
- DefaultPrintController.cs
- WCFBuildProvider.cs
- State.cs
- DescendantOverDescendantQuery.cs
- XamlInt32CollectionSerializer.cs
- AccessControlList.cs
- EndpointDiscoveryMetadata11.cs
- PaginationProgressEventArgs.cs
- UpdateException.cs
- KeyboardDevice.cs
- InternalTypeHelper.cs
- ComboBoxItem.cs
- JoinGraph.cs
- Choices.cs
- NameValueSectionHandler.cs
- GridViewPageEventArgs.cs
- OrderedDictionaryStateHelper.cs
- ToolStripItem.cs
- Image.cs
- ResourceSet.cs
- JavaScriptObjectDeserializer.cs
- QuaternionValueSerializer.cs
- CodeSnippetCompileUnit.cs
- ComponentCache.cs
- SourceElementsCollection.cs
- ThemeDirectoryCompiler.cs
- SqlExpander.cs
- BindingList.cs
- SByteConverter.cs
- RectAnimationUsingKeyFrames.cs
- CompositeDataBoundControl.cs
- DataViewManagerListItemTypeDescriptor.cs
- AudienceUriMode.cs
- NavigationPropertyEmitter.cs
- BorderSidesEditor.cs
- DesignerVerbCollection.cs
- DependencyPropertyValueSerializer.cs
- HandlerMappingMemo.cs
- SqlDataSourceSelectingEventArgs.cs
- ResourceReader.cs
- LineUtil.cs
- SafeLibraryHandle.cs
- TextOutput.cs
- RemotingException.cs
- securestring.cs
- HttpProfileGroupBase.cs
- HyperLinkColumn.cs
- UTF32Encoding.cs
- TemplateBuilder.cs
- LicenseContext.cs
- XmlSchemaAll.cs
- QuadraticBezierSegment.cs
- BitmapEffectGeneralTransform.cs
- NativeMethodsOther.cs
- QueryCacheManager.cs
- ShapingWorkspace.cs
- PublisherMembershipCondition.cs
- RefreshPropertiesAttribute.cs
- ExpressionBuilder.cs
- SqlUserDefinedAggregateAttribute.cs
- HttpModule.cs
- Descriptor.cs
- ApplicationTrust.cs
- XamlReaderHelper.cs
- PolyQuadraticBezierSegment.cs
- Rules.cs
- FloaterBaseParagraph.cs
- DataGridClipboardHelper.cs
- DynamicAttribute.cs
- MissingSatelliteAssemblyException.cs
- NavigationPropertyEmitter.cs
- RowBinding.cs
- XmlSchemaComplexContent.cs
- XPathScanner.cs
- CanonicalFormWriter.cs
- util.cs
- LinearKeyFrames.cs
- CollectionDataContractAttribute.cs
- Panel.cs
- DataDocumentXPathNavigator.cs