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
- DataGridView.cs
- HttpStreamMessageEncoderFactory.cs
- ColumnReorderedEventArgs.cs
- ChangeTracker.cs
- FormCollection.cs
- NamespaceEmitter.cs
- RepeatInfo.cs
- FormsAuthenticationUserCollection.cs
- TextEncodedRawTextWriter.cs
- DragStartedEventArgs.cs
- SettingsProperty.cs
- OleDbRowUpdatedEvent.cs
- OracleInfoMessageEventArgs.cs
- WmiPutTraceRecord.cs
- CollectionChangedEventManager.cs
- XmlNullResolver.cs
- TreeBuilder.cs
- DbConnectionPoolGroupProviderInfo.cs
- RequestTimeoutManager.cs
- XmlEncoding.cs
- HttpRuntimeSection.cs
- GeometryHitTestParameters.cs
- OpacityConverter.cs
- GeneralTransform3D.cs
- DefaultAuthorizationContext.cs
- XmlObjectSerializerContext.cs
- DbParameterCollection.cs
- ResourcePermissionBase.cs
- DataGridLengthConverter.cs
- CounterCreationDataCollection.cs
- FacetDescriptionElement.cs
- ContentType.cs
- MediaPlayerState.cs
- Domain.cs
- ListManagerBindingsCollection.cs
- CultureMapper.cs
- MachineKeySection.cs
- NameSpaceEvent.cs
- ChooseAction.cs
- SqlCommandBuilder.cs
- LockingPersistenceProvider.cs
- ShaderEffect.cs
- Base64Decoder.cs
- ChannelTracker.cs
- RootBrowserWindowAutomationPeer.cs
- FrameAutomationPeer.cs
- CompatibleIComparer.cs
- DockPanel.cs
- FixedPageStructure.cs
- ExtendedPropertyCollection.cs
- SecurityResources.cs
- SiteMapNodeCollection.cs
- XmlBoundElement.cs
- DbConnectionStringBuilder.cs
- Track.cs
- CodeTypeReferenceCollection.cs
- ZipPackage.cs
- OverflowException.cs
- ToolStripSeparator.cs
- Pair.cs
- CallbackDebugElement.cs
- BreakRecordTable.cs
- GridItemPattern.cs
- HostedImpersonationContext.cs
- SafeMarshalContext.cs
- CodeChecksumPragma.cs
- LayoutEditorPart.cs
- DataGridPageChangedEventArgs.cs
- SecurityTokenResolver.cs
- MenuItemBinding.cs
- ThousandthOfEmRealDoubles.cs
- EntityContainer.cs
- NameValuePermission.cs
- DataSourceControlBuilder.cs
- TablePattern.cs
- HttpModuleAction.cs
- WindowsSlider.cs
- RegexReplacement.cs
- CalendarDay.cs
- LinearKeyFrames.cs
- ComplexTypeEmitter.cs
- CounterCreationDataCollection.cs
- DataColumnMappingCollection.cs
- DiagnosticsConfigurationHandler.cs
- OpenTypeCommon.cs
- MemberAccessException.cs
- Psha1DerivedKeyGenerator.cs
- HMACMD5.cs
- HandoffBehavior.cs
- SafeCertificateStore.cs
- EntityException.cs
- ReadOnlyCollection.cs
- X509Certificate2Collection.cs
- DetailsViewPagerRow.cs
- HandleRef.cs
- Table.cs
- TraceFilter.cs
- BigInt.cs
- DataGridViewColumnEventArgs.cs
- MimeObjectFactory.cs