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
- SoapMessage.cs
- ProxySimple.cs
- PrinterUnitConvert.cs
- DesignTimeType.cs
- SectionInput.cs
- IResourceProvider.cs
- ReverseInheritProperty.cs
- PersistenceTypeAttribute.cs
- WebEventTraceProvider.cs
- PageHandlerFactory.cs
- PrtCap_Builder.cs
- ArglessEventHandlerProxy.cs
- TextFormatter.cs
- FreezableCollection.cs
- NativeObjectSecurity.cs
- SignedXml.cs
- DataTableCollection.cs
- XmlNodeChangedEventManager.cs
- webproxy.cs
- ActivityUtilities.cs
- StorageTypeMapping.cs
- DesignSurfaceEvent.cs
- WebHttpBinding.cs
- Query.cs
- DataGridCell.cs
- BaseCollection.cs
- XmlSchemaInferenceException.cs
- SessionPageStateSection.cs
- StreamWithDictionary.cs
- StateItem.cs
- ParameterModifier.cs
- CompositeCollectionView.cs
- DoubleConverter.cs
- DataGridViewMethods.cs
- WindowsSlider.cs
- KeyboardDevice.cs
- CryptoKeySecurity.cs
- XmlRootAttribute.cs
- MarshalByRefObject.cs
- InputScopeConverter.cs
- BroadcastEventHelper.cs
- ProtocolViolationException.cs
- MarkupObject.cs
- IntegerValidator.cs
- ResXBuildProvider.cs
- DbProviderFactoriesConfigurationHandler.cs
- DivideByZeroException.cs
- ContractTypeNameElement.cs
- CookielessHelper.cs
- TextBreakpoint.cs
- CompositeFontInfo.cs
- WmiPutTraceRecord.cs
- StylusLogic.cs
- UxThemeWrapper.cs
- Tablet.cs
- TableSectionStyle.cs
- CacheModeValueSerializer.cs
- UdpDiscoveryEndpointElement.cs
- SequenceNumber.cs
- HelpProvider.cs
- LinqDataSourceEditData.cs
- ArrowControl.xaml.cs
- SecurityPolicySection.cs
- StringUtil.cs
- FlowDocumentReader.cs
- BinaryNode.cs
- XmlNodeChangedEventArgs.cs
- ActivityExecutorSurrogate.cs
- CurrencyManager.cs
- BitStream.cs
- Command.cs
- ListControlConvertEventArgs.cs
- MenuScrollingVisibilityConverter.cs
- SmiSettersStream.cs
- HyperLink.cs
- BindUriHelper.cs
- ToolBar.cs
- RowToParametersTransformer.cs
- MenuItemCollection.cs
- followingquery.cs
- PageContentAsyncResult.cs
- SoundPlayer.cs
- XmlTypeAttribute.cs
- XsltInput.cs
- EntityDesignerDataSourceView.cs
- PersonalizationState.cs
- COAUTHINFO.cs
- TextFormattingConverter.cs
- ExtensionQuery.cs
- CryptoApi.cs
- MenuItemBinding.cs
- ServerTooBusyException.cs
- EnumBuilder.cs
- XsltSettings.cs
- XsdDataContractImporter.cs
- CircleHotSpot.cs
- AnimationStorage.cs
- WindowsRichEditRange.cs
- Propagator.ExtentPlaceholderCreator.cs
- DataObjectMethodAttribute.cs