Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / X509Certificates / safex509handles.cs / 1305376 / safex509handles.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // SafeX509Handles.cs // namespace System.Security.Cryptography.X509Certificates { using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Runtime.ConstrainedExecution; using System.Runtime.Versioning; using Microsoft.Win32.SafeHandles; // Since we need sometimes to delete the key container associated with a cert // context, the handle used in this class is actually a pointer // to a CERT_CTX unmanaged structure defined in COMX509Certificate.h [System.Security.SecurityCritical] // auto-generated internal sealed class SafeCertContextHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeCertContextHandle() : base (true) {} // 0 is an Invalid Handle internal SafeCertContextHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeCertContextHandle InvalidHandle { get { return new SafeCertContextHandle(IntPtr.Zero); } } internal IntPtr pCertContext { get { if (handle == IntPtr.Zero) return IntPtr.Zero; return Marshal.ReadIntPtr(handle); } } // This method handles the case where pCert == NULL [ResourceExposure(ResourceScope.None)] [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); [System.Security.SecurityCritical] override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } [System.Security.SecurityCritical] // auto-generated internal sealed class SafeCertStoreHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeCertStoreHandle() : base (true) {} // 0 is an Invalid Handle internal SafeCertStoreHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeCertStoreHandle InvalidHandle { get { return new SafeCertStoreHandle(IntPtr.Zero); } } // This method handles the case where hCertStore == NULL [ResourceExposure(ResourceScope.None)] [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); [System.Security.SecurityCritical] override protected bool ReleaseHandle() { _FreeCertStoreContext(handle); return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DispatchChannelSink.cs
- MessageBox.cs
- GACMembershipCondition.cs
- EntityEntry.cs
- SchemaManager.cs
- UserControl.cs
- Types.cs
- DesignerVerb.cs
- SortKey.cs
- SecurityKeyType.cs
- PropertyMappingExceptionEventArgs.cs
- LeaseManager.cs
- RestHandlerFactory.cs
- BamlTreeUpdater.cs
- Vector3DKeyFrameCollection.cs
- XmlQuerySequence.cs
- AudioBase.cs
- HostedHttpContext.cs
- CachedFontFace.cs
- CommandLineParser.cs
- CodeCastExpression.cs
- HttpProxyCredentialType.cs
- DynamicField.cs
- keycontainerpermission.cs
- TreeViewHitTestInfo.cs
- MultiBindingExpression.cs
- RelatedPropertyManager.cs
- SQlBooleanStorage.cs
- MergePropertyDescriptor.cs
- SizeAnimation.cs
- SpellerInterop.cs
- RemoteWebConfigurationHostServer.cs
- DataKeyArray.cs
- RemotingSurrogateSelector.cs
- StackOverflowException.cs
- NoneExcludedImageIndexConverter.cs
- _DigestClient.cs
- PropertyMetadata.cs
- VirtualPathProvider.cs
- ConnectionStringSettings.cs
- x509store.cs
- XmlSchemaFacet.cs
- WebScriptEnablingBehavior.cs
- XmlSchemaAppInfo.cs
- FragmentQueryProcessor.cs
- MultiBindingExpression.cs
- JpegBitmapEncoder.cs
- QilGeneratorEnv.cs
- XmlDocumentFragment.cs
- ToolStripOverflowButton.cs
- HitTestResult.cs
- DeviceFilterEditorDialog.cs
- GridView.cs
- RequestSecurityTokenResponse.cs
- LoginCancelEventArgs.cs
- ValidationSummary.cs
- ObjectStateManager.cs
- EntityProviderServices.cs
- SerialErrors.cs
- NativeWindow.cs
- OdbcEnvironment.cs
- QueryNode.cs
- SqlNode.cs
- FileFormatException.cs
- SecurityTokenReferenceStyle.cs
- ExceptionRoutedEventArgs.cs
- SHA256.cs
- Exception.cs
- FileVersionInfo.cs
- GridViewItemAutomationPeer.cs
- TdsParserSafeHandles.cs
- xsdvalidator.cs
- InheritedPropertyDescriptor.cs
- RectangleF.cs
- TableSectionStyle.cs
- DispatcherFrame.cs
- Panel.cs
- CompoundFileStreamReference.cs
- MenuCommand.cs
- CultureTableRecord.cs
- Stylesheet.cs
- BindableTemplateBuilder.cs
- StylusPointCollection.cs
- RangeValuePatternIdentifiers.cs
- ServiceNameCollection.cs
- OdbcConnectionPoolProviderInfo.cs
- TraceUtils.cs
- ProfileSettingsCollection.cs
- LockCookie.cs
- DataControlPagerLinkButton.cs
- MatrixValueSerializer.cs
- TagPrefixAttribute.cs
- PriorityQueue.cs
- TypeLibConverter.cs
- basevalidator.cs
- EntityContainerEntitySetDefiningQuery.cs
- ExpressionBindings.cs
- WebConfigurationHost.cs
- DocumentCollection.cs
- ToolboxItemSnapLineBehavior.cs