Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // 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; } } } // 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
- FeatureSupport.cs
- FormsAuthenticationUserCollection.cs
- CookieProtection.cs
- TextParaLineResult.cs
- PartitionedDataSource.cs
- KeyEvent.cs
- TypeRestriction.cs
- TraceHwndHost.cs
- InputReport.cs
- ExceptionUtil.cs
- UpdatableGenericsFeature.cs
- Msmq4PoisonHandler.cs
- MessageQuerySet.cs
- SqlEnums.cs
- EnumerableValidator.cs
- SelectedGridItemChangedEvent.cs
- PageHandlerFactory.cs
- BinaryParser.cs
- ObjectListFieldCollection.cs
- ProfileGroupSettingsCollection.cs
- AssemblyHash.cs
- DataTableMapping.cs
- XmlSchemaObject.cs
- X509SecurityToken.cs
- followingsibling.cs
- ResolveNameEventArgs.cs
- SqlDataSourceQueryEditor.cs
- ReferencedAssemblyResolver.cs
- TextDecorationCollectionConverter.cs
- SqlBooleanizer.cs
- NotifyInputEventArgs.cs
- TypeSemantics.cs
- XMLSchema.cs
- CompositeDataBoundControl.cs
- XPathAncestorQuery.cs
- RichTextBoxConstants.cs
- OuterGlowBitmapEffect.cs
- ShutDownListener.cs
- RowToParametersTransformer.cs
- IndexedGlyphRun.cs
- BypassElementCollection.cs
- DataBoundLiteralControl.cs
- TypeBuilderInstantiation.cs
- SamlSubject.cs
- loginstatus.cs
- XPathMultyIterator.cs
- InputLanguageEventArgs.cs
- LineServicesRun.cs
- DataKey.cs
- LineUtil.cs
- ParseChildrenAsPropertiesAttribute.cs
- Timeline.cs
- EntityTypeBase.cs
- Metafile.cs
- InstallerTypeAttribute.cs
- ListParaClient.cs
- FuncCompletionCallbackWrapper.cs
- PrintPageEvent.cs
- AudioFormatConverter.cs
- recordstatescratchpad.cs
- IItemProperties.cs
- AspNetRouteServiceHttpHandler.cs
- SafeThreadHandle.cs
- BindingObserver.cs
- RadioButton.cs
- RC2.cs
- DocumentXPathNavigator.cs
- WpfKnownMemberInvoker.cs
- DataViewSettingCollection.cs
- UnsafeNativeMethods.cs
- CompilerWrapper.cs
- MarkupProperty.cs
- MostlySingletonList.cs
- AudioFormatConverter.cs
- BStrWrapper.cs
- InputReferenceExpression.cs
- LinqDataSourceSelectEventArgs.cs
- MSAANativeProvider.cs
- CodeGotoStatement.cs
- EmptyEnumerator.cs
- FixedPageStructure.cs
- XmlSchemaObject.cs
- SecureEnvironment.cs
- securitycriticaldata.cs
- NavigationFailedEventArgs.cs
- CatalogPart.cs
- WeakHashtable.cs
- PropertyDescriptorComparer.cs
- updateconfighost.cs
- FilterException.cs
- ThreadInterruptedException.cs
- LinqDataSourceView.cs
- UnrecognizedPolicyAssertionElement.cs
- DetailsViewUpdateEventArgs.cs
- StreamUpgradeProvider.cs
- XamlReaderConstants.cs
- TextRangeEdit.cs
- OleDbSchemaGuid.cs
- HostProtectionPermission.cs
- StructuralObject.cs