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
- ComponentRenameEvent.cs
- ReferenceAssemblyAttribute.cs
- ProbeMatchesMessageCD1.cs
- FixedTextContainer.cs
- RouteUrlExpressionBuilder.cs
- Transform.cs
- SimplePropertyEntry.cs
- EncryptedXml.cs
- AncestorChangedEventArgs.cs
- SchemaMapping.cs
- TdsParserHelperClasses.cs
- EncryptedData.cs
- OverrideMode.cs
- ImageListUtils.cs
- SoapExtensionStream.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- SignatureResourcePool.cs
- odbcmetadatacollectionnames.cs
- BinaryFormatter.cs
- ApplicationFileCodeDomTreeGenerator.cs
- Page.cs
- DataGridColumnHeader.cs
- EntityClientCacheEntry.cs
- FragmentQueryKB.cs
- EntityStoreSchemaFilterEntry.cs
- Serializer.cs
- Geometry.cs
- xdrvalidator.cs
- TagNameToTypeMapper.cs
- XmlElementList.cs
- SortKey.cs
- SerialPort.cs
- CodeBlockBuilder.cs
- EventManager.cs
- Calendar.cs
- StyleXamlParser.cs
- KeyedPriorityQueue.cs
- DocumentEventArgs.cs
- MarkupExtensionParser.cs
- ScriptResourceHandler.cs
- DefinitionBase.cs
- DATA_BLOB.cs
- WeakEventManager.cs
- AttributeCollection.cs
- SafeNativeMethods.cs
- NavigationFailedEventArgs.cs
- SinglePhaseEnlistment.cs
- ScalarConstant.cs
- CustomTrackingQuery.cs
- SqlNode.cs
- ToolStripItemClickedEventArgs.cs
- WebBrowserSiteBase.cs
- ChannelCacheDefaults.cs
- BinaryCommonClasses.cs
- GACMembershipCondition.cs
- Activator.cs
- PageCache.cs
- DataException.cs
- SqlNodeAnnotations.cs
- XmlUtilWriter.cs
- Translator.cs
- Brush.cs
- Trace.cs
- ParentQuery.cs
- TextRangeProviderWrapper.cs
- TagNameToTypeMapper.cs
- reliableinputsessionchannel.cs
- MediaContext.cs
- IsolatedStorage.cs
- FixedSOMTextRun.cs
- ListBase.cs
- CompressionTracing.cs
- ContainerVisual.cs
- TreeNodeStyleCollectionEditor.cs
- HtmlMeta.cs
- WebPartMovingEventArgs.cs
- MsmqIntegrationBinding.cs
- OptimalBreakSession.cs
- ParameterBinding.cs
- Timer.cs
- OleDbInfoMessageEvent.cs
- DefaultBinder.cs
- CodeDirectionExpression.cs
- RSAOAEPKeyExchangeDeformatter.cs
- RectValueSerializer.cs
- DmlSqlGenerator.cs
- FormatException.cs
- HtmlDocument.cs
- OdbcConnectionString.cs
- TextSelectionProcessor.cs
- ADMembershipProvider.cs
- HuffCodec.cs
- RoleGroupCollectionEditor.cs
- GroupBoxDesigner.cs
- ValueTypeFixupInfo.cs
- InternalControlCollection.cs
- CqlErrorHelper.cs
- DataGridViewSelectedRowCollection.cs
- Timer.cs
- PropertyReferenceSerializer.cs