Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Security / SafeSecurityHandles.cs / 1 / SafeSecurityHandles.cs
namespace Microsoft.Win32.SafeHandles { using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.ConstrainedExecution; using System.Security; internal sealed class SafeLocalAllocHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeLocalAllocHandle () : base(true) {} // 0 is an Invalid Handle internal SafeLocalAllocHandle (IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeLocalAllocHandle InvalidHandle { get { return new SafeLocalAllocHandle(IntPtr.Zero); } } override protected bool ReleaseHandle() { return Win32Native.LocalFree(handle) == IntPtr.Zero; } } internal sealed class SafeLsaLogonProcessHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeLsaLogonProcessHandle() : base (true) {} // 0 is an Invalid Handle internal SafeLsaLogonProcessHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeLsaLogonProcessHandle InvalidHandle { get { return new SafeLsaLogonProcessHandle(IntPtr.Zero); } } override protected bool ReleaseHandle() { // LsaDeregisterLogonProcess returns an NTSTATUS return Win32Native.LsaDeregisterLogonProcess(handle) >= 0; } } internal sealed class SafeLsaMemoryHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeLsaMemoryHandle() : base(true) {} // 0 is an Invalid Handle internal SafeLsaMemoryHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeLsaMemoryHandle InvalidHandle { get { return new SafeLsaMemoryHandle( IntPtr.Zero ); } } override protected bool ReleaseHandle() { return Win32Native.LsaFreeMemory(handle) == 0; } } internal sealed class SafeLsaPolicyHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeLsaPolicyHandle() : base(true) {} // 0 is an Invalid Handle internal SafeLsaPolicyHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeLsaPolicyHandle InvalidHandle { get { return new SafeLsaPolicyHandle( IntPtr.Zero ); } } override protected bool ReleaseHandle() { return Win32Native.LsaClose(handle) == 0; } } internal sealed class SafeLsaReturnBufferHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeLsaReturnBufferHandle() : base (true) {} // 0 is an Invalid Handle internal SafeLsaReturnBufferHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeLsaReturnBufferHandle InvalidHandle { get { return new SafeLsaReturnBufferHandle(IntPtr.Zero); } } override protected bool ReleaseHandle() { // LsaFreeReturnBuffer returns an NTSTATUS return Win32Native.LsaFreeReturnBuffer(handle) >= 0; } } internal sealed class SafeProcessHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeProcessHandle() : base (true) {} // 0 is an Invalid Handle internal SafeProcessHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeProcessHandle InvalidHandle { get { return new SafeProcessHandle(IntPtr.Zero); } } override protected bool ReleaseHandle() { return Win32Native.CloseHandle(handle); } } internal sealed class SafeThreadHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeThreadHandle() : base (true) {} // 0 is an Invalid Handle internal SafeThreadHandle(IntPtr handle) : base (true) { SetHandle(handle); } override protected bool ReleaseHandle() { return Win32Native.CloseHandle(handle); } } internal sealed class SafeTokenHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeTokenHandle() : base (true) {} // 0 is an Invalid Handle internal SafeTokenHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeTokenHandle InvalidHandle { get { return new SafeTokenHandle(IntPtr.Zero); } } override protected bool ReleaseHandle() { return Win32Native.CloseHandle(handle); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FederatedMessageSecurityOverHttpElement.cs
- TypeSystem.cs
- IRCollection.cs
- XmlSchemaAttributeGroup.cs
- ProxyHwnd.cs
- ScrollPatternIdentifiers.cs
- BasePattern.cs
- ToggleProviderWrapper.cs
- TripleDESCryptoServiceProvider.cs
- GenerateHelper.cs
- WindowsMenu.cs
- PeerNameResolver.cs
- PageTheme.cs
- ImageList.cs
- PointValueSerializer.cs
- DecimalConverter.cs
- SimpleType.cs
- TimeEnumHelper.cs
- Pool.cs
- SourceSwitch.cs
- UserPersonalizationStateInfo.cs
- DrawingVisual.cs
- Int32Converter.cs
- SqlBuilder.cs
- GenericUriParser.cs
- ExtensionDataObject.cs
- XmlAttributeCollection.cs
- RunInstallerAttribute.cs
- ServerIdentity.cs
- TextDecorationCollection.cs
- AddValidationError.cs
- latinshape.cs
- ModulesEntry.cs
- PrintDialog.cs
- DataGridViewCellStyleChangedEventArgs.cs
- ToolStripPanelRenderEventArgs.cs
- XmlCodeExporter.cs
- DataGridViewLinkCell.cs
- LifetimeServices.cs
- CurrentChangingEventArgs.cs
- ExpressionConverter.cs
- HandledEventArgs.cs
- ApplicationInfo.cs
- ProfilePropertyNameValidator.cs
- CachedTypeface.cs
- CodeDelegateInvokeExpression.cs
- SecurityState.cs
- SmiTypedGetterSetter.cs
- SrgsRule.cs
- ConfigurationManagerHelperFactory.cs
- Int16Converter.cs
- Matrix3DStack.cs
- SqlConnectionPoolProviderInfo.cs
- CustomAssemblyResolver.cs
- OracleInternalConnection.cs
- TextSpanModifier.cs
- DbParameterHelper.cs
- XmlCharCheckingWriter.cs
- OleDbRowUpdatingEvent.cs
- DataRecordInternal.cs
- infer.cs
- ComplusTypeValidator.cs
- PackWebResponse.cs
- keycontainerpermission.cs
- LookupBindingPropertiesAttribute.cs
- CheckBoxRenderer.cs
- RemoteWebConfigurationHostStream.cs
- GraphicsState.cs
- RemotingConfigParser.cs
- ByteStreamMessageEncoderFactory.cs
- KoreanLunisolarCalendar.cs
- FontStyles.cs
- WebPartZoneCollection.cs
- SchemaAttDef.cs
- CodeTypeReferenceExpression.cs
- ToolStripMenuItemCodeDomSerializer.cs
- ResourceProviderFactory.cs
- SystemTcpStatistics.cs
- Mouse.cs
- ComponentResourceKey.cs
- ValueUnavailableException.cs
- AnimatedTypeHelpers.cs
- HttpStreamMessageEncoderFactory.cs
- ImpersonateTokenRef.cs
- AppliedDeviceFiltersDialog.cs
- ObjRef.cs
- UserControlAutomationPeer.cs
- TraceSection.cs
- WorkflowInstanceExtensionManager.cs
- ConfigXmlWhitespace.cs
- ToolStripManager.cs
- X509SecurityTokenProvider.cs
- IndentedWriter.cs
- WebServiceErrorEvent.cs
- XmlCompatibilityReader.cs
- PropertyCollection.cs
- XamlRtfConverter.cs
- ErrorProvider.cs
- SafeLibraryHandle.cs
- SchemaHelper.cs