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
- Guid.cs
- DynamicUpdateCommand.cs
- ExeContext.cs
- RawTextInputReport.cs
- DefaultAssemblyResolver.cs
- WriteTimeStream.cs
- DataAccessor.cs
- GlyphingCache.cs
- COMException.cs
- JsonStringDataContract.cs
- FilteredReadOnlyMetadataCollection.cs
- RepeatBehavior.cs
- WebDisplayNameAttribute.cs
- CodeEventReferenceExpression.cs
- SqlFactory.cs
- _ListenerAsyncResult.cs
- CodeCompileUnit.cs
- objectresult_tresulttype.cs
- UpdateRecord.cs
- NetworkInformationException.cs
- ImpersonationContext.cs
- LineGeometry.cs
- BookmarkEventArgs.cs
- ElementHostPropertyMap.cs
- PersonalizableAttribute.cs
- ToolBar.cs
- WorkflowRuntimeSection.cs
- ConfigurationHandlersInstallComponent.cs
- PersistenceException.cs
- ObjectConverter.cs
- FieldToken.cs
- DesignerRegionCollection.cs
- StandardCommands.cs
- ContextStaticAttribute.cs
- CopyCodeAction.cs
- DelegateTypeInfo.cs
- Converter.cs
- SourceLineInfo.cs
- ConfigurationStrings.cs
- MsmqVerifier.cs
- Image.cs
- XsdDateTime.cs
- RangeValidator.cs
- Rotation3DAnimation.cs
- TreeViewBindingsEditorForm.cs
- RtfToken.cs
- NetNamedPipeSecurity.cs
- SmtpDigestAuthenticationModule.cs
- DictionaryCustomTypeDescriptor.cs
- DPCustomTypeDescriptor.cs
- SmiMetaDataProperty.cs
- GeneralTransform3DTo2DTo3D.cs
- OleDbDataAdapter.cs
- RSAPKCS1KeyExchangeFormatter.cs
- PrefixHandle.cs
- EventManager.cs
- AvTraceDetails.cs
- RoleService.cs
- MetadataItemCollectionFactory.cs
- SiteMapNode.cs
- ProviderUtil.cs
- RoleGroup.cs
- MimeBasePart.cs
- BlockUIContainer.cs
- PageStatePersister.cs
- XmlTextReaderImpl.cs
- VirtualizedContainerService.cs
- WinFormsSecurity.cs
- SiteMapPath.cs
- Module.cs
- MailHeaderInfo.cs
- _FtpControlStream.cs
- SafeMemoryMappedViewHandle.cs
- DecimalAnimation.cs
- CodePropertyReferenceExpression.cs
- SingleStorage.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- EnumValAlphaComparer.cs
- ScriptResourceDefinition.cs
- ListDesigner.cs
- DependencyPropertyChangedEventArgs.cs
- IssuanceLicense.cs
- SqlClientWrapperSmiStream.cs
- FileEnumerator.cs
- DataGridViewCellParsingEventArgs.cs
- EnumMemberAttribute.cs
- TypedReference.cs
- ServiceAppDomainAssociationProvider.cs
- CurrentChangingEventManager.cs
- SHA512CryptoServiceProvider.cs
- SchemaTableColumn.cs
- QuadraticBezierSegment.cs
- CharAnimationBase.cs
- CaseInsensitiveHashCodeProvider.cs
- Rotation3DAnimationBase.cs
- XmlIncludeAttribute.cs
- CompiledIdentityConstraint.cs
- SplitterEvent.cs
- TreeNodeBinding.cs
- SqlUnionizer.cs