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
- ErrorView.xaml.cs
- SplitterPanelDesigner.cs
- ImmutableCollection.cs
- GradientStop.cs
- ACE.cs
- SqlTriggerAttribute.cs
- VerticalAlignConverter.cs
- DoubleStorage.cs
- ChannelOptions.cs
- DataGridColumnCollection.cs
- NonParentingControl.cs
- Int64.cs
- Compiler.cs
- KeySpline.cs
- TogglePattern.cs
- DataKeyArray.cs
- SortDescription.cs
- bindurihelper.cs
- AddingNewEventArgs.cs
- FamilyTypeface.cs
- TraceContext.cs
- AssociationProvider.cs
- FlagsAttribute.cs
- TemplateXamlParser.cs
- RefType.cs
- BitmapEffectGroup.cs
- SecurityTokenTypes.cs
- PeerCollaboration.cs
- BooleanToSelectiveScrollingOrientationConverter.cs
- Typeface.cs
- HttpApplication.cs
- Socket.cs
- TableRowCollection.cs
- CompilerState.cs
- QilInvokeLateBound.cs
- ArrangedElement.cs
- TypeListConverter.cs
- Char.cs
- TypeSystemProvider.cs
- CodeIdentifiers.cs
- X509CertificateCollection.cs
- ObjectQueryExecutionPlan.cs
- LinkButton.cs
- CmsInterop.cs
- Logging.cs
- NonSerializedAttribute.cs
- AbsoluteQuery.cs
- HScrollBar.cs
- ConfigurationConverterBase.cs
- XmlSchemaSimpleContent.cs
- TriggerCollection.cs
- BrowserCapabilitiesFactoryBase.cs
- CursorConverter.cs
- Script.cs
- SqlProvider.cs
- ping.cs
- BamlBinaryWriter.cs
- DoubleLinkListEnumerator.cs
- FontStyles.cs
- WaitHandleCannotBeOpenedException.cs
- AssemblyFilter.cs
- SBCSCodePageEncoding.cs
- DataColumnMapping.cs
- HtmlLiteralTextAdapter.cs
- SymbolMethod.cs
- HttpProfileGroupBase.cs
- LogExtentCollection.cs
- DBSqlParserColumnCollection.cs
- NonPrimarySelectionGlyph.cs
- XmlTypeAttribute.cs
- XamlParser.cs
- VariableBinder.cs
- DataControlFieldHeaderCell.cs
- SharedUtils.cs
- AutomationPropertyInfo.cs
- EndPoint.cs
- DataBoundControlAdapter.cs
- ObjectIDGenerator.cs
- tooltip.cs
- Sentence.cs
- DocumentEventArgs.cs
- ConfigPathUtility.cs
- ExecutedRoutedEventArgs.cs
- WindowsPrincipal.cs
- StateMachineAction.cs
- XhtmlBasicControlAdapter.cs
- DistributedTransactionPermission.cs
- ProjectionPlanCompiler.cs
- HttpWebResponse.cs
- ListViewSortEventArgs.cs
- SecurityContext.cs
- HtmlControl.cs
- ContextMenu.cs
- CompoundFileDeflateTransform.cs
- ArrayExtension.cs
- LogReservationCollection.cs
- WebPartCatalogAddVerb.cs
- PermissionSetTriple.cs
- SystemColorTracker.cs
- CacheChildrenQuery.cs