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
- CqlErrorHelper.cs
- CompilationUtil.cs
- Set.cs
- UiaCoreProviderApi.cs
- PrintPageEvent.cs
- SafeProcessHandle.cs
- ObjectDataSourceChooseMethodsPanel.cs
- WpfGeneratedKnownProperties.cs
- TempFiles.cs
- Privilege.cs
- IsolationInterop.cs
- QueryOptionExpression.cs
- XPathMessageFilter.cs
- KnownBoxes.cs
- GroupQuery.cs
- HwndSource.cs
- MDIClient.cs
- MulticastNotSupportedException.cs
- DefaultWorkflowTransactionService.cs
- ReflectionUtil.cs
- SrgsSemanticInterpretationTag.cs
- RIPEMD160Managed.cs
- SqlWebEventProvider.cs
- WindowsListViewItemStartMenu.cs
- PointLight.cs
- InputLangChangeRequestEvent.cs
- SplayTreeNode.cs
- StickyNoteContentControl.cs
- ConstructorNeedsTagAttribute.cs
- SessionEndingEventArgs.cs
- CategoryNameCollection.cs
- NamedPipeProcessProtocolHandler.cs
- ParallelLoopState.cs
- GroupStyle.cs
- HtmlShim.cs
- DataGridViewColumnEventArgs.cs
- ReadOnlyCollectionBase.cs
- KnownBoxes.cs
- EtwProvider.cs
- CSharpCodeProvider.cs
- AbstractSvcMapFileLoader.cs
- SiteMapNode.cs
- StackOverflowException.cs
- XPathNodeIterator.cs
- DataObjectPastingEventArgs.cs
- SelectionListDesigner.cs
- DriveNotFoundException.cs
- MultitargetUtil.cs
- PasswordDeriveBytes.cs
- EdmScalarPropertyAttribute.cs
- EntitySqlQueryCacheEntry.cs
- IndexOutOfRangeException.cs
- BodyWriter.cs
- MsmqDecodeHelper.cs
- LowerCaseStringConverter.cs
- AsymmetricSignatureFormatter.cs
- CodeDomSerializer.cs
- CodeComment.cs
- SecurityAlgorithmSuiteConverter.cs
- C14NUtil.cs
- GridEntry.cs
- TypeResolver.cs
- RelationshipDetailsRow.cs
- VisualSerializer.cs
- DateBoldEvent.cs
- RegexCompiler.cs
- WebEventTraceProvider.cs
- SqlSupersetValidator.cs
- DataIdProcessor.cs
- Inline.cs
- LeaseManager.cs
- QueueProcessor.cs
- Touch.cs
- CharAnimationUsingKeyFrames.cs
- OletxCommittableTransaction.cs
- SmtpSection.cs
- RowToParametersTransformer.cs
- RC2.cs
- XsltArgumentList.cs
- SplitContainer.cs
- ListBoxItemAutomationPeer.cs
- SqlException.cs
- SoapEnvelopeProcessingElement.cs
- StringOutput.cs
- PrintPageEvent.cs
- JsonWriterDelegator.cs
- SwitchDesigner.xaml.cs
- WorkflowRuntimeServiceElement.cs
- _TimerThread.cs
- TimerEventSubscription.cs
- GuidTagList.cs
- Processor.cs
- MarkupCompilePass1.cs
- StorageComplexPropertyMapping.cs
- Missing.cs
- Translator.cs
- DataList.cs
- TrackingServices.cs
- MetabaseSettings.cs
- QuaternionIndependentAnimationStorage.cs