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
- MetadataSection.cs
- WebPartDisplayModeCancelEventArgs.cs
- ResponseBodyWriter.cs
- IOThreadTimer.cs
- DbConnectionStringCommon.cs
- ServiceDescription.cs
- Int32CollectionValueSerializer.cs
- MetadataArtifactLoader.cs
- HitTestFilterBehavior.cs
- EmptyEnumerator.cs
- ConfigurationPermission.cs
- peersecuritysettings.cs
- CustomExpressionEventArgs.cs
- MenuItemBindingCollection.cs
- ProtocolsConfigurationHandler.cs
- FilteredXmlReader.cs
- HtmlCalendarAdapter.cs
- BufferModeSettings.cs
- Normalization.cs
- FacetChecker.cs
- EventArgs.cs
- CustomError.cs
- EntityException.cs
- DesignerTransactionCloseEvent.cs
- XmlSerializer.cs
- ImportStoreException.cs
- DurationConverter.cs
- FlowDocumentReaderAutomationPeer.cs
- HttpRequestWrapper.cs
- GridViewColumnHeaderAutomationPeer.cs
- TreeViewCancelEvent.cs
- CodeDomSerializer.cs
- CodeStatement.cs
- StringUtil.cs
- XmlSecureResolver.cs
- ArcSegment.cs
- DataGridViewAccessibleObject.cs
- ActivityBuilderXamlWriter.cs
- ExtenderProvidedPropertyAttribute.cs
- ColorContext.cs
- PropertyItem.cs
- FixedDocument.cs
- GeometryValueSerializer.cs
- InputReportEventArgs.cs
- WebPartDisplayMode.cs
- DateTime.cs
- LinqDataSourceInsertEventArgs.cs
- VerificationAttribute.cs
- ReferentialConstraint.cs
- ItemCheckedEvent.cs
- IsolatedStorage.cs
- BaseProcessProtocolHandler.cs
- UnsafeNativeMethods.cs
- ImageMap.cs
- NavigatorOutput.cs
- NativeStructs.cs
- PropertySourceInfo.cs
- InProcStateClientManager.cs
- DesignerActionPanel.cs
- ArraySubsetEnumerator.cs
- ReadContentAsBinaryHelper.cs
- SafeThemeHandle.cs
- ListViewContainer.cs
- AlphabeticalEnumConverter.cs
- ToolboxItemFilterAttribute.cs
- ContentElement.cs
- bidPrivateBase.cs
- ElementHostPropertyMap.cs
- MetadataImporterQuotas.cs
- TextTreeTextElementNode.cs
- DataPagerFieldItem.cs
- DispatcherExceptionFilterEventArgs.cs
- Size3D.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- ConsumerConnectionPoint.cs
- XmlSchemaType.cs
- EntitySqlException.cs
- Context.cs
- DataGridViewColumnHeaderCell.cs
- WindowsListViewSubItem.cs
- RegexCapture.cs
- SmtpNetworkElement.cs
- ConfigXmlReader.cs
- elementinformation.cs
- XmlRawWriterWrapper.cs
- ItemMap.cs
- ProfileProvider.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- graph.cs
- ScrollEvent.cs
- HttpContextWrapper.cs
- Message.cs
- DataGridViewColumnConverter.cs
- XpsFontSerializationService.cs
- OlePropertyStructs.cs
- SqlCrossApplyToCrossJoin.cs
- WSHttpBinding.cs
- ParameterBuilder.cs
- NativeMethods.cs
- Vector3DIndependentAnimationStorage.cs