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
- JsonSerializer.cs
- IndexExpression.cs
- KoreanCalendar.cs
- Transform.cs
- EntitySqlException.cs
- CurrentChangingEventManager.cs
- xdrvalidator.cs
- SingleObjectCollection.cs
- Viewport2DVisual3D.cs
- ObjectTag.cs
- XamlPathDataSerializer.cs
- GridEntry.cs
- DbUpdateCommandTree.cs
- RuntimeConfig.cs
- PeerCustomResolverBindingElement.cs
- oledbmetadatacollectionnames.cs
- Matrix3D.cs
- SelectionEditor.cs
- OperatingSystem.cs
- WebUtil.cs
- LayoutSettings.cs
- CharacterMetrics.cs
- WebPartVerbsEventArgs.cs
- TerminatorSinks.cs
- XmlSchemaRedefine.cs
- SqlFactory.cs
- PagedDataSource.cs
- AddressHeader.cs
- AddInContractAttribute.cs
- ConvertEvent.cs
- OutputCacheSettings.cs
- CompilerScopeManager.cs
- WorkflowMarkupSerializationManager.cs
- SettingsContext.cs
- XmlLoader.cs
- PolyLineSegment.cs
- DbConnectionPoolGroup.cs
- ProcessModelSection.cs
- BorderGapMaskConverter.cs
- AddInToken.cs
- XmlIlVisitor.cs
- Tag.cs
- QueryTask.cs
- Events.cs
- PixelFormatConverter.cs
- SqlInfoMessageEvent.cs
- EventMappingSettingsCollection.cs
- InteropAutomationProvider.cs
- SplitterPanel.cs
- RC2CryptoServiceProvider.cs
- CodeTypeOfExpression.cs
- ObservableCollection.cs
- TracingConnectionInitiator.cs
- PasswordTextNavigator.cs
- FileUpload.cs
- BuildResultCache.cs
- BaseAsyncResult.cs
- ObjectDataSourceView.cs
- TreeIterator.cs
- TextStore.cs
- Border.cs
- CultureInfo.cs
- KeyManager.cs
- SqlServices.cs
- ItemChangedEventArgs.cs
- RSAPKCS1SignatureDeformatter.cs
- documentsequencetextcontainer.cs
- TaskForm.cs
- OperationResponse.cs
- AdRotator.cs
- ProviderUtil.cs
- SeekableReadStream.cs
- CultureSpecificStringDictionary.cs
- CalendarTable.cs
- BasicDesignerLoader.cs
- DatatypeImplementation.cs
- DecoratedNameAttribute.cs
- MSHTMLHost.cs
- ValueTypeFieldReference.cs
- SiteMembershipCondition.cs
- BaseParagraph.cs
- SafePointer.cs
- ComponentSerializationService.cs
- DataGridViewRowCollection.cs
- ThreadExceptionDialog.cs
- UInt64Converter.cs
- Inflater.cs
- SiteMapSection.cs
- NumberSubstitution.cs
- ByteRangeDownloader.cs
- XmlSchemaAppInfo.cs
- DNS.cs
- SourceSwitch.cs
- Win32SafeHandles.cs
- ObjectSecurity.cs
- ProxyGenerator.cs
- oledbmetadatacolumnnames.cs
- WebPartDisplayMode.cs
- Point.cs
- _FtpControlStream.cs