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
- StreamInfo.cs
- SqlClientWrapperSmiStreamChars.cs
- ImageMap.cs
- TextEditorSpelling.cs
- HtmlHistory.cs
- DetailsViewInsertEventArgs.cs
- BitmapEffectGroup.cs
- WindowsFormsSectionHandler.cs
- Highlights.cs
- KeyProperty.cs
- MetaData.cs
- StaticSiteMapProvider.cs
- HorizontalAlignConverter.cs
- XPathDocumentIterator.cs
- SchemaComplexType.cs
- MemberMaps.cs
- MetabaseSettings.cs
- Registry.cs
- TextSchema.cs
- LoadedOrUnloadedOperation.cs
- DataSourceNameHandler.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- AdapterDictionary.cs
- TypeSystem.cs
- QueryRewriter.cs
- OraclePermission.cs
- RightsManagementPermission.cs
- HttpClientCertificate.cs
- loginstatus.cs
- ClientScriptManager.cs
- BooleanFunctions.cs
- EncoderExceptionFallback.cs
- shaperfactory.cs
- ExpandableObjectConverter.cs
- ClientTargetCollection.cs
- DropSourceBehavior.cs
- ValidationResult.cs
- AlphabetConverter.cs
- ProtocolsConfigurationHandler.cs
- TextureBrush.cs
- DataGridViewCellParsingEventArgs.cs
- WebPartCatalogCloseVerb.cs
- SafePEFileHandle.cs
- MarkerProperties.cs
- GridViewColumn.cs
- OracleFactory.cs
- HttpsChannelFactory.cs
- TypeConstant.cs
- SHA384.cs
- TdsValueSetter.cs
- PermissionRequestEvidence.cs
- CharKeyFrameCollection.cs
- XmlSchemaAnnotation.cs
- WsdlWriter.cs
- PropertyEmitter.cs
- Inline.cs
- Range.cs
- WorkerRequest.cs
- EventListener.cs
- GeneralTransform3DGroup.cs
- Select.cs
- ObjectViewFactory.cs
- GridViewRowCollection.cs
- SmuggledIUnknown.cs
- HyperLinkStyle.cs
- CanonicalFormWriter.cs
- CookielessHelper.cs
- VisualStateChangedEventArgs.cs
- ColumnPropertiesGroup.cs
- WaitForChangedResult.cs
- SQLDecimalStorage.cs
- AssemblyCache.cs
- TableAdapterManagerNameHandler.cs
- EventSourceCreationData.cs
- AnnotationComponentChooser.cs
- MatrixTransform.cs
- ApplicationServiceManager.cs
- LogicalTreeHelper.cs
- _NtlmClient.cs
- ColorInterpolationModeValidation.cs
- CodeObjectCreateExpression.cs
- PenThreadWorker.cs
- ServiceDescriptionReflector.cs
- GB18030Encoding.cs
- WorkflowDurableInstance.cs
- BrushConverter.cs
- SchemaDeclBase.cs
- ArrayTypeMismatchException.cs
- ListViewItemMouseHoverEvent.cs
- TypeSystem.cs
- XamlWriter.cs
- ToolBarTray.cs
- FontStretch.cs
- Compiler.cs
- ConnectionPointCookie.cs
- ScrollChangedEventArgs.cs
- DataFormats.cs
- User.cs
- RichTextBoxAutomationPeer.cs
- TraceData.cs