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
- CompleteWizardStep.cs
- SettingsBase.cs
- initElementDictionary.cs
- BitmapEditor.cs
- ChangesetResponse.cs
- MatrixStack.cs
- Authorization.cs
- DataGridRow.cs
- RawAppCommandInputReport.cs
- DataGridRow.cs
- PrivateFontCollection.cs
- ServiceProviders.cs
- BamlTreeMap.cs
- QueryConverter.cs
- EventEntry.cs
- QilNode.cs
- HtmlElementErrorEventArgs.cs
- TdsParserStateObject.cs
- OleDbDataAdapter.cs
- XmlSerializableReader.cs
- Flattener.cs
- HttpHandlerAction.cs
- AttributeAction.cs
- TypePresenter.xaml.cs
- FormDocumentDesigner.cs
- CodeLinePragma.cs
- DispatcherOperation.cs
- PageThemeCodeDomTreeGenerator.cs
- ImportContext.cs
- WebPartTransformerCollection.cs
- AuditLog.cs
- MembershipUser.cs
- ListChangedEventArgs.cs
- DataControlButton.cs
- DBAsyncResult.cs
- SharedMemory.cs
- TypeUtil.cs
- Win32Exception.cs
- TrackingServices.cs
- DispatcherFrame.cs
- SingleQueryOperator.cs
- SetterBase.cs
- PenThreadPool.cs
- Char.cs
- OracleDataAdapter.cs
- PersonalizationStateInfoCollection.cs
- MemoryFailPoint.cs
- MeasurementDCInfo.cs
- CapabilitiesSection.cs
- NameTable.cs
- DefaultShape.cs
- AppDomainFactory.cs
- BitmapCacheBrush.cs
- MailAddressCollection.cs
- ValueTypeFixupInfo.cs
- ComplexTypeEmitter.cs
- MemberDomainMap.cs
- SupportsEventValidationAttribute.cs
- MasterPage.cs
- X509ClientCertificateAuthentication.cs
- TextTreeUndoUnit.cs
- ResourcesBuildProvider.cs
- DataControlCommands.cs
- DeferredRunTextReference.cs
- _ContextAwareResult.cs
- TextInfo.cs
- DynamicPropertyHolder.cs
- CoTaskMemSafeHandle.cs
- ADMembershipUser.cs
- SvcMapFile.cs
- TemplateControlBuildProvider.cs
- AssemblyHelper.cs
- TrackingServices.cs
- SocketException.cs
- DataSourceComponent.cs
- WindowsImpersonationContext.cs
- SQLString.cs
- WindowsSysHeader.cs
- FunctionUpdateCommand.cs
- DataGridViewBand.cs
- CmsInterop.cs
- SessionIDManager.cs
- LinkedList.cs
- XMLSyntaxException.cs
- NullReferenceException.cs
- DllHostInitializer.cs
- QuaternionKeyFrameCollection.cs
- VirtualDirectoryMapping.cs
- LocalizableAttribute.cs
- PrinterUnitConvert.cs
- StateMachine.cs
- CompilerWrapper.cs
- Rfc4050KeyFormatter.cs
- ValidationErrorCollection.cs
- DataGridViewComboBoxEditingControl.cs
- Content.cs
- OnOperation.cs
- OracleLob.cs
- SettingsPropertyWrongTypeException.cs
- ShaperBuffers.cs