Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// 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);
}
}
}
// 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
- CancelEventArgs.cs
- TemplateBindingExtension.cs
- SetStoryboardSpeedRatio.cs
- PnrpPermission.cs
- SmiXetterAccessMap.cs
- diagnosticsswitches.cs
- XmlNodeChangedEventManager.cs
- OdbcConnectionStringbuilder.cs
- Rule.cs
- PackUriHelper.cs
- ProfileService.cs
- GrammarBuilderRuleRef.cs
- TraceListener.cs
- SelectionEditor.cs
- TemplateBindingExtensionConverter.cs
- SqlClientWrapperSmiStreamChars.cs
- ArrangedElement.cs
- PkcsMisc.cs
- ChainedAsyncResult.cs
- RequestNavigateEventArgs.cs
- ToolStripGripRenderEventArgs.cs
- DataControlButton.cs
- VariableAction.cs
- ChangeInterceptorAttribute.cs
- ToolBarButtonClickEvent.cs
- XmlSchemaSimpleContent.cs
- SecurityTokenAuthenticator.cs
- InfiniteTimeSpanConverter.cs
- InstanceDescriptor.cs
- ResourceAssociationSetEnd.cs
- DesignerAttribute.cs
- SuppressMessageAttribute.cs
- WebControlsSection.cs
- MDIClient.cs
- CharacterBufferReference.cs
- _TLSstream.cs
- InertiaRotationBehavior.cs
- ComEventsSink.cs
- SqlUDTStorage.cs
- SystemDiagnosticsSection.cs
- EventPropertyMap.cs
- ItemsControl.cs
- InvokeProviderWrapper.cs
- PointCollection.cs
- IconConverter.cs
- AssemblyBuilder.cs
- AQNBuilder.cs
- ButtonChrome.cs
- ExceptQueryOperator.cs
- RuntimeHandles.cs
- GatewayDefinition.cs
- WebHeaderCollection.cs
- ElementNotAvailableException.cs
- GroupBox.cs
- ToolZone.cs
- SerializationException.cs
- QilChoice.cs
- AutomationTextAttribute.cs
- PropertyMappingExceptionEventArgs.cs
- WebPartTransformerAttribute.cs
- TraceHandler.cs
- DesignTimeType.cs
- DelegatingMessage.cs
- BitmapInitialize.cs
- CodeNamespace.cs
- ChangeTracker.cs
- HtmlToClrEventProxy.cs
- MobileCapabilities.cs
- ParenthesizePropertyNameAttribute.cs
- DbProviderFactoriesConfigurationHandler.cs
- ReflectionUtil.cs
- XsdBuildProvider.cs
- HttpHandlerAction.cs
- DebugView.cs
- Vector3DKeyFrameCollection.cs
- DocumentSchemaValidator.cs
- MenuScrollingVisibilityConverter.cs
- QuaternionAnimation.cs
- ConnectionConsumerAttribute.cs
- CategoryNameCollection.cs
- PersonalizationStateInfoCollection.cs
- RowToFieldTransformer.cs
- PersonalizationEntry.cs
- TextContainerChangeEventArgs.cs
- RewritingValidator.cs
- XmlKeywords.cs
- ValidationUtility.cs
- AvTraceFormat.cs
- LinqDataSource.cs
- OrderByLifter.cs
- CellQuery.cs
- ResourceProviderFactory.cs
- ImmComposition.cs
- SrgsElementFactory.cs
- XPathDescendantIterator.cs
- MimeObjectFactory.cs
- PathSegmentCollection.cs
- DesignerObjectListAdapter.cs
- SqlUtil.cs
- GlobalItem.cs