Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / IO / MemoryMappedFiles / MemoryMappedViewStream.cs / 1305376 / MemoryMappedViewStream.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: MemoryMappedViewStream ** ** Purpose: View stream for managed MemoryMappedFiles. ** ** Date: February 7, 2007 ** ===========================================================*/ using System; using System.Diagnostics; using System.Security.Permissions; using Microsoft.Win32.SafeHandles; namespace System.IO.MemoryMappedFiles { public sealed class MemoryMappedViewStream : UnmanagedMemoryStream { private MemoryMappedView m_view; //// [System.Security.SecurityCritical] internal unsafe MemoryMappedViewStream(MemoryMappedView view) { Debug.Assert(view != null, "view is null"); m_view = view; Initialize(m_view.ViewHandle, m_view.PointerOffset, m_view.Size, MemoryMappedFile.GetFileAccess(m_view.Access)); } public SafeMemoryMappedViewHandle SafeMemoryMappedViewHandle { //// // [System.Security.SecurityCritical] [SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] get { return m_view != null ? m_view.ViewHandle : null; } } public override void SetLength(long value) { throw new NotSupportedException(SR.GetString(SR.NotSupported_MMViewStreamsFixedLength)); } //// // [System.Security.SecurityCritical] protected override void Dispose(bool disposing) { try { if (disposing && m_view != null && !m_view.IsClosed) { Flush(); } } finally { try { if (m_view != null) { m_view.Dispose(); } } finally { base.Dispose(disposing); } } } // Flushes the changes such that they are in [....] with the FileStream bits (ones obtained // with the win32 ReadFile and WriteFile functions). Need to call FileStream's Flush to // flush to the disk. // NOTE: This will flush all bytes before and after the view up until an offset that is a // multiple of SystemPageSize. //// // [System.Security.SecurityCritical] public override void Flush() { if (!CanSeek) { __Error.StreamIsClosed(); } unsafe { if (m_view != null) { m_view.Flush((IntPtr)Capacity); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: MemoryMappedViewStream ** ** Purpose: View stream for managed MemoryMappedFiles. ** ** Date: February 7, 2007 ** ===========================================================*/ using System; using System.Diagnostics; using System.Security.Permissions; using Microsoft.Win32.SafeHandles; namespace System.IO.MemoryMappedFiles { public sealed class MemoryMappedViewStream : UnmanagedMemoryStream { private MemoryMappedView m_view; //// // [System.Security.SecurityCritical] internal unsafe MemoryMappedViewStream(MemoryMappedView view) { Debug.Assert(view != null, "view is null"); m_view = view; Initialize(m_view.ViewHandle, m_view.PointerOffset, m_view.Size, MemoryMappedFile.GetFileAccess(m_view.Access)); } public SafeMemoryMappedViewHandle SafeMemoryMappedViewHandle { //// // [System.Security.SecurityCritical] [SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] get { return m_view != null ? m_view.ViewHandle : null; } } public override void SetLength(long value) { throw new NotSupportedException(SR.GetString(SR.NotSupported_MMViewStreamsFixedLength)); } //// // [System.Security.SecurityCritical] protected override void Dispose(bool disposing) { try { if (disposing && m_view != null && !m_view.IsClosed) { Flush(); } } finally { try { if (m_view != null) { m_view.Dispose(); } } finally { base.Dispose(disposing); } } } // Flushes the changes such that they are in [....] with the FileStream bits (ones obtained // with the win32 ReadFile and WriteFile functions). Need to call FileStream's Flush to // flush to the disk. // NOTE: This will flush all bytes before and after the view up until an offset that is a // multiple of SystemPageSize. //// // [System.Security.SecurityCritical] public override void Flush() { if (!CanSeek) { __Error.StreamIsClosed(); } unsafe { if (m_view != null) { m_view.Flush((IntPtr)Capacity); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.//
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IApplicationTrustManager.cs
- X500Name.cs
- WindowsToolbarItemAsMenuItem.cs
- WindowsFormsSectionHandler.cs
- FullTextBreakpoint.cs
- DataBindingExpressionBuilder.cs
- MediaEntryAttribute.cs
- Zone.cs
- ReadOnlyAttribute.cs
- ImportException.cs
- TextElementCollection.cs
- ParsedRoute.cs
- ReadOnlyCollection.cs
- XmlNodeChangedEventArgs.cs
- SelectionRangeConverter.cs
- UnsafeNativeMethods.cs
- ProfileInfo.cs
- AnnouncementService.cs
- HyperLink.cs
- SQLDouble.cs
- AccessText.cs
- FusionWrap.cs
- InputScopeManager.cs
- ExpressionBindingCollection.cs
- OracleBinary.cs
- InboundActivityHelper.cs
- X509Utils.cs
- EventDescriptor.cs
- DialogResultConverter.cs
- PopupRoot.cs
- CodeStatementCollection.cs
- FusionWrap.cs
- UidManager.cs
- AttachedPropertyMethodSelector.cs
- SafeNativeMethodsMilCoreApi.cs
- CultureInfoConverter.cs
- CmsInterop.cs
- StylusCaptureWithinProperty.cs
- AliasGenerator.cs
- ReadOnlyMetadataCollection.cs
- ContextBase.cs
- _CookieModule.cs
- ByteAnimation.cs
- OledbConnectionStringbuilder.cs
- LogSwitch.cs
- DataColumnMapping.cs
- InfoCardTrace.cs
- FullTrustAssembliesSection.cs
- PreservationFileReader.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ProcessInputEventArgs.cs
- AddDataControlFieldDialog.cs
- SByte.cs
- SiteMapHierarchicalDataSourceView.cs
- OdbcConnection.cs
- NumericExpr.cs
- XsdCachingReader.cs
- TcpClientChannel.cs
- LinkClickEvent.cs
- SemaphoreSecurity.cs
- SecurityTokenAuthenticator.cs
- ComponentResourceManager.cs
- ArrayList.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- CharUnicodeInfo.cs
- SiteMapNodeItem.cs
- XmlSchemaAnyAttribute.cs
- BulletChrome.cs
- Inline.cs
- ConfigXmlWhitespace.cs
- EventDescriptorCollection.cs
- HandlerBase.cs
- COM2ComponentEditor.cs
- MethodToken.cs
- IntSumAggregationOperator.cs
- TypeUnloadedException.cs
- WsatEtwTraceListener.cs
- BooleanProjectedSlot.cs
- ObjectListItem.cs
- shaperfactory.cs
- PersonalizableTypeEntry.cs
- _BasicClient.cs
- WpfKnownMember.cs
- ClientSettingsSection.cs
- JavascriptCallbackBehaviorAttribute.cs
- Vector3DKeyFrameCollection.cs
- AmbientLight.cs
- Application.cs
- ProgressChangedEventArgs.cs
- TemplateXamlParser.cs
- ImageField.cs
- StorageAssociationTypeMapping.cs
- NestPullup.cs
- tabpagecollectioneditor.cs
- StrokeCollection.cs
- Shape.cs
- DataTableClearEvent.cs
- ObjectConverter.cs
- ChannelManager.cs
- ExpandSegmentCollection.cs