Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Literal.cs
- Completion.cs
- GridToolTip.cs
- DbConvert.cs
- VerticalConnector.xaml.cs
- sitestring.cs
- RoutedPropertyChangedEventArgs.cs
- ExpressionBuilderCollection.cs
- MobileControlsSectionHandler.cs
- HandleRef.cs
- RunWorkerCompletedEventArgs.cs
- XmlDocumentSerializer.cs
- ExpandCollapseProviderWrapper.cs
- FormattedText.cs
- ControlBindingsCollection.cs
- DecoderReplacementFallback.cs
- PageParser.cs
- JoinTreeSlot.cs
- ResXDataNode.cs
- DataList.cs
- PeerNameRegistration.cs
- PropertyGridDesigner.cs
- ResolvedKeyFrameEntry.cs
- GlobalItem.cs
- PropertyInfoSet.cs
- LambdaCompiler.Address.cs
- IRCollection.cs
- MailAddress.cs
- Transform.cs
- TextTreePropertyUndoUnit.cs
- DiscoveryDocumentSerializer.cs
- WSSecureConversationFeb2005.cs
- Point3DCollectionValueSerializer.cs
- PropertyPathWorker.cs
- IsolationInterop.cs
- CreatingCookieEventArgs.cs
- DesignerSerializerAttribute.cs
- ButtonBase.cs
- CompilerResults.cs
- TraceShell.cs
- SchemaNotation.cs
- X509Utils.cs
- WebPartTransformer.cs
- Crypto.cs
- ObjectReaderCompiler.cs
- XmlQualifiedName.cs
- DataDocumentXPathNavigator.cs
- XhtmlConformanceSection.cs
- SafeSecurityHandles.cs
- AudioSignalProblemOccurredEventArgs.cs
- DESCryptoServiceProvider.cs
- VirtualPathProvider.cs
- XmlComplianceUtil.cs
- FieldNameLookup.cs
- BulletChrome.cs
- GlobalizationSection.cs
- VScrollProperties.cs
- FolderBrowserDialog.cs
- DetailsViewUpdateEventArgs.cs
- XmlNavigatorFilter.cs
- CheckBox.cs
- _WinHttpWebProxyDataBuilder.cs
- Vertex.cs
- RelationshipManager.cs
- PartBasedPackageProperties.cs
- MsmqHostedTransportManager.cs
- SessionStateContainer.cs
- SetState.cs
- TwoPhaseCommitProxy.cs
- BCryptSafeHandles.cs
- DataGridViewCellCancelEventArgs.cs
- MessageQuerySet.cs
- ProxyHwnd.cs
- ReplacementText.cs
- ApplicationHost.cs
- OdbcCommand.cs
- PerfProviderCollection.cs
- UnknownBitmapDecoder.cs
- PageAsyncTask.cs
- SQLInt16.cs
- PtsContext.cs
- IntegrationExceptionEventArgs.cs
- SerializationAttributes.cs
- XamlStyleSerializer.cs
- FlowLayoutPanel.cs
- DataGridViewAdvancedBorderStyle.cs
- Int32KeyFrameCollection.cs
- DataAdapter.cs
- SqlOuterApplyReducer.cs
- ServiceDescriptionReflector.cs
- EdmToObjectNamespaceMap.cs
- DropTarget.cs
- IProvider.cs
- ParameterModifier.cs
- securestring.cs
- TemplateEditingVerb.cs
- DataDocumentXPathNavigator.cs
- FileCodeGroup.cs
- SchemaName.cs
- DataGridViewSortCompareEventArgs.cs