Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- ResourcesChangeInfo.cs
- DataServiceHost.cs
- CopyNodeSetAction.cs
- ParameterBuilder.cs
- Ref.cs
- DropDownList.cs
- SQLConvert.cs
- DeviceSpecificChoice.cs
- ToolStripDropDown.cs
- PageBuildProvider.cs
- SBCSCodePageEncoding.cs
- XmlWellformedWriter.cs
- SqlInternalConnection.cs
- ConsumerConnectionPointCollection.cs
- DataContractAttribute.cs
- PermissionSetEnumerator.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- Selection.cs
- TextRangeEditTables.cs
- Registry.cs
- LinqDataSourceInsertEventArgs.cs
- NonNullItemCollection.cs
- KeyValuePair.cs
- CompoundFileReference.cs
- DataStreamFromComStream.cs
- PanelContainerDesigner.cs
- NativeCppClassAttribute.cs
- DesignRelationCollection.cs
- WebPartTransformerCollection.cs
- ConfigsHelper.cs
- GridViewAutoFormat.cs
- MiniLockedBorderGlyph.cs
- AuthenticationException.cs
- _NTAuthentication.cs
- DetailsViewDeleteEventArgs.cs
- CfgSemanticTag.cs
- HostnameComparisonMode.cs
- ResourceManager.cs
- Attribute.cs
- TextRangeSerialization.cs
- NativeWindow.cs
- MinMaxParagraphWidth.cs
- HwndAppCommandInputProvider.cs
- StrokeNodeOperations.cs
- ScriptingProfileServiceSection.cs
- NominalTypeEliminator.cs
- DataStreamFromComStream.cs
- DataObjectCopyingEventArgs.cs
- PolicyDesigner.cs
- ComplexTypeEmitter.cs
- ToolboxDataAttribute.cs
- WmiEventSink.cs
- DocumentPageView.cs
- Animatable.cs
- TextTrailingWordEllipsis.cs
- DataServiceResponse.cs
- GlobalEventManager.cs
- XPathAncestorIterator.cs
- SEHException.cs
- PostBackOptions.cs
- CustomCategoryAttribute.cs
- InputManager.cs
- Size3D.cs
- HttpCacheVary.cs
- WCFBuildProvider.cs
- XmlSchemaRedefine.cs
- OrderedDictionary.cs
- RegexParser.cs
- Page.cs
- SelectionListComponentEditor.cs
- OptimalBreakSession.cs
- HttpHeaderCollection.cs
- WpfPayload.cs
- TripleDESCryptoServiceProvider.cs
- SmiContextFactory.cs
- AsymmetricSecurityProtocolFactory.cs
- ManagementInstaller.cs
- Util.cs
- ProviderException.cs
- BinaryObjectReader.cs
- PointKeyFrameCollection.cs
- PointLightBase.cs
- TableParagraph.cs
- Vector.cs
- TextRunCacheImp.cs
- Funcletizer.cs
- Invariant.cs
- XmlMembersMapping.cs
- DirectoryInfo.cs
- IDictionary.cs
- PasswordPropertyTextAttribute.cs
- XamlSerializationHelper.cs
- WebResourceAttribute.cs
- QuerySelectOp.cs
- ComboBoxItem.cs
- CreateParams.cs
- AllMembershipCondition.cs
- StorageBasedPackageProperties.cs
- HttpApplicationFactory.cs
- dbenumerator.cs