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
- MsmqQueue.cs
- CodeMemberField.cs
- SqlCacheDependencyDatabase.cs
- CategoryAttribute.cs
- SegmentInfo.cs
- SqlProviderServices.cs
- ClientTargetCollection.cs
- CodeParameterDeclarationExpressionCollection.cs
- InstancePersistenceContext.cs
- GridItemCollection.cs
- LocalValueEnumerator.cs
- PenContext.cs
- ImageAutomationPeer.cs
- XmlAttributeAttribute.cs
- MobileTextWriter.cs
- ItemPager.cs
- PropertyGridEditorPart.cs
- PenLineCapValidation.cs
- HyperLinkField.cs
- UInt64Storage.cs
- NameTable.cs
- Vector3DCollection.cs
- FixedPageStructure.cs
- Annotation.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- EntityDataSourceDataSelection.cs
- TextElement.cs
- HebrewCalendar.cs
- CheckBoxFlatAdapter.cs
- DataException.cs
- DataListItemEventArgs.cs
- IteratorAsyncResult.cs
- GlyphShapingProperties.cs
- ExceptionAggregator.cs
- PrincipalPermission.cs
- SchemaDeclBase.cs
- Label.cs
- NotFiniteNumberException.cs
- CallbackHandler.cs
- RegexRunner.cs
- OverflowException.cs
- DocumentGridPage.cs
- ServiceMoniker.cs
- SystemIcons.cs
- ColumnPropertiesGroup.cs
- WebServiceTypeData.cs
- RichTextBox.cs
- XomlDesignerLoader.cs
- DefaultAsyncDataDispatcher.cs
- MenuItemStyleCollection.cs
- IntSecurity.cs
- basecomparevalidator.cs
- ClientApiGenerator.cs
- TextureBrush.cs
- StylusPlugInCollection.cs
- EventManager.cs
- CodeGroup.cs
- AssertFilter.cs
- TrackingMemoryStreamFactory.cs
- RuleValidation.cs
- ImportFileRequest.cs
- RoutedEventConverter.cs
- DoubleAnimationClockResource.cs
- FixUp.cs
- ActivationArguments.cs
- ThreadExceptionDialog.cs
- ObjectPersistData.cs
- DetailsView.cs
- PageCatalogPart.cs
- FlowDocumentPaginator.cs
- XsltLoader.cs
- PathParser.cs
- InkPresenterAutomationPeer.cs
- Win32.cs
- BaseResourcesBuildProvider.cs
- RequestCache.cs
- mediapermission.cs
- SelectedGridItemChangedEvent.cs
- SerializableAttribute.cs
- PreviousTrackingServiceAttribute.cs
- UnsafeNativeMethods.cs
- AvTraceFormat.cs
- SoapFault.cs
- SortKey.cs
- CodeNamespace.cs
- RetrieveVirtualItemEventArgs.cs
- SecurityPolicySection.cs
- ComplexTypeEmitter.cs
- MaterialGroup.cs
- AssertHelper.cs
- JsonFormatGeneratorStatics.cs
- LocalValueEnumerator.cs
- FilteredAttributeCollection.cs
- CompModHelpers.cs
- UnsafeNativeMethods.cs
- ButtonBase.cs
- ApplicationManager.cs
- CommandLibraryHelper.cs
- AuthenticationModuleElementCollection.cs
- TextDecorationCollectionConverter.cs