Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / clr / src / BCL / System / Security / SafeSecurityHandles.cs / 2 / SafeSecurityHandles.cs
// Copyright (c) Microsoft Corporation. All rights reserved. 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); } } } // 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
- AuthenticationServiceManager.cs
- PopupRootAutomationPeer.cs
- PrePrepareMethodAttribute.cs
- WebHeaderCollection.cs
- EncoderParameter.cs
- DurationConverter.cs
- ContentDisposition.cs
- XPathNodeIterator.cs
- DesignerOptionService.cs
- KeyInfo.cs
- InternalConfigSettingsFactory.cs
- Authorization.cs
- SecurityPolicySection.cs
- PreProcessor.cs
- QuaternionConverter.cs
- LineServicesCallbacks.cs
- IdnMapping.cs
- EntityProviderFactory.cs
- StateWorkerRequest.cs
- Point3DConverter.cs
- GlobalItem.cs
- SafePointer.cs
- Matrix.cs
- BasePropertyDescriptor.cs
- ErrorEventArgs.cs
- TextParagraph.cs
- UnaryNode.cs
- ConfigXmlText.cs
- GroupPartitionExpr.cs
- BinaryObjectWriter.cs
- FileDialog.cs
- activationcontext.cs
- ReflectionUtil.cs
- AssemblyInfo.cs
- securestring.cs
- HttpCacheVaryByContentEncodings.cs
- Permission.cs
- MatchingStyle.cs
- TextChangedEventArgs.cs
- XsltArgumentList.cs
- XmlSchemaSequence.cs
- ErrorFormatterPage.cs
- LightweightCodeGenerator.cs
- RewritingProcessor.cs
- XNodeValidator.cs
- ClockController.cs
- FontCacheUtil.cs
- TemplateKey.cs
- StylusPlugInCollection.cs
- EdmSchemaAttribute.cs
- CodeSnippetExpression.cs
- XPathExpr.cs
- ProcessInfo.cs
- FrameworkPropertyMetadata.cs
- VBCodeProvider.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- GridEntry.cs
- LogExtentCollection.cs
- DataGridViewUtilities.cs
- CollectionChangeEventArgs.cs
- PublisherMembershipCondition.cs
- WebPartEditVerb.cs
- Conditional.cs
- HttpAsyncResult.cs
- PropertyOrder.cs
- DataObjectCopyingEventArgs.cs
- InvalidWMPVersionException.cs
- ClientFormsIdentity.cs
- UInt16Storage.cs
- DesignerView.xaml.cs
- MsmqIntegrationBinding.cs
- ProxyWebPart.cs
- OdbcEnvironment.cs
- PropertyPushdownHelper.cs
- ChannelSinkStacks.cs
- RuleSetCollection.cs
- MdImport.cs
- CaretElement.cs
- ResourceAssociationTypeEnd.cs
- TypeBuilder.cs
- TcpConnectionPoolSettingsElement.cs
- TextBox.cs
- ConnectionPoolManager.cs
- DeleteBookmarkScope.cs
- RuntimeHandles.cs
- Ticks.cs
- DataGridViewDataErrorEventArgs.cs
- GlobalizationAssembly.cs
- DesignSurface.cs
- HeaderCollection.cs
- Composition.cs
- FilteredAttributeCollection.cs
- TraceListeners.cs
- LinkLabelLinkClickedEvent.cs
- SmtpLoginAuthenticationModule.cs
- SystemWebSectionGroup.cs
- DataServiceContext.cs
- ThreadStartException.cs
- DeviceSpecificChoice.cs
- ActivityDesignerLayoutSerializers.cs