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
- SessionIDManager.cs
- XmlAttributes.cs
- WebProxyScriptElement.cs
- FileSystemEventArgs.cs
- TreeView.cs
- CompiledRegexRunnerFactory.cs
- CustomAssemblyResolver.cs
- PerformanceCounter.cs
- MonthChangedEventArgs.cs
- DeferredTextReference.cs
- ViewKeyConstraint.cs
- Point.cs
- XmlSchemaSimpleTypeList.cs
- SessionSwitchEventArgs.cs
- WCFModelStrings.Designer.cs
- TableDetailsRow.cs
- EditorPartCollection.cs
- CustomAttribute.cs
- SpecularMaterial.cs
- HtmlAnchor.cs
- MorphHelper.cs
- ActivityTypeDesigner.xaml.cs
- DataGridViewCellValidatingEventArgs.cs
- XmlAnyAttributeAttribute.cs
- SqlDataReaderSmi.cs
- LabelLiteral.cs
- _ProxyRegBlob.cs
- ObjectPersistData.cs
- DoubleCollection.cs
- Point3DAnimationBase.cs
- PropertyCollection.cs
- RequestQueryParser.cs
- NamedPipeChannelListener.cs
- dsa.cs
- ProfileEventArgs.cs
- WasEndpointConfigContainer.cs
- CustomWebEventKey.cs
- DataGridViewIntLinkedList.cs
- SelfIssuedAuthProofToken.cs
- WindowsStartMenu.cs
- Certificate.cs
- RMEnrollmentPage2.cs
- BlockExpression.cs
- ResourceReferenceExpression.cs
- DataSourceXmlClassAttribute.cs
- DependencyPropertyConverter.cs
- WhitespaceReader.cs
- WMIInterop.cs
- CursorInteropHelper.cs
- SponsorHelper.cs
- Utils.cs
- CompatibleIComparer.cs
- DataTable.cs
- Attributes.cs
- ToolStripRenderer.cs
- ConfigurationSettings.cs
- StringInfo.cs
- CommandCollectionEditor.cs
- DataProtection.cs
- AbandonedMutexException.cs
- TemplatePropertyEntry.cs
- SupportedAddressingMode.cs
- FactoryRecord.cs
- Viewport2DVisual3D.cs
- InternalConfirm.cs
- MissingManifestResourceException.cs
- WindowsSysHeader.cs
- LinqTreeNodeEvaluator.cs
- SqlTypesSchemaImporter.cs
- BaseWebProxyFinder.cs
- MulticastOption.cs
- CryptoKeySecurity.cs
- PanningMessageFilter.cs
- PolygonHotSpot.cs
- ImageBrush.cs
- BitmapEffectInput.cs
- RecordsAffectedEventArgs.cs
- ToolboxComponentsCreatedEventArgs.cs
- DoubleAnimationClockResource.cs
- TemplatePagerField.cs
- OdbcException.cs
- ProgressiveCrcCalculatingStream.cs
- SmtpNegotiateAuthenticationModule.cs
- TreeViewEvent.cs
- NetworkInterface.cs
- TreeView.cs
- PropertySegmentSerializer.cs
- IncrementalCompileAnalyzer.cs
- WasAdminWrapper.cs
- TextEditorTyping.cs
- CommonRemoteMemoryBlock.cs
- SoapCommonClasses.cs
- QilInvoke.cs
- FontUnitConverter.cs
- DataGridCellAutomationPeer.cs
- TagMapCollection.cs
- Italic.cs
- UnaryExpression.cs
- SimpleApplicationHost.cs
- BindingExpressionUncommonField.cs