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
- CompressStream.cs
- DelimitedListTraceListener.cs
- _NTAuthentication.cs
- StyleSheet.cs
- BasicCellRelation.cs
- TypeInfo.cs
- SubclassTypeValidatorAttribute.cs
- OleDbSchemaGuid.cs
- SoapCommonClasses.cs
- BindingBase.cs
- MappingModelBuildProvider.cs
- OleDbRowUpdatedEvent.cs
- FullTextState.cs
- SmtpDigestAuthenticationModule.cs
- TraversalRequest.cs
- WindowsIPAddress.cs
- Int32CAMarshaler.cs
- StrokeNodeOperations2.cs
- SafeArrayTypeMismatchException.cs
- VirtualDirectoryMapping.cs
- SQLMembershipProvider.cs
- X509CertificateInitiatorClientCredential.cs
- TCPListener.cs
- InstallerTypeAttribute.cs
- CatalogPartCollection.cs
- DocumentViewerAutomationPeer.cs
- HostProtectionException.cs
- ArrayConverter.cs
- TextHidden.cs
- DynamicPropertyHolder.cs
- EdmEntityTypeAttribute.cs
- MtomMessageEncoder.cs
- OleDbEnumerator.cs
- PackageFilter.cs
- ReadOnlyState.cs
- ConfigurationPermission.cs
- EmptyElement.cs
- WebRequestModulesSection.cs
- DataListItemCollection.cs
- XPathArrayIterator.cs
- WebPartMenuStyle.cs
- FilterEventArgs.cs
- TypographyProperties.cs
- PackUriHelper.cs
- QuaternionValueSerializer.cs
- StructuredProperty.cs
- ListViewEditEventArgs.cs
- SortKey.cs
- GraphicsContainer.cs
- BasicHttpBinding.cs
- XmlSchemaDocumentation.cs
- WsatProxy.cs
- TemplateInstanceAttribute.cs
- Point3DKeyFrameCollection.cs
- ManipulationLogic.cs
- HWStack.cs
- AccessViolationException.cs
- ProxyGenerationError.cs
- DataControlField.cs
- HttpListener.cs
- InputScopeAttribute.cs
- CloseCryptoHandleRequest.cs
- BitmapCodecInfo.cs
- Translator.cs
- PreservationFileReader.cs
- XmlDataSourceView.cs
- ObfuscationAttribute.cs
- Point.cs
- ZipPackagePart.cs
- CircleHotSpot.cs
- OdbcConnectionHandle.cs
- ChineseLunisolarCalendar.cs
- SingleAnimationUsingKeyFrames.cs
- SmiMetaDataProperty.cs
- SafePointer.cs
- TextRangeBase.cs
- SafeNativeMethodsMilCoreApi.cs
- DataObjectAttribute.cs
- ColorTranslator.cs
- SynchronizedDispatch.cs
- NetTcpBinding.cs
- SignatureHelper.cs
- UmAlQuraCalendar.cs
- TextShapeableCharacters.cs
- LinkedResource.cs
- XmlValueConverter.cs
- HealthMonitoringSection.cs
- CLRBindingWorker.cs
- HtmlInputReset.cs
- VectorKeyFrameCollection.cs
- altserialization.cs
- MarginCollapsingState.cs
- Effect.cs
- ConfigurationLoaderException.cs
- ListItemParagraph.cs
- DataControlButton.cs
- dbdatarecord.cs
- SessionEndingEventArgs.cs
- Padding.cs
- SecurityHelper.cs