Code:
/ FX-1434 / FX-1434 / 1.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
- SafeNativeMethods.cs
- XhtmlBasicSelectionListAdapter.cs
- PeerTransportElement.cs
- OleDbErrorCollection.cs
- ParserContext.cs
- PrintDialogDesigner.cs
- WorkflowValidationFailedException.cs
- TileModeValidation.cs
- ByeOperationAsyncResult.cs
- TextCollapsingProperties.cs
- ToolStripPanel.cs
- ToolBarOverflowPanel.cs
- WebHttpEndpointElement.cs
- DropShadowBitmapEffect.cs
- QueueSurrogate.cs
- CodeBinaryOperatorExpression.cs
- _FixedSizeReader.cs
- WebZone.cs
- XhtmlTextWriter.cs
- CaseExpr.cs
- XmlKeywords.cs
- AccessDataSourceView.cs
- Panel.cs
- DirtyTextRange.cs
- IISMapPath.cs
- ApplicationFileCodeDomTreeGenerator.cs
- EditorResources.cs
- ToolTipAutomationPeer.cs
- LinkTarget.cs
- CodeStatementCollection.cs
- IgnoreFileBuildProvider.cs
- LoginName.cs
- LogReserveAndAppendState.cs
- TransformCryptoHandle.cs
- LocatorGroup.cs
- ProfileSettingsCollection.cs
- Sentence.cs
- ReversePositionQuery.cs
- BufferedResponseStream.cs
- WebProxyScriptElement.cs
- ChooseAction.cs
- MergeFailedEvent.cs
- GrammarBuilderRuleRef.cs
- XmlCharCheckingWriter.cs
- UriSection.cs
- Journaling.cs
- UserControlParser.cs
- Task.cs
- ToolStripButton.cs
- ModelTreeEnumerator.cs
- MutexSecurity.cs
- sqlcontext.cs
- ThemeableAttribute.cs
- LinearGradientBrush.cs
- NamespaceList.cs
- BaseHashHelper.cs
- ConnectionProviderAttribute.cs
- TemplateInstanceAttribute.cs
- FolderBrowserDialog.cs
- RectangleGeometry.cs
- MetadataSource.cs
- TreeWalkHelper.cs
- FastPropertyAccessor.cs
- AuthorizationRuleCollection.cs
- OleDbParameter.cs
- AssemblyBuilder.cs
- PerspectiveCamera.cs
- XmlSerializationGeneratedCode.cs
- XmlSchemaAny.cs
- DataGridViewColumnCollectionEditor.cs
- XmlSerializationReader.cs
- UpdateTranslator.cs
- DataBindingExpressionBuilder.cs
- Glyph.cs
- ToolStripDropDownMenu.cs
- SessionParameter.cs
- SettingsAttributeDictionary.cs
- IncrementalReadDecoders.cs
- DataGridViewCheckBoxCell.cs
- WebBrowserUriTypeConverter.cs
- UniqueContractNameValidationBehavior.cs
- SchemaNames.cs
- GCHandleCookieTable.cs
- FilterElement.cs
- DataServiceConfiguration.cs
- base64Transforms.cs
- AppLevelCompilationSectionCache.cs
- AsymmetricKeyExchangeFormatter.cs
- BaseDataListPage.cs
- MsmqIntegrationReceiveParameters.cs
- BackStopAuthenticationModule.cs
- PerfCounterSection.cs
- XmlObjectSerializerReadContext.cs
- AxHost.cs
- UnsafeNativeMethods.cs
- ReadingWritingEntityEventArgs.cs
- Maps.cs
- UmAlQuraCalendar.cs
- SQLString.cs
- VisualStateGroup.cs