Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / Microsoft / Win32 / SafeHandles / SafeProcessHandle.cs / 1 / SafeProcessHandle.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: SafeProcessHandle ** ** A wrapper for a process handle ** ** ===========================================================*/ using System; using System.Security; using System.Diagnostics; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using Microsoft.Win32; using Microsoft.Win32.SafeHandles; using System.Runtime.ConstrainedExecution; namespace Microsoft.Win32.SafeHandles { [HostProtectionAttribute(MayLeakOnAbort = true)] [SuppressUnmanagedCodeSecurityAttribute] internal sealed class SafeProcessHandle : SafeHandleZeroOrMinusOneIsInvalid { internal static SafeProcessHandle InvalidHandle = new SafeProcessHandle(IntPtr.Zero); // Note that OpenProcess returns 0 on failure internal SafeProcessHandle() : base(true) {} [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode=true)] internal SafeProcessHandle(IntPtr handle) : base (true) { SetHandle(handle); } // Not currently called //[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode=true)] //internal SafeProcessHandle(IntPtr existingHandle, bool ownsHandle) : base(ownsHandle) { // SetHandle(existingHandle); //} [DllImport(ExternDll.Kernel32, CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)] internal static extern SafeProcessHandle OpenProcess(int access, bool inherit, int processId); internal void InitialSetHandle(IntPtr h){ Debug.Assert(base.IsInvalid, "Safe handle should only be set once"); base.handle = h; } override protected bool ReleaseHandle() { return SafeNativeMethods.CloseHandle(handle); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BamlRecordWriter.cs
- PropertyTabAttribute.cs
- MimeFormatter.cs
- DbDataSourceEnumerator.cs
- SQLGuidStorage.cs
- DataShape.cs
- QueryAccessibilityHelpEvent.cs
- UnsafeNativeMethods.cs
- ControlCachePolicy.cs
- SchemaTypeEmitter.cs
- ExtensibleClassFactory.cs
- ColumnResizeUndoUnit.cs
- DataObjectMethodAttribute.cs
- CookieProtection.cs
- EpmHelper.cs
- NotFiniteNumberException.cs
- WindowsFormsHelpers.cs
- DiagnosticTraceSource.cs
- TypeDelegator.cs
- XPathDocument.cs
- Win32Native.cs
- Perspective.cs
- formatter.cs
- ColorConverter.cs
- LongPath.cs
- ArcSegment.cs
- webeventbuffer.cs
- TextComposition.cs
- RequestResponse.cs
- BindingsCollection.cs
- PeerToPeerException.cs
- SoapDocumentMethodAttribute.cs
- XmlILStorageConverter.cs
- EmptyCollection.cs
- parserscommon.cs
- AffineTransform3D.cs
- SQLDateTime.cs
- ViewValidator.cs
- NamespaceImport.cs
- ScriptReferenceEventArgs.cs
- ExpressionLexer.cs
- List.cs
- CapabilitiesState.cs
- MimeMapping.cs
- ETagAttribute.cs
- ObjectDataSourceStatusEventArgs.cs
- SqlMethodCallConverter.cs
- FrameworkTemplate.cs
- SizeAnimationBase.cs
- DefaultShape.cs
- CheckableControlBaseAdapter.cs
- ViewValidator.cs
- ErrorTableItemStyle.cs
- DynamicMetaObject.cs
- DbProviderFactories.cs
- WebAdminConfigurationHelper.cs
- SchemaImporterExtension.cs
- ListViewCancelEventArgs.cs
- _ProxyRegBlob.cs
- SafeMILHandle.cs
- DbProviderFactories.cs
- SudsCommon.cs
- CaseInsensitiveOrdinalStringComparer.cs
- DataGridViewCellStyle.cs
- CallbackHandler.cs
- ComponentManagerBroker.cs
- ParameterEditorUserControl.cs
- METAHEADER.cs
- AsyncOperationContext.cs
- TreeNodeStyle.cs
- OpenTypeLayout.cs
- EpmSourcePathSegment.cs
- WebBrowserSiteBase.cs
- BulletDecorator.cs
- Vector.cs
- SAPICategories.cs
- DataObject.cs
- QilScopedVisitor.cs
- RealizedColumnsBlock.cs
- Activator.cs
- Label.cs
- DBCommandBuilder.cs
- BackStopAuthenticationModule.cs
- Fx.cs
- WebSysDefaultValueAttribute.cs
- UnknownWrapper.cs
- AnnotationResourceCollection.cs
- Marshal.cs
- BlobPersonalizationState.cs
- InheritablePropertyChangeInfo.cs
- CfgArc.cs
- AbandonedMutexException.cs
- TransformPatternIdentifiers.cs
- XmlSchemaAppInfo.cs
- DataGridViewComboBoxColumn.cs
- UnsafeNativeMethods.cs
- _LoggingObject.cs
- QueryExpr.cs
- InternalConfigEventArgs.cs
- ContainerUtilities.cs