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
- TranslateTransform3D.cs
- EdmFunctions.cs
- Encoder.cs
- TransformerInfo.cs
- DateTimeValueSerializerContext.cs
- METAHEADER.cs
- InputProcessorProfilesLoader.cs
- WindowsNonControl.cs
- Expander.cs
- BaseComponentEditor.cs
- Point3DAnimationBase.cs
- FormParameter.cs
- control.ime.cs
- WebPartCatalogAddVerb.cs
- RegionInfo.cs
- PbrsForward.cs
- DescendantQuery.cs
- XmlHierarchicalDataSourceView.cs
- XamlWriter.cs
- ClientOptions.cs
- TouchEventArgs.cs
- SQLInt32Storage.cs
- ThaiBuddhistCalendar.cs
- _NetworkingPerfCounters.cs
- MergeLocalizationDirectives.cs
- AdjustableArrowCap.cs
- ScriptIgnoreAttribute.cs
- MetadataFile.cs
- TableLayoutPanelCellPosition.cs
- CircleHotSpot.cs
- SqlProfileProvider.cs
- PersonalizableAttribute.cs
- CLRBindingWorker.cs
- PixelFormatConverter.cs
- Point.cs
- ExplicitDiscriminatorMap.cs
- TrackingMemoryStream.cs
- SchemaDeclBase.cs
- EndpointDesigner.cs
- SecureConversationSecurityTokenParameters.cs
- autovalidator.cs
- StoryFragments.cs
- Size.cs
- ToolStripSeparator.cs
- SystemTcpConnection.cs
- CurrentChangedEventManager.cs
- HttpContext.cs
- lengthconverter.cs
- DateTimeStorage.cs
- BinaryMethodMessage.cs
- Help.cs
- FieldToken.cs
- WebEventTraceProvider.cs
- DesignerGeometryHelper.cs
- TypeTypeConverter.cs
- M3DUtil.cs
- DataRelationCollection.cs
- DataGridItem.cs
- FontFamily.cs
- QueryExpression.cs
- TextSimpleMarkerProperties.cs
- ServiceModelSecurityTokenTypes.cs
- System.Data_BID.cs
- Column.cs
- XmlComment.cs
- SharedStream.cs
- DBConnection.cs
- CurrencyWrapper.cs
- SoapMessage.cs
- MemberMaps.cs
- TTSEvent.cs
- ColorConverter.cs
- QilCloneVisitor.cs
- PhysicalFontFamily.cs
- SQLMoneyStorage.cs
- DataFormats.cs
- EqualityComparer.cs
- PropertyEmitter.cs
- DataGridComboBoxColumn.cs
- MetadataSource.cs
- DataViewManagerListItemTypeDescriptor.cs
- UnicodeEncoding.cs
- MulticastNotSupportedException.cs
- TransformedBitmap.cs
- Row.cs
- FlowDecision.cs
- MenuItemCollectionEditor.cs
- OdbcReferenceCollection.cs
- CommandLibraryHelper.cs
- DataTemplate.cs
- Trigger.cs
- OdbcPermission.cs
- MobileUserControl.cs
- TemplatePagerField.cs
- ManagedIStream.cs
- CategoryAttribute.cs
- ObjectDataSourceEventArgs.cs
- TypeUsage.cs
- WebPart.cs
- Expressions.cs