Code:
/ FX-1434 / FX-1434 / 1.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
- ContentFilePart.cs
- PropertyToken.cs
- DomainConstraint.cs
- CompModHelpers.cs
- InkPresenter.cs
- FontDriver.cs
- AutoGeneratedFieldProperties.cs
- Switch.cs
- X509Utils.cs
- ChannelSinkStacks.cs
- TextHintingModeValidation.cs
- SecurityManager.cs
- Operator.cs
- SafeBitVector32.cs
- ComboBox.cs
- ContentType.cs
- UIElementParaClient.cs
- TemplatePagerField.cs
- SQLBytesStorage.cs
- GeometryModel3D.cs
- RegistryExceptionHelper.cs
- LinqDataSourceDisposeEventArgs.cs
- PKCS1MaskGenerationMethod.cs
- Vector3DAnimationBase.cs
- XPathNodeIterator.cs
- UserNameSecurityTokenProvider.cs
- PointAnimationUsingPath.cs
- HttpModulesSection.cs
- Vertex.cs
- AllMembershipCondition.cs
- MaskedTextBoxTextEditorDropDown.cs
- BuildProvider.cs
- DatatypeImplementation.cs
- DeobfuscatingStream.cs
- ParallelDesigner.cs
- ProgressChangedEventArgs.cs
- EntityViewGenerationAttribute.cs
- SuppressIldasmAttribute.cs
- ParseChildrenAsPropertiesAttribute.cs
- SQLInt32.cs
- MimeXmlReflector.cs
- SchemaMapping.cs
- AssemblyResourceLoader.cs
- DetailsViewDeletedEventArgs.cs
- ActivityMarkupSerializer.cs
- AddingNewEventArgs.cs
- Rss20ItemFormatter.cs
- RegionInfo.cs
- ImageIndexEditor.cs
- EventArgs.cs
- ClientTarget.cs
- ListViewItemMouseHoverEvent.cs
- SqlBulkCopyColumnMapping.cs
- MenuItem.cs
- InvalidPipelineStoreException.cs
- DataColumnChangeEvent.cs
- LocalizationComments.cs
- ProcessProtocolHandler.cs
- HandlerFactoryWrapper.cs
- BufferedGraphics.cs
- DataBoundControlHelper.cs
- DataGridViewCellPaintingEventArgs.cs
- Scalars.cs
- FormsAuthenticationTicket.cs
- BrowserCapabilitiesFactory.cs
- DateTimeOffset.cs
- AttributeTableBuilder.cs
- InvokeMethod.cs
- DesignerActionListCollection.cs
- MailMessage.cs
- CompletionCallbackWrapper.cs
- MDIWindowDialog.cs
- StringSource.cs
- IntSecurity.cs
- RegexMatch.cs
- ChangePassword.cs
- InvalidProgramException.cs
- Exceptions.cs
- _ListenerAsyncResult.cs
- listitem.cs
- InstancePersistenceContext.cs
- SqlExpander.cs
- JpegBitmapDecoder.cs
- WorkflowCommandExtensionItem.cs
- SQLInt64Storage.cs
- ASCIIEncoding.cs
- externdll.cs
- util.cs
- DesignerTransactionCloseEvent.cs
- recordstatefactory.cs
- ObjectToModelValueConverter.cs
- SparseMemoryStream.cs
- XmlConvert.cs
- XslTransform.cs
- DiscoveryProxy.cs
- HandlerFactoryCache.cs
- X509Certificate2Collection.cs
- GeneralTransform3DGroup.cs
- TreeViewCancelEvent.cs
- Parsers.cs