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
- MessageHeaderAttribute.cs
- ArgumentOutOfRangeException.cs
- XmlSerializerAssemblyAttribute.cs
- X509AudioLogo.cs
- PolyBezierSegment.cs
- OleDbException.cs
- OrderedEnumerableRowCollection.cs
- EventLog.cs
- __Filters.cs
- MutableAssemblyCacheEntry.cs
- DataObjectEventArgs.cs
- ParameterModifier.cs
- EventLogRecord.cs
- Encoder.cs
- XPathNavigator.cs
- ObjectListItem.cs
- Int32CollectionValueSerializer.cs
- AspNetSynchronizationContext.cs
- AlternateViewCollection.cs
- NativeMethods.cs
- BufferBuilder.cs
- HttpsHostedTransportConfiguration.cs
- GACIdentityPermission.cs
- PageRequestManager.cs
- ScrollBarAutomationPeer.cs
- UpdateDelegates.Generated.cs
- ConfigurationValues.cs
- PackagePartCollection.cs
- XsdValidatingReader.cs
- XPathItem.cs
- RadioButtonList.cs
- ConfigXmlDocument.cs
- Point4DValueSerializer.cs
- XsltArgumentList.cs
- Cell.cs
- MatrixTransform.cs
- Size3DConverter.cs
- DrawingAttributesDefaultValueFactory.cs
- ToolStripEditorManager.cs
- WebCategoryAttribute.cs
- ErrorsHelper.cs
- TypefaceMap.cs
- AssemblyBuilder.cs
- infer.cs
- TraceListeners.cs
- ListBox.cs
- SizeF.cs
- AuthenticationModulesSection.cs
- EncoderExceptionFallback.cs
- DownloadProgressEventArgs.cs
- MDIClient.cs
- Decimal.cs
- FrameDimension.cs
- DbParameterCollection.cs
- StringDictionaryWithComparer.cs
- peernodestatemanager.cs
- ContainerUIElement3D.cs
- SmtpMail.cs
- HyperLinkField.cs
- RowVisual.cs
- DataBinder.cs
- Token.cs
- RelationshipDetailsRow.cs
- BrowserCapabilitiesCompiler.cs
- MissingFieldException.cs
- Material.cs
- Container.cs
- GridItemCollection.cs
- MD5.cs
- BitmapEffectGroup.cs
- Profiler.cs
- SchemaObjectWriter.cs
- CodeMemberEvent.cs
- MasterPage.cs
- AutomationPatternInfo.cs
- MetadataArtifactLoaderResource.cs
- PerfCounters.cs
- UnaryQueryOperator.cs
- HwndHostAutomationPeer.cs
- ExcludeFromCodeCoverageAttribute.cs
- ConditionalAttribute.cs
- Events.cs
- BooleanConverter.cs
- XPathExpr.cs
- RegexRunner.cs
- EditorAttribute.cs
- StrokeRenderer.cs
- SchemaMerger.cs
- sitestring.cs
- LambdaCompiler.Generated.cs
- WebPartConnectionsCloseVerb.cs
- SignedXml.cs
- ResourcePermissionBaseEntry.cs
- WebPartConnectVerb.cs
- GenericParameterDataContract.cs
- ZipIOLocalFileDataDescriptor.cs
- SelectorItemAutomationPeer.cs
- OleTxTransaction.cs
- ListItemCollection.cs
- JsonUriDataContract.cs