Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MarshalByValueComponent.cs
- CanonicalFontFamilyReference.cs
- NetMsmqSecurityMode.cs
- DataGridViewCellEventArgs.cs
- DataSourceGroupCollection.cs
- ContainerParaClient.cs
- AnimationTimeline.cs
- XmlILModule.cs
- DataGridViewButtonColumn.cs
- DeferredRunTextReference.cs
- RectValueSerializer.cs
- DetailsViewRowCollection.cs
- JulianCalendar.cs
- cryptoapiTransform.cs
- UnionExpr.cs
- DataTableReaderListener.cs
- RuntimeCompatibilityAttribute.cs
- Stacktrace.cs
- ImageDesigner.cs
- ExtenderProvidedPropertyAttribute.cs
- SoapSchemaExporter.cs
- BindToObject.cs
- TextPointerBase.cs
- AdRotatorDesigner.cs
- InkPresenterAutomationPeer.cs
- CapiSymmetricAlgorithm.cs
- SecurityTokenProvider.cs
- BitSet.cs
- RequestSecurityToken.cs
- WebPartsPersonalizationAuthorization.cs
- TextWriter.cs
- XmlAttributeCollection.cs
- Base64Decoder.cs
- WebConfigManager.cs
- ToolBarButtonDesigner.cs
- ScriptBehaviorDescriptor.cs
- TransformerInfoCollection.cs
- IERequestCache.cs
- CompilationLock.cs
- StringDictionaryEditor.cs
- SimpleColumnProvider.cs
- SqlConnectionHelper.cs
- OleDbConnectionFactory.cs
- XmlnsCache.cs
- Literal.cs
- SymbolEqualComparer.cs
- ObjRef.cs
- WindowPattern.cs
- HashCodeCombiner.cs
- AppSettingsReader.cs
- DSASignatureFormatter.cs
- TimerElapsedEvenArgs.cs
- ProcessStartInfo.cs
- WebPartManagerDesigner.cs
- Brushes.cs
- XmlEncoding.cs
- QueryCacheEntry.cs
- PasswordBoxAutomationPeer.cs
- XomlSerializationHelpers.cs
- serverconfig.cs
- MarkedHighlightComponent.cs
- IFlowDocumentViewer.cs
- ToolStripDropDownClosedEventArgs.cs
- Odbc32.cs
- QueryAccessibilityHelpEvent.cs
- RegistryExceptionHelper.cs
- BitmapSizeOptions.cs
- LinqDataSourceSelectEventArgs.cs
- ObjectDataSourceMethodEventArgs.cs
- SplineQuaternionKeyFrame.cs
- ObjectMemberMapping.cs
- userdatakeys.cs
- ValidationEventArgs.cs
- TreeBuilder.cs
- SourceFilter.cs
- DiscoveryClientReferences.cs
- RowType.cs
- Literal.cs
- ServiceInfo.cs
- ConfigurationManagerInternal.cs
- HttpResponseWrapper.cs
- FormViewCommandEventArgs.cs
- DataIdProcessor.cs
- CheckBoxStandardAdapter.cs
- NativeObjectSecurity.cs
- isolationinterop.cs
- RequestReplyCorrelator.cs
- Accessible.cs
- DateTimeValueSerializer.cs
- XmlException.cs
- _ListenerRequestStream.cs
- Transform3DCollection.cs
- PathStreamGeometryContext.cs
- _WebProxyDataBuilder.cs
- TraceSection.cs
- ZeroOpNode.cs
- UIHelper.cs
- AdPostCacheSubstitution.cs
- NameValueFileSectionHandler.cs
- FixedBufferAttribute.cs