Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Security / Cryptography / X509Certificates / safex509handles.cs / 1 / 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 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 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 [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } 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 [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); override protected bool ReleaseHandle() { _FreeCertStoreContext(handle); return true; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XamlStream.cs
- SpellerError.cs
- SessionStateItemCollection.cs
- SpotLight.cs
- datacache.cs
- ApplicationSecurityManager.cs
- AnimatedTypeHelpers.cs
- ResourceProviderFactory.cs
- Transaction.cs
- _OSSOCK.cs
- XmlDocumentViewSchema.cs
- AsymmetricSignatureDeformatter.cs
- RIPEMD160.cs
- NamespaceEmitter.cs
- DataGridSortCommandEventArgs.cs
- MenuItemStyle.cs
- WebPartVerbsEventArgs.cs
- Thumb.cs
- ConfigXmlComment.cs
- SpanIndex.cs
- UriSection.cs
- COM2AboutBoxPropertyDescriptor.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- ReferencedAssembly.cs
- RecordConverter.cs
- HttpCachePolicyElement.cs
- Bidi.cs
- SafePointer.cs
- ParallelTimeline.cs
- CreateUserWizard.cs
- TraceProvider.cs
- TypeResolvingOptions.cs
- BufferModesCollection.cs
- MetadataArtifactLoaderCompositeResource.cs
- AsymmetricAlgorithm.cs
- LiteralControl.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- RelationshipWrapper.cs
- PriorityRange.cs
- CodeEventReferenceExpression.cs
- DataGridViewBindingCompleteEventArgs.cs
- CultureMapper.cs
- BypassElement.cs
- IOThreadTimer.cs
- SerializerProvider.cs
- SafeMarshalContext.cs
- FixedDocumentSequencePaginator.cs
- XmlSerializer.cs
- Msec.cs
- XmlCodeExporter.cs
- PersonalizationStateQuery.cs
- ColumnTypeConverter.cs
- SemanticResultValue.cs
- GACIdentityPermission.cs
- SendingRequestEventArgs.cs
- VirtualizingStackPanel.cs
- StackOverflowException.cs
- SoapIgnoreAttribute.cs
- Constraint.cs
- CompilerCollection.cs
- FileClassifier.cs
- SqlInternalConnectionTds.cs
- ConfigurationProperty.cs
- PropertyValueChangedEvent.cs
- VBIdentifierName.cs
- HostSecurityManager.cs
- WebEvents.cs
- ConfigXmlComment.cs
- XmlILIndex.cs
- SqlNotificationEventArgs.cs
- WebPartDeleteVerb.cs
- ScrollItemPattern.cs
- DataGridTable.cs
- Types.cs
- MethodRental.cs
- WindowsGraphics.cs
- Certificate.cs
- AxHostDesigner.cs
- ResolveResponseInfo.cs
- ZoomingMessageFilter.cs
- DesignerContextDescriptor.cs
- ToolStripContentPanelRenderEventArgs.cs
- DataSourceControlBuilder.cs
- TextEditorContextMenu.cs
- Panel.cs
- HiddenFieldDesigner.cs
- _HeaderInfoTable.cs
- OperandQuery.cs
- FontUnitConverter.cs
- GridLength.cs
- HotSpotCollection.cs
- remotingproxy.cs
- SiteMapNode.cs
- ActivityLocationReferenceEnvironment.cs
- KnowledgeBase.cs
- MarkupCompilePass2.cs
- TextHidden.cs
- AutomationPeer.cs
- X509Certificate2Collection.cs
- SpellerInterop.cs