Code:
/ 4.0 / 4.0 / 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. // ==++== // // 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
- SendingRequestEventArgs.cs
- NotifyIcon.cs
- PathData.cs
- FusionWrap.cs
- MembershipSection.cs
- SqlDataSourceCustomCommandEditor.cs
- VirtualDirectoryMapping.cs
- RightNameExpirationInfoPair.cs
- objectresult_tresulttype.cs
- Speller.cs
- MULTI_QI.cs
- CannotUnloadAppDomainException.cs
- SqlBulkCopyColumnMappingCollection.cs
- XamlReader.cs
- XslTransformFileEditor.cs
- UserValidatedEventArgs.cs
- SqlDependency.cs
- Button.cs
- TerminatorSinks.cs
- SetterBaseCollection.cs
- ForeignKeyFactory.cs
- DataServiceStreamResponse.cs
- VirtualPathUtility.cs
- DescendentsWalkerBase.cs
- ReferenceConverter.cs
- Sql8ConformanceChecker.cs
- Documentation.cs
- SqlParameter.cs
- TextDecoration.cs
- SqlDataSourceQueryConverter.cs
- StringExpressionSet.cs
- BindingOperations.cs
- XmlIterators.cs
- OdbcHandle.cs
- FormatterConverter.cs
- StaticTextPointer.cs
- ThreadExceptionDialog.cs
- SecurityManager.cs
- ExpressionEditorAttribute.cs
- Point3DCollection.cs
- TextParaLineResult.cs
- CursorConverter.cs
- TokenBasedSetEnumerator.cs
- Line.cs
- VerticalAlignConverter.cs
- LocalizationParserHooks.cs
- CompoundFileStorageReference.cs
- TreeNodeConverter.cs
- OwnerDrawPropertyBag.cs
- SmtpClient.cs
- MultipartIdentifier.cs
- OrderedDictionaryStateHelper.cs
- BufferModesCollection.cs
- ExpressionVisitor.cs
- URLAttribute.cs
- XmlJsonReader.cs
- DynamicUpdateCommand.cs
- WebEventCodes.cs
- ItemCollectionEditor.cs
- TextRangeProviderWrapper.cs
- HostProtectionPermission.cs
- HttpListenerResponse.cs
- XmlMembersMapping.cs
- BaseEntityWrapper.cs
- ModelVisual3D.cs
- ByteStorage.cs
- TraceEventCache.cs
- WinFormsSpinner.cs
- XmlWellformedWriter.cs
- ViewStateModeByIdAttribute.cs
- CellParaClient.cs
- HighlightOverlayGlyph.cs
- TypefaceCollection.cs
- ContractMethodParameterInfo.cs
- ToolStripOverflow.cs
- unsafenativemethodstextservices.cs
- Point3DAnimation.cs
- BroadcastEventHelper.cs
- InOutArgumentConverter.cs
- BadImageFormatException.cs
- PerfCounterSection.cs
- DataComponentNameHandler.cs
- LoadedOrUnloadedOperation.cs
- VerificationException.cs
- CallSiteHelpers.cs
- MachineKeyValidationConverter.cs
- MethodAccessException.cs
- KeyTimeConverter.cs
- ClaimTypeElementCollection.cs
- Message.cs
- ItemContainerGenerator.cs
- RunInstallerAttribute.cs
- DataTableCollection.cs
- LinqExpressionNormalizer.cs
- DocumentsTrace.cs
- LogArchiveSnapshot.cs
- TextSelectionHelper.cs
- KeyTime.cs
- MulticastNotSupportedException.cs
- PropertyDescriptor.cs