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
- XmlSchemaGroupRef.cs
- MetadataItemEmitter.cs
- OneToOneMappingSerializer.cs
- OletxTransactionManager.cs
- GlobalProxySelection.cs
- HwndHost.cs
- FieldCollectionEditor.cs
- SocketInformation.cs
- XomlCompilerHelpers.cs
- StringArrayConverter.cs
- RegistryKey.cs
- Rfc2898DeriveBytes.cs
- HashHelper.cs
- Property.cs
- NullableLongMinMaxAggregationOperator.cs
- DataGridViewRowHeaderCell.cs
- InvokePatternIdentifiers.cs
- IEnumerable.cs
- StoryFragments.cs
- CanonicalFormWriter.cs
- ProfilePropertySettingsCollection.cs
- SafeLocalMemHandle.cs
- KeyboardDevice.cs
- infer.cs
- HttpModulesSection.cs
- SchemaObjectWriter.cs
- StylusPointProperty.cs
- AudioLevelUpdatedEventArgs.cs
- Stylus.cs
- VerificationException.cs
- ConfigurationValue.cs
- CompModSwitches.cs
- StandardTransformFactory.cs
- SchemaElementLookUpTableEnumerator.cs
- XmlEventCache.cs
- SqlRowUpdatingEvent.cs
- Journaling.cs
- TypeRefElement.cs
- AppDomainCompilerProxy.cs
- Vector3DCollection.cs
- VisualBrush.cs
- SqlHelper.cs
- HtmlForm.cs
- RenderData.cs
- ProcessInputEventArgs.cs
- ReferencedAssembly.cs
- SelectionItemProviderWrapper.cs
- XmlReader.cs
- MsiStyleLogWriter.cs
- ConcurrentDictionary.cs
- _OverlappedAsyncResult.cs
- UIPermission.cs
- DataServiceRequestException.cs
- FixedSOMLineCollection.cs
- shaperfactoryquerycachekey.cs
- SqlDependency.cs
- WindowsSpinner.cs
- EdgeModeValidation.cs
- XmlSchemaProviderAttribute.cs
- ValidationErrorCollection.cs
- Viewport3DVisual.cs
- LinkAreaEditor.cs
- DataGridViewSelectedColumnCollection.cs
- BitmapFrame.cs
- InvalidFilterCriteriaException.cs
- PackageDigitalSignatureManager.cs
- FontStretches.cs
- MetadataItemEmitter.cs
- AdornerPresentationContext.cs
- TextEditorTyping.cs
- QueryReaderSettings.cs
- LocatorPartList.cs
- ConfigurationManagerInternalFactory.cs
- WpfKnownMemberInvoker.cs
- StructuredProperty.cs
- DataGridViewSelectedCellCollection.cs
- StatusBarPanel.cs
- RealProxy.cs
- ChangePasswordAutoFormat.cs
- XsdCachingReader.cs
- TraceContextRecord.cs
- UpdateCommand.cs
- FocusWithinProperty.cs
- EventLogPermissionEntry.cs
- NameTable.cs
- wmiprovider.cs
- assertwrapper.cs
- TextDocumentView.cs
- SyndicationCategory.cs
- SqlCaseSimplifier.cs
- CommandDevice.cs
- EpmContentSerializerBase.cs
- DynamicFilterExpression.cs
- WindowsIdentity.cs
- AppDomainFactory.cs
- ComboBox.cs
- PostBackTrigger.cs
- Control.cs
- X509Certificate2Collection.cs
- VScrollBar.cs