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
- ErrorTableItemStyle.cs
- TextBox.cs
- NumberFunctions.cs
- TableColumn.cs
- HandlerWithFactory.cs
- SecurityTokenProvider.cs
- Tuple.cs
- KeyFrames.cs
- DataContractSerializerOperationGenerator.cs
- SqlDeflator.cs
- CanonicalizationDriver.cs
- EventMappingSettings.cs
- DataGridColumn.cs
- PtsCache.cs
- StatusBarPanel.cs
- PostBackTrigger.cs
- WebPartCollection.cs
- ImageBrush.cs
- Binding.cs
- DBSqlParserColumnCollection.cs
- DataRelationCollection.cs
- RepeaterItemEventArgs.cs
- DeflateStreamAsyncResult.cs
- FrameworkTextComposition.cs
- TextRangeProviderWrapper.cs
- SafeHandle.cs
- RoleServiceManager.cs
- Schema.cs
- RawAppCommandInputReport.cs
- CoTaskMemHandle.cs
- ListViewCancelEventArgs.cs
- DropSourceBehavior.cs
- RankException.cs
- BamlTreeNode.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- DrawingContextDrawingContextWalker.cs
- FlatButtonAppearance.cs
- EventLogEntry.cs
- NameTable.cs
- NetworkInformationException.cs
- TextServicesHost.cs
- IOException.cs
- ToolStripComboBox.cs
- Duration.cs
- URIFormatException.cs
- BinaryFormatter.cs
- Label.cs
- LicenseContext.cs
- HttpWriter.cs
- DesignerSerializerAttribute.cs
- HttpDictionary.cs
- DocumentViewer.cs
- MaskedTextBoxTextEditor.cs
- BrowserTree.cs
- SqlUserDefinedTypeAttribute.cs
- BitStream.cs
- NavigationService.cs
- ApplicationProxyInternal.cs
- SettingsPropertyValueCollection.cs
- CachedTypeface.cs
- FlowDocumentPage.cs
- ApplicationInterop.cs
- FederatedMessageSecurityOverHttp.cs
- OleStrCAMarshaler.cs
- cookiecollection.cs
- CodeStatementCollection.cs
- TableLayoutStyle.cs
- TreeNodeCollection.cs
- CqlIdentifiers.cs
- IApplicationTrustManager.cs
- XmlByteStreamReader.cs
- loginstatus.cs
- AutomationEvent.cs
- VirtualizingPanel.cs
- ExpressionSelection.cs
- PartitionResolver.cs
- ExpressionPrefixAttribute.cs
- VisualTreeUtils.cs
- PointF.cs
- SqlDependencyListener.cs
- FilterException.cs
- FileUpload.cs
- Clipboard.cs
- CodeDefaultValueExpression.cs
- WorkflowStateRollbackService.cs
- DeclaredTypeElement.cs
- WebDescriptionAttribute.cs
- CopyNamespacesAction.cs
- DynamicMetaObject.cs
- DataRelationCollection.cs
- MethodCallConverter.cs
- WaitHandle.cs
- IisTraceWebEventProvider.cs
- RelationshipEndCollection.cs
- SrgsToken.cs
- HtmlTableRow.cs
- GeneralTransform3DGroup.cs
- RelatedPropertyManager.cs
- ClientSponsor.cs
- Brush.cs