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
- AutoResizedEvent.cs
- CompilerScopeManager.cs
- DataRowView.cs
- SqlDataSourceView.cs
- CultureTable.cs
- WorkItem.cs
- PeerContact.cs
- Double.cs
- CryptoKeySecurity.cs
- ObjectStateFormatter.cs
- Activity.cs
- XPathDocumentIterator.cs
- TCPClient.cs
- EventLogger.cs
- RelationshipFixer.cs
- HttpServerUtilityBase.cs
- CharacterBuffer.cs
- EntityCommandCompilationException.cs
- DrawTreeNodeEventArgs.cs
- ImageSource.cs
- HtmlAnchor.cs
- DataControlFieldCell.cs
- DrawingCollection.cs
- DesignerWithHeader.cs
- AbstractExpressions.cs
- PolygonHotSpot.cs
- StateElement.cs
- SmiGettersStream.cs
- HtmlButton.cs
- Utils.cs
- UnsettableComboBox.cs
- ListBoxItemWrapperAutomationPeer.cs
- Quaternion.cs
- CollectionViewSource.cs
- Decoder.cs
- EnumMember.cs
- SafeCoTaskMem.cs
- XmlRawWriter.cs
- BeginSelectCardRequest.cs
- ParallelActivityDesigner.cs
- ComboBoxItem.cs
- RepeaterItemEventArgs.cs
- CancellationTokenSource.cs
- TextEncodedRawTextWriter.cs
- ImageKeyConverter.cs
- FontUnitConverter.cs
- FixedSOMFixedBlock.cs
- EmptyQuery.cs
- FixedHyperLink.cs
- MailAddressParser.cs
- CatalogPartCollection.cs
- XmlNamespaceMapping.cs
- TableSectionStyle.cs
- PeerCollaborationPermission.cs
- ListControlConvertEventArgs.cs
- ColorTransformHelper.cs
- _NegoState.cs
- BrowserDefinition.cs
- WebSysDisplayNameAttribute.cs
- AssemblyCacheEntry.cs
- RealizationDrawingContextWalker.cs
- UnmanagedMemoryStream.cs
- DependencyProperty.cs
- PropertyManager.cs
- ValueUtilsSmi.cs
- ExecutionEngineException.cs
- CheckedListBox.cs
- TriState.cs
- Animatable.cs
- ApplicationServiceManager.cs
- StringExpressionSet.cs
- AppearanceEditorPart.cs
- ReadWriteObjectLock.cs
- WarningException.cs
- CharacterMetricsDictionary.cs
- HyperLinkColumn.cs
- SafeNativeMethodsCLR.cs
- ThumbButtonInfoCollection.cs
- StyleXamlParser.cs
- Facet.cs
- NameValueConfigurationElement.cs
- ProviderSettingsCollection.cs
- Location.cs
- PrintEvent.cs
- EnumType.cs
- AppDomainAttributes.cs
- StylusButton.cs
- _SpnDictionary.cs
- MulticastDelegate.cs
- WebPartZoneBase.cs
- TraceLog.cs
- LinqDataSource.cs
- XmlChoiceIdentifierAttribute.cs
- RealizationContext.cs
- WindowsIdentity.cs
- CodeNamespace.cs
- BitmapEffect.cs
- FacetDescriptionElement.cs
- ZipIOExtraField.cs
- DebugHandleTracker.cs