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
- SQLInt64.cs
- SchemaMapping.cs
- ConstraintStruct.cs
- ConfigurationFileMap.cs
- SafeCertificateStore.cs
- ControlIdConverter.cs
- BufferedGraphics.cs
- DataGridView.cs
- CursorConverter.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- ConfigurationValue.cs
- ComponentRenameEvent.cs
- Image.cs
- StrongTypingException.cs
- ColorBlend.cs
- CompositeTypefaceMetrics.cs
- ADRoleFactory.cs
- SqlCaseSimplifier.cs
- Latin1Encoding.cs
- TemplateControlParser.cs
- WorkflowTraceTransfer.cs
- Binding.cs
- NCryptSafeHandles.cs
- SqlLiftIndependentRowExpressions.cs
- BamlVersionHeader.cs
- SqlLiftWhereClauses.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- ProcessProtocolHandler.cs
- DependentList.cs
- CurrencyManager.cs
- DataGridViewDataConnection.cs
- StringDictionary.cs
- ViewManager.cs
- HyperLinkColumn.cs
- PersonalizationStateQuery.cs
- SplitContainer.cs
- GenericRootAutomationPeer.cs
- ConsumerConnectionPoint.cs
- ManipulationDelta.cs
- _OSSOCK.cs
- ValueConversionAttribute.cs
- DataGridItemEventArgs.cs
- SoapUnknownHeader.cs
- BufferedReadStream.cs
- FtpRequestCacheValidator.cs
- ArithmeticException.cs
- RMPermissions.cs
- XmlSerializationWriter.cs
- EmptyControlCollection.cs
- BorderGapMaskConverter.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- UserMapPath.cs
- InternalPermissions.cs
- MultiPartWriter.cs
- ColorTransform.cs
- SqlAliaser.cs
- SoapObjectReader.cs
- PriorityQueue.cs
- DesignerActionUIService.cs
- SessionEndingCancelEventArgs.cs
- DataGridViewRowHeaderCell.cs
- TagPrefixAttribute.cs
- CellPartitioner.cs
- FreezableCollection.cs
- SpeakInfo.cs
- SelectionHighlightInfo.cs
- GraphicsPath.cs
- FrameAutomationPeer.cs
- httpserverutility.cs
- MachineKey.cs
- FontUnitConverter.cs
- SoapIncludeAttribute.cs
- ProcessModuleCollection.cs
- WebBrowserPermission.cs
- CancellationTokenRegistration.cs
- FloaterBaseParagraph.cs
- PageContent.cs
- WebEventCodes.cs
- GridViewUpdatedEventArgs.cs
- ManagedIStream.cs
- HtmlTernaryTree.cs
- RequestTimeoutManager.cs
- ValidationSummary.cs
- AssociationSet.cs
- VirtualizingStackPanel.cs
- UpdateRecord.cs
- WebScriptEnablingElement.cs
- MSG.cs
- PseudoWebRequest.cs
- OlePropertyStructs.cs
- IgnoreFileBuildProvider.cs
- ClaimTypeRequirement.cs
- DateTimeFormatInfoScanner.cs
- ComponentGuaranteesAttribute.cs
- HttpResponseWrapper.cs
- SpeechUI.cs
- FileDialog.cs
- SoapServerProtocol.cs
- ImageSource.cs
- QilGenerator.cs