Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Diagnostics / Eventing / Reader / EventLogPropertySelector.cs / 1305376 / EventLogPropertySelector.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: EventLogPropertySelector ** ** Purpose: ** Public class that encapsulates the information for fast ** access to Event Values of an EventLogRecord. Implements ** the EventPropertyContext abstract class. An instance of this ** class is constructed and then passed to ** EventLogRecord.GetEventPropertyValues. ** ============================================================*/ using System; using System.Collections.Generic; using Microsoft.Win32; namespace System.Diagnostics.Eventing.Reader { ////// Encapsulates the information for fast access to Event Values /// of an EventLogRecord. An instance of this class is constructed /// and then passed to EventLogRecord.GetEventPropertyValues. /// [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class EventLogPropertySelector : IDisposable { // // access to the data member reference is safe, while // invoking methods on it is marked SecurityCritical as appropriate. // private EventLogHandle renderContextHandleValues; [System.Security.SecurityCritical] public EventLogPropertySelector(IEnumerablepropertyQueries) { EventLogPermissionHolder.GetEventLogPermission().Demand(); if (propertyQueries == null) throw new ArgumentNullException("propertyQueries"); string[] paths; ICollection coll = propertyQueries as ICollection ; if (coll != null) { paths = new string[coll.Count]; coll.CopyTo(paths, 0); } else { List queries; queries = new List (propertyQueries); paths = queries.ToArray(); } renderContextHandleValues = NativeWrapper.EvtCreateRenderContext(paths.Length, paths, UnsafeNativeMethods.EvtRenderContextFlags.EvtRenderContextValues); } internal EventLogHandle Handle { // just returning reference to security critical type, the methods // of that type are protected by SecurityCritical as appropriate. get { return renderContextHandleValues; } } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } [System.Security.SecuritySafeCritical] protected virtual void Dispose(bool disposing) { if (disposing) { EventLogPermissionHolder.GetEventLogPermission().Demand(); } if (renderContextHandleValues != null && !renderContextHandleValues.IsInvalid) renderContextHandleValues.Dispose(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: EventLogPropertySelector ** ** Purpose: ** Public class that encapsulates the information for fast ** access to Event Values of an EventLogRecord. Implements ** the EventPropertyContext abstract class. An instance of this ** class is constructed and then passed to ** EventLogRecord.GetEventPropertyValues. ** ============================================================*/ using System; using System.Collections.Generic; using Microsoft.Win32; namespace System.Diagnostics.Eventing.Reader { /// /// Encapsulates the information for fast access to Event Values /// of an EventLogRecord. An instance of this class is constructed /// and then passed to EventLogRecord.GetEventPropertyValues. /// [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class EventLogPropertySelector : IDisposable { // // access to the data member reference is safe, while // invoking methods on it is marked SecurityCritical as appropriate. // private EventLogHandle renderContextHandleValues; [System.Security.SecurityCritical] public EventLogPropertySelector(IEnumerablepropertyQueries) { EventLogPermissionHolder.GetEventLogPermission().Demand(); if (propertyQueries == null) throw new ArgumentNullException("propertyQueries"); string[] paths; ICollection coll = propertyQueries as ICollection ; if (coll != null) { paths = new string[coll.Count]; coll.CopyTo(paths, 0); } else { List queries; queries = new List (propertyQueries); paths = queries.ToArray(); } renderContextHandleValues = NativeWrapper.EvtCreateRenderContext(paths.Length, paths, UnsafeNativeMethods.EvtRenderContextFlags.EvtRenderContextValues); } internal EventLogHandle Handle { // just returning reference to security critical type, the methods // of that type are protected by SecurityCritical as appropriate. get { return renderContextHandleValues; } } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } [System.Security.SecuritySafeCritical] protected virtual void Dispose(bool disposing) { if (disposing) { EventLogPermissionHolder.GetEventLogPermission().Demand(); } if (renderContextHandleValues != null && !renderContextHandleValues.IsInvalid) renderContextHandleValues.Dispose(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeDefaultValueExpression.cs
- BrowsableAttribute.cs
- ManualResetEvent.cs
- AlignmentYValidation.cs
- DesignerObjectListAdapter.cs
- XPathParser.cs
- EventLog.cs
- Facet.cs
- NumberFunctions.cs
- DataTemplate.cs
- PointLightBase.cs
- DataControlPagerLinkButton.cs
- FormatVersion.cs
- OleDbPropertySetGuid.cs
- GestureRecognizer.cs
- PrintPreviewDialog.cs
- RecognizedPhrase.cs
- StaticContext.cs
- XomlCompilerResults.cs
- CompilerErrorCollection.cs
- XmlDataSourceView.cs
- BatchWriter.cs
- Accessors.cs
- TemplatedMailWebEventProvider.cs
- EllipseGeometry.cs
- DocumentSequence.cs
- OleTxTransaction.cs
- IndependentAnimationStorage.cs
- AccessKeyManager.cs
- TransformConverter.cs
- DeviceSpecificChoiceCollection.cs
- GeometryConverter.cs
- FileIOPermission.cs
- ScriptingProfileServiceSection.cs
- ExpandedWrapper.cs
- ElapsedEventArgs.cs
- UnmanagedHandle.cs
- LogicalTreeHelper.cs
- COM2ColorConverter.cs
- BinaryReader.cs
- CapiHashAlgorithm.cs
- ReverseInheritProperty.cs
- StrongNameIdentityPermission.cs
- ResourceKey.cs
- XsdCachingReader.cs
- IdentityManager.cs
- DataServiceExpressionVisitor.cs
- ServerIdentity.cs
- DocumentApplication.cs
- ConfigXmlText.cs
- HtmlControlPersistable.cs
- ValidationErrorEventArgs.cs
- StrongNameUtility.cs
- TreeNodeBindingCollection.cs
- SecurityTokenParameters.cs
- DataGridViewIntLinkedList.cs
- DisplayInformation.cs
- OleDbCommand.cs
- Composition.cs
- TrustLevelCollection.cs
- TypeExtensionConverter.cs
- SliderAutomationPeer.cs
- IdentityModelDictionary.cs
- WebEventCodes.cs
- RemotingAttributes.cs
- StsCommunicationException.cs
- SqlUnionizer.cs
- ManagementDateTime.cs
- VectorConverter.cs
- NumberFormatInfo.cs
- ProtectedConfigurationProviderCollection.cs
- InitializationEventAttribute.cs
- HybridWebProxyFinder.cs
- basecomparevalidator.cs
- XmlTextReaderImplHelpers.cs
- ToolBarPanel.cs
- ToolboxItem.cs
- NullableDecimalMinMaxAggregationOperator.cs
- ExclusiveNamedPipeTransportManager.cs
- PageParserFilter.cs
- StringDictionary.cs
- BinaryObjectReader.cs
- RoleManagerModule.cs
- PasswordTextNavigator.cs
- Perspective.cs
- CacheMemory.cs
- DiscreteKeyFrames.cs
- mactripleDES.cs
- TextChangedEventArgs.cs
- TextBox.cs
- ZipIOCentralDirectoryBlock.cs
- SystemColors.cs
- WindowsClientElement.cs
- IndexingContentUnit.cs
- WindowsContainer.cs
- MgmtConfigurationRecord.cs
- Helpers.cs
- SmtpNegotiateAuthenticationModule.cs
- HttpCapabilitiesBase.cs
- ListControlConvertEventArgs.cs