Code:
/ DotNET / DotNET / 8.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
- XpsSerializationManager.cs
- DataServiceRequest.cs
- GridViewUpdatedEventArgs.cs
- SyntaxCheck.cs
- EventsTab.cs
- GenericIdentity.cs
- CatalogPartChrome.cs
- ProcessStartInfo.cs
- SqlUserDefinedTypeAttribute.cs
- EditCommandColumn.cs
- SelectionPattern.cs
- MDIClient.cs
- BStrWrapper.cs
- EdmPropertyAttribute.cs
- ResizeGrip.cs
- AssemblyAttributes.cs
- DataGridViewIntLinkedList.cs
- MetafileHeader.cs
- MatrixTransform.cs
- ClientUtils.cs
- PermissionSetTriple.cs
- Point.cs
- CodeGotoStatement.cs
- ResourceAttributes.cs
- SQLSingle.cs
- HttpWrapper.cs
- CodeMemberField.cs
- DispatcherHookEventArgs.cs
- DeclaredTypeElementCollection.cs
- SystemPens.cs
- Bitmap.cs
- DirectionalLight.cs
- SignatureDescription.cs
- Graphics.cs
- SchemaCompiler.cs
- JournalEntryStack.cs
- GeometryValueSerializer.cs
- ReliableChannelListener.cs
- XamlSerializer.cs
- FormsAuthenticationModule.cs
- BinaryReader.cs
- SuppressMergeCheckAttribute.cs
- RootBuilder.cs
- RTLAwareMessageBox.cs
- ListItemsPage.cs
- XmlCodeExporter.cs
- CodeDOMProvider.cs
- FileSystemEventArgs.cs
- LoginView.cs
- SqlBulkCopyColumnMappingCollection.cs
- DataGridrowEditEndingEventArgs.cs
- FragmentNavigationEventArgs.cs
- RuntimeIdentifierPropertyAttribute.cs
- SamlSubject.cs
- Point3D.cs
- ProtocolInformationWriter.cs
- GatewayIPAddressInformationCollection.cs
- SpeakInfo.cs
- HtmlTableCellCollection.cs
- MarshalDirectiveException.cs
- AudioFileOut.cs
- AttributedMetaModel.cs
- DataGridBeginningEditEventArgs.cs
- StringExpressionSet.cs
- SecurityDocument.cs
- ForeignKeyConstraint.cs
- Trace.cs
- _CookieModule.cs
- Hash.cs
- CellCreator.cs
- Selection.cs
- UInt32Storage.cs
- ViewStateModeByIdAttribute.cs
- WinInetCache.cs
- UnsafeNativeMethodsTablet.cs
- SiteMapNodeItem.cs
- Visitor.cs
- InstanceData.cs
- NameValueConfigurationElement.cs
- XmlDomTextWriter.cs
- FacetDescriptionElement.cs
- StatusBarPanelClickEvent.cs
- AbstractDataSvcMapFileLoader.cs
- SQLByteStorage.cs
- CustomErrorsSectionWrapper.cs
- WebPartCollection.cs
- SvcMapFileLoader.cs
- AnimatedTypeHelpers.cs
- AttributeTable.cs
- DateTimeStorage.cs
- ToolStripDropDownClosingEventArgs.cs
- GroupStyle.cs
- ThicknessKeyFrameCollection.cs
- unsafenativemethodstextservices.cs
- HttpDebugHandler.cs
- ParenthesizePropertyNameAttribute.cs
- TableCell.cs
- DynamicRouteExpression.cs
- DataBinding.cs
- CodeGenerator.cs