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
- OleDbConnectionPoolGroupProviderInfo.cs
- DescriptionCreator.cs
- DependencyPropertyDescriptor.cs
- CollectionViewProxy.cs
- TemplateControlBuildProvider.cs
- CollectionBase.cs
- CustomAttribute.cs
- RuleConditionDialog.Designer.cs
- JavaScriptString.cs
- ScrollItemProviderWrapper.cs
- BuildManagerHost.cs
- TraceContextRecord.cs
- StrokeCollection2.cs
- PenLineJoinValidation.cs
- QuaternionAnimation.cs
- ExtendedPropertyDescriptor.cs
- KeyTimeConverter.cs
- RequestNavigateEventArgs.cs
- SpeakProgressEventArgs.cs
- MULTI_QI.cs
- NativeMethods.cs
- DBPropSet.cs
- RawStylusActions.cs
- RegexReplacement.cs
- SerializationException.cs
- LambdaCompiler.ControlFlow.cs
- RequestResizeEvent.cs
- SecurityException.cs
- FramingDecoders.cs
- PrivateFontCollection.cs
- ViewLoader.cs
- MultiPropertyDescriptorGridEntry.cs
- TypeElement.cs
- TraceSection.cs
- EncoderBestFitFallback.cs
- HttpModule.cs
- ShapeTypeface.cs
- oledbconnectionstring.cs
- CompilerWrapper.cs
- ActiveXMessageFormatter.cs
- BamlLocalizableResourceKey.cs
- SqlDependencyUtils.cs
- XNodeValidator.cs
- PersianCalendar.cs
- SafeThreadHandle.cs
- CodeDesigner.cs
- DataGridViewLayoutData.cs
- OracleInternalConnection.cs
- ProxyGenerator.cs
- GroupItemAutomationPeer.cs
- storepermission.cs
- SchemaNamespaceManager.cs
- MenuItemCollection.cs
- EntityDesignerUtils.cs
- HttpClientCertificate.cs
- IgnoreFileBuildProvider.cs
- XmlDataProvider.cs
- DrawingBrush.cs
- CheckBoxFlatAdapter.cs
- TextTreeObjectNode.cs
- LowerCaseStringConverter.cs
- SiteMapNodeCollection.cs
- CachedResourceDictionaryExtension.cs
- RtfFormatStack.cs
- UpdatePanelTriggerCollection.cs
- CommunicationObjectAbortedException.cs
- PropertyDescriptor.cs
- PostBackTrigger.cs
- RtfFormatStack.cs
- TabControlAutomationPeer.cs
- XPathDocumentBuilder.cs
- ContextItem.cs
- InfoCardServiceInstallComponent.cs
- RequestQueryParser.cs
- X509CertificateChain.cs
- WmpBitmapEncoder.cs
- EntityExpressionVisitor.cs
- DataSysAttribute.cs
- StickyNoteHelper.cs
- HtmlControl.cs
- DbTransaction.cs
- TypedReference.cs
- SystemUdpStatistics.cs
- CmsInterop.cs
- WebPartDisplayMode.cs
- ButtonColumn.cs
- ThumbAutomationPeer.cs
- DeflateStream.cs
- _Win32.cs
- ReceiveActivityValidator.cs
- WindowsFormsHost.cs
- DataBoundControlHelper.cs
- MouseActionConverter.cs
- RoleManagerSection.cs
- DataGridViewComponentPropertyGridSite.cs
- LiteralText.cs
- Table.cs
- AssemblySettingAttributes.cs
- ReachIDocumentPaginatorSerializerAsync.cs
- ProgressBarHighlightConverter.cs