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
- InputLanguageProfileNotifySink.cs
- UnsafeNativeMethods.cs
- RouteParser.cs
- Panel.cs
- FixedSOMFixedBlock.cs
- Timer.cs
- CodeConstructor.cs
- TrustLevel.cs
- FormatException.cs
- CommonDialog.cs
- FontSizeConverter.cs
- CustomAttribute.cs
- CalendarDataBindingHandler.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- NewArrayExpression.cs
- ObjectQueryProvider.cs
- StorageEntitySetMapping.cs
- FigureHelper.cs
- NativeActivity.cs
- Accessors.cs
- TransactionManager.cs
- SimpleBitVector32.cs
- KeyBinding.cs
- ColumnReorderedEventArgs.cs
- BasicExpressionVisitor.cs
- WebPartRestoreVerb.cs
- NativeWindow.cs
- AdapterDictionary.cs
- StringTraceRecord.cs
- future.cs
- ZipIOCentralDirectoryBlock.cs
- WebPartEditorApplyVerb.cs
- HtmlInputText.cs
- EventLogSession.cs
- TreeNodeStyleCollection.cs
- SqlWebEventProvider.cs
- TransformationRules.cs
- XmlSchemaObjectTable.cs
- FormatVersion.cs
- TextModifier.cs
- WebPartConnectionsConfigureVerb.cs
- StrokeIntersection.cs
- JoinTreeSlot.cs
- WebReferenceOptions.cs
- LabelDesigner.cs
- SQLCharsStorage.cs
- PlanCompiler.cs
- EnumerableCollectionView.cs
- NetSectionGroup.cs
- SafeNativeMethods.cs
- LocatorPart.cs
- NodeInfo.cs
- WorkflowElementDialog.cs
- GridViewSelectEventArgs.cs
- Italic.cs
- DateTimeFormatInfoScanner.cs
- ObjectQueryState.cs
- XXXInfos.cs
- SizeConverter.cs
- XsltLoader.cs
- Canvas.cs
- MarkupExtensionParser.cs
- HMACSHA384.cs
- SiteMapNodeCollection.cs
- SeverityFilter.cs
- DoubleCollectionValueSerializer.cs
- LabelLiteral.cs
- DayRenderEvent.cs
- ParserExtension.cs
- SafeNativeMethodsOther.cs
- WebPartManager.cs
- RawUIStateInputReport.cs
- SqlClientFactory.cs
- CallContext.cs
- DataGridViewRowConverter.cs
- StreamMarshaler.cs
- XmlReturnReader.cs
- StateMachineSubscription.cs
- Exceptions.cs
- InvalidCastException.cs
- DataViewManagerListItemTypeDescriptor.cs
- FixedPosition.cs
- LocalizableResourceBuilder.cs
- ListSortDescriptionCollection.cs
- WebControlsSection.cs
- HostedTransportConfigurationBase.cs
- HttpRequestCacheValidator.cs
- TaskHelper.cs
- DesignerForm.cs
- GridViewEditEventArgs.cs
- TimerEventSubscriptionCollection.cs
- UndoEngine.cs
- AssociationSet.cs
- RuntimeConfig.cs
- Guid.cs
- Int16KeyFrameCollection.cs
- ConfigurationSectionGroupCollection.cs
- UnsafeCollabNativeMethods.cs
- DateTimeOffsetAdapter.cs
- SByte.cs