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
- SafeNativeMemoryHandle.cs
- ExpressionVisitor.cs
- MailWriter.cs
- InputReportEventArgs.cs
- HttpResponse.cs
- ControlCachePolicy.cs
- UInt32.cs
- TextServicesPropertyRanges.cs
- WebPartCatalogAddVerb.cs
- CompoundFileStorageReference.cs
- ConstructorNeedsTagAttribute.cs
- validationstate.cs
- TextDecorationCollection.cs
- TrackingWorkflowEventArgs.cs
- Point3DAnimation.cs
- Border.cs
- SByteConverter.cs
- FolderLevelBuildProvider.cs
- Section.cs
- ProtocolsSection.cs
- Queue.cs
- FlowLayoutPanelDesigner.cs
- BaseProcessProtocolHandler.cs
- DiscardableAttribute.cs
- MarshalDirectiveException.cs
- SafeNativeMethods.cs
- TextLineBreak.cs
- LocalTransaction.cs
- ElementsClipboardData.cs
- SearchForVirtualItemEventArgs.cs
- DiscoveryClientChannelFactory.cs
- FormViewInsertEventArgs.cs
- CodeTypeConstructor.cs
- DataGridViewCellCancelEventArgs.cs
- Content.cs
- SeverityFilter.cs
- RenderDataDrawingContext.cs
- XmlKeywords.cs
- UndoEngine.cs
- Size.cs
- TransformerConfigurationWizardBase.cs
- KnownIds.cs
- AuthenticateEventArgs.cs
- ConvertEvent.cs
- DummyDataSource.cs
- ResourceDisplayNameAttribute.cs
- Baml2006ReaderFrame.cs
- SqlServices.cs
- SimpleFieldTemplateUserControl.cs
- wgx_render.cs
- DropShadowBitmapEffect.cs
- SQLByte.cs
- RuleSettings.cs
- RemotingConfiguration.cs
- DetailsViewModeEventArgs.cs
- WebPartConnectionsEventArgs.cs
- WebPartCatalogAddVerb.cs
- SQLRoleProvider.cs
- SynchronizingStream.cs
- VirtualDirectoryMappingCollection.cs
- PathFigure.cs
- localization.cs
- ExpanderAutomationPeer.cs
- UrlMappingsSection.cs
- ListBindingConverter.cs
- XamlParser.cs
- DatePickerAutomationPeer.cs
- XPathChildIterator.cs
- FlowDocumentPage.cs
- LockCookie.cs
- BaseUriWithWildcard.cs
- HttpHandlerAction.cs
- ManagedFilter.cs
- FactoryGenerator.cs
- CompositeKey.cs
- RecognitionResult.cs
- HtmlShimManager.cs
- XmlSchemaSimpleContentExtension.cs
- EventWaitHandle.cs
- FunctionDetailsReader.cs
- HostUtils.cs
- _HTTPDateParse.cs
- XmlSchemaValidationException.cs
- TextEncodedRawTextWriter.cs
- codemethodreferenceexpression.cs
- AudioFileOut.cs
- GeometryValueSerializer.cs
- InfoCardTraceRecord.cs
- FilterQuery.cs
- OdbcCommand.cs
- AppDomainManager.cs
- Group.cs
- ListenerTraceUtility.cs
- SynchronizedInputHelper.cs
- DefaultHttpHandler.cs
- PageBuildProvider.cs
- MsmqBindingFilter.cs
- EndSelectCardRequest.cs
- Int32CAMarshaler.cs
- DataGridBoolColumn.cs