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
- HttpListenerResponse.cs
- WindowsMenu.cs
- SqlAliaser.cs
- ColumnResizeAdorner.cs
- SQLInt32.cs
- ExpressionWriter.cs
- ExtractorMetadata.cs
- RelationshipEndCollection.cs
- dtdvalidator.cs
- ObjectListItemCollection.cs
- XamlClipboardData.cs
- DashStyle.cs
- ExpressionBuilderCollection.cs
- CodeDelegateInvokeExpression.cs
- SqlSelectStatement.cs
- TextTabProperties.cs
- Missing.cs
- ScrollViewerAutomationPeer.cs
- XmlSchemaImport.cs
- Tokenizer.cs
- KeyedCollection.cs
- XsdDuration.cs
- EventLogPropertySelector.cs
- FeatureManager.cs
- DeclaredTypeElement.cs
- OdbcConnectionStringbuilder.cs
- XPathPatternBuilder.cs
- DriveInfo.cs
- MetadataException.cs
- CompressEmulationStream.cs
- HandlerFactoryCache.cs
- AspProxy.cs
- MenuItemBindingCollection.cs
- BooleanFunctions.cs
- TableItemProviderWrapper.cs
- GeometryCombineModeValidation.cs
- WindowsRichEditRange.cs
- NetworkStream.cs
- XamlDesignerSerializationManager.cs
- CategoryValueConverter.cs
- WebMethodAttribute.cs
- StreamUpdate.cs
- SerializationException.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- DataServiceQueryProvider.cs
- StyleCollection.cs
- ObjectDataSourceEventArgs.cs
- WebPartDisplayModeCollection.cs
- CallSiteOps.cs
- __Filters.cs
- AppDomain.cs
- ProxyWebPartConnectionCollection.cs
- ClientSponsor.cs
- SimpleHandlerBuildProvider.cs
- XmlEventCache.cs
- CodeDelegateInvokeExpression.cs
- SmtpTransport.cs
- ColorConverter.cs
- wmiprovider.cs
- LinkButton.cs
- TemplatePagerField.cs
- SubMenuStyle.cs
- WebPartConnectionsCancelVerb.cs
- InkCanvasAutomationPeer.cs
- Message.cs
- StaticTextPointer.cs
- CapiSafeHandles.cs
- TableLayoutStyleCollection.cs
- ConnectionProviderAttribute.cs
- ExtendedPropertiesHandler.cs
- DataControlImageButton.cs
- Instrumentation.cs
- FontWeights.cs
- AbsoluteQuery.cs
- ReferenceEqualityComparer.cs
- ConfigXmlDocument.cs
- BindingBase.cs
- ColumnMapTranslator.cs
- Soap12FormatExtensions.cs
- NamedPipeProcessProtocolHandler.cs
- AutomationPatternInfo.cs
- ColorInterpolationModeValidation.cs
- Table.cs
- SqlExpander.cs
- OleDbTransaction.cs
- HMACRIPEMD160.cs
- Win32.cs
- QueryContinueDragEvent.cs
- CodeGen.cs
- XpsFixedDocumentSequenceReaderWriter.cs
- BooleanSwitch.cs
- DocumentReference.cs
- ListViewCancelEventArgs.cs
- TableRowGroup.cs
- GlyphShapingProperties.cs
- HttpListenerContext.cs
- ReferentialConstraint.cs
- TileBrush.cs
- InternalControlCollection.cs
- BlockCollection.cs