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
- CursorConverter.cs
- WebControlParameterProxy.cs
- Label.cs
- FrameSecurityDescriptor.cs
- CodeDOMUtility.cs
- ImageSourceValueSerializer.cs
- DynamicAttribute.cs
- SortExpressionBuilder.cs
- GraphicsContext.cs
- CodeAttributeArgumentCollection.cs
- ErrorProvider.cs
- TimeoutValidationAttribute.cs
- PresentationTraceSources.cs
- SessionStateItemCollection.cs
- HttpFileCollection.cs
- ResourceDescriptionAttribute.cs
- QuaternionAnimationUsingKeyFrames.cs
- DataBindingCollection.cs
- RSAPKCS1KeyExchangeFormatter.cs
- Stackframe.cs
- CodeTypeMemberCollection.cs
- Interlocked.cs
- XmlDownloadManager.cs
- HostedHttpRequestAsyncResult.cs
- SmiEventSink_Default.cs
- ValueHandle.cs
- AutomationPatternInfo.cs
- SmtpTransport.cs
- BeginStoryboard.cs
- ReadWriteSpinLock.cs
- NetStream.cs
- WebPartEditorCancelVerb.cs
- TreeNodeCollectionEditorDialog.cs
- CompositionAdorner.cs
- ViewValidator.cs
- BinaryNegotiation.cs
- URLMembershipCondition.cs
- NTAccount.cs
- NullableDecimalAverageAggregationOperator.cs
- BaseResourcesBuildProvider.cs
- Verify.cs
- SoapMessage.cs
- KeyEvent.cs
- SymbolPair.cs
- LocatorGroup.cs
- StrokeCollectionConverter.cs
- XPathCompileException.cs
- HierarchicalDataSourceIDConverter.cs
- ListViewItemEventArgs.cs
- ListViewInsertEventArgs.cs
- ConfigXmlText.cs
- WebPartConnectionsCancelVerb.cs
- InputScopeAttribute.cs
- RowBinding.cs
- UdpDiscoveryEndpointProvider.cs
- EntityContainerEmitter.cs
- DataGridViewCellPaintingEventArgs.cs
- SafeCryptoHandles.cs
- baseaxisquery.cs
- ScriptReference.cs
- ContentPlaceHolder.cs
- Typography.cs
- SqlRowUpdatedEvent.cs
- XmlSchemas.cs
- DataMisalignedException.cs
- ResourceKey.cs
- FragmentQueryProcessor.cs
- RegistrationServices.cs
- ResourcesBuildProvider.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- XpsS0ValidatingLoader.cs
- DoubleAnimationBase.cs
- XmlNode.cs
- UnaryQueryOperator.cs
- VersionedStream.cs
- BinaryFormatterWriter.cs
- EntryIndex.cs
- ObjectSpanRewriter.cs
- TextDecorationLocationValidation.cs
- UriScheme.cs
- TdsParameterSetter.cs
- FileDialog.cs
- WorkflowRuntimeServicesBehavior.cs
- PropertyFilter.cs
- OperationAbortedException.cs
- ContentPosition.cs
- ResourceReferenceExpression.cs
- CollectionDataContractAttribute.cs
- SQLInt16Storage.cs
- FlowLayoutPanel.cs
- DataGridColumnCollection.cs
- CodeDelegateCreateExpression.cs
- CompilationRelaxations.cs
- KeyProperty.cs
- ConfigXmlComment.cs
- CalculatedColumn.cs
- RectIndependentAnimationStorage.cs
- SimpleWorkerRequest.cs
- TaskHelper.cs
- HtmlTable.cs