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
- EndpointFilterProvider.cs
- PersonalizationStateQuery.cs
- WebReferenceCollection.cs
- StringConcat.cs
- ProviderBase.cs
- ObfuscateAssemblyAttribute.cs
- WindowsIdentity.cs
- UInt16.cs
- DefaultValueConverter.cs
- DbConvert.cs
- ITextView.cs
- ProxyWebPart.cs
- CryptoConfig.cs
- QilDataSource.cs
- RepeatInfo.cs
- PresentationAppDomainManager.cs
- PageParserFilter.cs
- PropertyChangingEventArgs.cs
- XPathNodePointer.cs
- SerialPinChanges.cs
- CodeRegionDirective.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- LayoutManager.cs
- FileLogRecord.cs
- SchemaMapping.cs
- ProfileSettingsCollection.cs
- DecimalConstantAttribute.cs
- DeploymentExceptionMapper.cs
- COAUTHIDENTITY.cs
- DataGridViewRowStateChangedEventArgs.cs
- BinaryWriter.cs
- ControlSerializer.cs
- FormsAuthenticationCredentials.cs
- SingleAnimationUsingKeyFrames.cs
- ContainerControl.cs
- ConfigXmlCDataSection.cs
- SymbolPair.cs
- TableLayoutPanelCellPosition.cs
- ChangePassword.cs
- MemberDescriptor.cs
- OracleFactory.cs
- DirectoryRootQuery.cs
- EventPrivateKey.cs
- SafeWaitHandle.cs
- StaticExtension.cs
- PackUriHelper.cs
- PolicyManager.cs
- FloatAverageAggregationOperator.cs
- XmlAutoDetectWriter.cs
- SQLInt64.cs
- EditingCommands.cs
- ObjectConverter.cs
- QueueProcessor.cs
- BasicHttpSecurity.cs
- BinaryFormatter.cs
- MemberDomainMap.cs
- XmlEntityReference.cs
- PagerStyle.cs
- WeakEventTable.cs
- ScriptComponentDescriptor.cs
- WorkflowServiceInstance.cs
- SQLInt16Storage.cs
- FamilyTypefaceCollection.cs
- __Filters.cs
- TableLayout.cs
- QilFactory.cs
- PointLightBase.cs
- ContentDisposition.cs
- HighContrastHelper.cs
- SHA512.cs
- SingleKeyFrameCollection.cs
- PermissionSet.cs
- RichTextBox.cs
- SearchForVirtualItemEventArgs.cs
- FacetValueContainer.cs
- DataGridTable.cs
- EntryWrittenEventArgs.cs
- SystemTcpConnection.cs
- CatalogZone.cs
- SessionState.cs
- ComponentManagerBroker.cs
- ColorBlend.cs
- ManipulationDelta.cs
- NullRuntimeConfig.cs
- InvalidateEvent.cs
- ValidationSummary.cs
- XmlSchemaCompilationSettings.cs
- LayoutUtils.cs
- sqlser.cs
- HeaderedContentControl.cs
- MenuItemBinding.cs
- DataObjectPastingEventArgs.cs
- EpmSyndicationContentSerializer.cs
- ExpressionConverter.cs
- FixedSOMTableCell.cs
- StopStoryboard.cs
- SuppressMessageAttribute.cs
- smtppermission.cs
- PageSetupDialog.cs
- PreviewControlDesigner.cs