Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / SMDiagnostics / System / ServiceModel / Diagnostics / SafeEventLogWriteHandle.cs / 1305376 / SafeEventLogWriteHandle.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.ServiceModel.Diagnostics
{
using Microsoft.Win32.SafeHandles;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Globalization;
using System.Diagnostics;
using System.Security;
using System.Runtime;
[Fx.Tag.SecurityNote(Critical = "Usage of SafeHandleZeroOrMinusOneIsInvalid, which is protected by a LinkDemand and InheritanceDemand")]
[SecurityCritical]
sealed class SafeEventLogWriteHandle : SafeHandleZeroOrMinusOneIsInvalid
{
// Note: RegisterEventSource returns 0 on failure
[Fx.Tag.SecurityNote(Critical = "Usage of SafeHandleZeroOrMinusOneIsInvalid, which is protected by a LinkDemand and InheritanceDemand")]
[SecurityCritical]
SafeEventLogWriteHandle() : base(true) { }
[ResourceConsumption(ResourceScope.Machine)]
[Fx.Tag.SecurityNote(Critical = "Usage of SafeHandleZeroOrMinusOneIsInvalid, which is protected by a LinkDemand and InheritanceDemand")]
[SecurityCritical]
internal static SafeEventLogWriteHandle RegisterEventSource(string uncServerName, string sourceName)
{
SafeEventLogWriteHandle retval = NativeMethods.RegisterEventSource(uncServerName, sourceName);
int error = Marshal.GetLastWin32Error();
if (retval.IsInvalid)
{
Debug.Print("SafeEventLogWriteHandle::RegisterEventSource[" + uncServerName + ", " + sourceName + "] Failed. Last Error: " +
error.ToString(CultureInfo.InvariantCulture));
}
return retval;
}
[DllImport("advapi32", SetLastError = true)]
[ResourceExposure(ResourceScope.None)]
private static extern bool DeregisterEventSource(IntPtr hEventLog);
#pragma warning disable 56523
[Fx.Tag.SecurityNote(Critical = "Usage of SafeHandleZeroOrMinusOneIsInvalid, which is protected by a LinkDemand and InheritanceDemand")]
[SecurityCritical]
override protected bool ReleaseHandle()
{
return DeregisterEventSource(this.handle);
}
#pragma warning restore 56523
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.ServiceModel.Diagnostics
{
using Microsoft.Win32.SafeHandles;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Globalization;
using System.Diagnostics;
using System.Security;
using System.Runtime;
[Fx.Tag.SecurityNote(Critical = "Usage of SafeHandleZeroOrMinusOneIsInvalid, which is protected by a LinkDemand and InheritanceDemand")]
[SecurityCritical]
sealed class SafeEventLogWriteHandle : SafeHandleZeroOrMinusOneIsInvalid
{
// Note: RegisterEventSource returns 0 on failure
[Fx.Tag.SecurityNote(Critical = "Usage of SafeHandleZeroOrMinusOneIsInvalid, which is protected by a LinkDemand and InheritanceDemand")]
[SecurityCritical]
SafeEventLogWriteHandle() : base(true) { }
[ResourceConsumption(ResourceScope.Machine)]
[Fx.Tag.SecurityNote(Critical = "Usage of SafeHandleZeroOrMinusOneIsInvalid, which is protected by a LinkDemand and InheritanceDemand")]
[SecurityCritical]
internal static SafeEventLogWriteHandle RegisterEventSource(string uncServerName, string sourceName)
{
SafeEventLogWriteHandle retval = NativeMethods.RegisterEventSource(uncServerName, sourceName);
int error = Marshal.GetLastWin32Error();
if (retval.IsInvalid)
{
Debug.Print("SafeEventLogWriteHandle::RegisterEventSource[" + uncServerName + ", " + sourceName + "] Failed. Last Error: " +
error.ToString(CultureInfo.InvariantCulture));
}
return retval;
}
[DllImport("advapi32", SetLastError = true)]
[ResourceExposure(ResourceScope.None)]
private static extern bool DeregisterEventSource(IntPtr hEventLog);
#pragma warning disable 56523
[Fx.Tag.SecurityNote(Critical = "Usage of SafeHandleZeroOrMinusOneIsInvalid, which is protected by a LinkDemand and InheritanceDemand")]
[SecurityCritical]
override protected bool ReleaseHandle()
{
return DeregisterEventSource(this.handle);
}
#pragma warning restore 56523
}
}
// 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
- Certificate.cs
- XmlSchemaImport.cs
- TextRunCache.cs
- ClientScriptManagerWrapper.cs
- EventDrivenDesigner.cs
- FeatureManager.cs
- PathFigureCollection.cs
- SystemUdpStatistics.cs
- PropertyValueChangedEvent.cs
- LayoutEditorPart.cs
- ToolboxItemAttribute.cs
- StaticSiteMapProvider.cs
- TextServicesCompartment.cs
- DropShadowBitmapEffect.cs
- ToolboxItemFilterAttribute.cs
- DataSourceControlBuilder.cs
- ResourceContainer.cs
- GregorianCalendarHelper.cs
- CompressionTransform.cs
- XslCompiledTransform.cs
- BitArray.cs
- ClientRuntime.cs
- RIPEMD160Managed.cs
- HttpFileCollection.cs
- KnownTypeAttribute.cs
- DataGridItemCollection.cs
- ShapingWorkspace.cs
- DataGridLinkButton.cs
- RenamedEventArgs.cs
- Action.cs
- Version.cs
- XmlEncodedRawTextWriter.cs
- TemplateInstanceAttribute.cs
- FileStream.cs
- TypeElementCollection.cs
- AsymmetricSignatureDeformatter.cs
- DetailsViewCommandEventArgs.cs
- ChangeDirector.cs
- CommonDialog.cs
- ISCIIEncoding.cs
- ClientApiGenerator.cs
- LayoutUtils.cs
- ObjectConverter.cs
- ThaiBuddhistCalendar.cs
- WindowsToolbarAsMenu.cs
- SettingsBindableAttribute.cs
- OptimizedTemplateContentHelper.cs
- SequentialWorkflowHeaderFooter.cs
- TraceSection.cs
- WsdlBuildProvider.cs
- MenuAutomationPeer.cs
- HostSecurityManager.cs
- RecordManager.cs
- FrameAutomationPeer.cs
- RsaSecurityKey.cs
- NavigatorOutput.cs
- ParserHooks.cs
- OpenTypeCommon.cs
- DataGridViewColumnTypePicker.cs
- SafeMILHandle.cs
- WindowsToolbarItemAsMenuItem.cs
- InheritedPropertyChangedEventArgs.cs
- TextSpan.cs
- ApplicationServiceManager.cs
- ComponentConverter.cs
- FamilyCollection.cs
- PersonalizationProviderCollection.cs
- ImageSource.cs
- FieldBuilder.cs
- RootProfilePropertySettingsCollection.cs
- NativeMethods.cs
- XPathNodeHelper.cs
- SchemaSetCompiler.cs
- GenericIdentity.cs
- MailDefinition.cs
- SystemFonts.cs
- ByteFacetDescriptionElement.cs
- LabelAutomationPeer.cs
- CustomErrorCollection.cs
- ShutDownListener.cs
- MLangCodePageEncoding.cs
- WindowsFormsSectionHandler.cs
- TypeElement.cs
- DataGridViewRowConverter.cs
- VerificationException.cs
- IriParsingElement.cs
- DecoderBestFitFallback.cs
- ScriptingProfileServiceSection.cs
- ModifierKeysValueSerializer.cs
- ButtonPopupAdapter.cs
- TriggerCollection.cs
- WebConfigurationHost.cs
- WindowsMenu.cs
- SessionEndedEventArgs.cs
- NativeMethods.cs
- ByteStream.cs
- ToolStripDropDownMenu.cs
- SimpleBitVector32.cs
- MetabaseServerConfig.cs
- DesignerVerbToolStripMenuItem.cs