Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / Microsoft / Win32 / SafeHandles / SafeProcessHandle.cs / 1305376 / 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;
using System.Runtime.Versioning;
namespace Microsoft.Win32.SafeHandles {
[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) {}
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)]
[ResourceExposure(ResourceScope.Machine)]
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);
}
}
}
// 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
- HttpProxyTransportBindingElement.cs
- DbConnectionStringBuilder.cs
- querybuilder.cs
- FixedHighlight.cs
- SlipBehavior.cs
- BitmapEffectGroup.cs
- QilInvokeLateBound.cs
- CustomAssemblyResolver.cs
- SecurityPolicyVersion.cs
- OrderedEnumerableRowCollection.cs
- Dictionary.cs
- ExecutionContext.cs
- GradientStop.cs
- WebPartEditorOkVerb.cs
- FlowDocumentPaginator.cs
- MetadataItem.cs
- Point3DCollection.cs
- ExpressionBindingsDialog.cs
- MimeMultiPart.cs
- Point4D.cs
- XmlChildNodes.cs
- AttributedMetaModel.cs
- ColumnResizeAdorner.cs
- BooleanFacetDescriptionElement.cs
- CounterSampleCalculator.cs
- Size3D.cs
- HttpHandlersSection.cs
- HelpInfo.cs
- UnmanagedMemoryStream.cs
- DataViewListener.cs
- OracleTransaction.cs
- CallbackTimeoutsBehavior.cs
- UInt64Storage.cs
- HtmlInputButton.cs
- X509SecurityTokenProvider.cs
- Part.cs
- TextElement.cs
- OrderedDictionary.cs
- SqlRecordBuffer.cs
- TextEvent.cs
- RequestCachePolicyConverter.cs
- HeaderCollection.cs
- SecurityRuntime.cs
- Wildcard.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- GlobalItem.cs
- OrthographicCamera.cs
- EntityDataReader.cs
- DataAdapter.cs
- WebPartAuthorizationEventArgs.cs
- ServicePoint.cs
- IntAverageAggregationOperator.cs
- StatusStrip.cs
- ExpressionDumper.cs
- Fonts.cs
- SoapExtensionStream.cs
- ListViewUpdateEventArgs.cs
- Hashtable.cs
- EventHandlerList.cs
- Calendar.cs
- CompiledRegexRunnerFactory.cs
- SerialReceived.cs
- GridViewDeleteEventArgs.cs
- QilGenerator.cs
- FrameworkElementFactory.cs
- AssemblyAssociatedContentFileAttribute.cs
- Number.cs
- DependencyPropertyAttribute.cs
- MenuEventArgs.cs
- TextLineResult.cs
- MarkupProperty.cs
- ReadOnlyObservableCollection.cs
- UrlRoutingHandler.cs
- SQLChars.cs
- CloudCollection.cs
- RowSpanVector.cs
- ConnectionPoint.cs
- EditingCommands.cs
- StorageEndPropertyMapping.cs
- DataTableReaderListener.cs
- BufferedResponseStream.cs
- WorkflowQueuingService.cs
- LogArchiveSnapshot.cs
- Types.cs
- RootBuilder.cs
- Cell.cs
- SqlParameterCollection.cs
- XmlEntity.cs
- ResourceReferenceExpressionConverter.cs
- Descriptor.cs
- ChtmlCommandAdapter.cs
- EncoderParameters.cs
- Permission.cs
- RefExpr.cs
- StylusShape.cs
- XXXOnTypeBuilderInstantiation.cs
- BehaviorEditorPart.cs
- SupportsEventValidationAttribute.cs
- XmlWriterTraceListener.cs
- BooleanSwitch.cs