Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / IO / MemoryMappedFiles / MemoryMappedViewAccessor.cs / 1305376 / MemoryMappedViewAccessor.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: MemoryMappedViewAccessor ** ** Purpose: View accessor 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 MemoryMappedViewAccessor : UnmanagedMemoryAccessor { private MemoryMappedView m_view; //// [System.Security.SecurityCritical] internal MemoryMappedViewAccessor(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; } } //// // [System.Security.SecurityCritical] protected override void Dispose(bool disposing) { try { // Explicitly flush the changes. The OS will do this for us anyway, but not until after the // MemoryMappedFile object itself is closed. 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 void Flush() { if (!IsOpen) { throw new ObjectDisposedException("MemoryMappedViewAccessor", SR.GetString(SR.ObjectDisposed_ViewAccessorClosed)); } 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
- PolyBezierSegment.cs
- EntityReference.cs
- BitmapScalingModeValidation.cs
- SelectionBorderGlyph.cs
- DataControlPagerLinkButton.cs
- ExtendedPropertiesHandler.cs
- AppDomainManager.cs
- Cursors.cs
- SizeAnimationClockResource.cs
- RowBinding.cs
- AuthenticationException.cs
- BooleanFunctions.cs
- Unit.cs
- MarkupCompilePass1.cs
- FlatButtonAppearance.cs
- RuleSettingsCollection.cs
- QilPatternFactory.cs
- StringUtil.cs
- DataGridView.cs
- DbTransaction.cs
- ProfileEventArgs.cs
- COM2AboutBoxPropertyDescriptor.cs
- DataTable.cs
- VirtualPath.cs
- FrameworkReadOnlyPropertyMetadata.cs
- ToolStripContentPanelRenderEventArgs.cs
- IteratorFilter.cs
- LayeredChannelListener.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- XamlTreeBuilderBamlRecordWriter.cs
- ListViewCancelEventArgs.cs
- ToolStripRenderEventArgs.cs
- CustomGrammar.cs
- GenericAuthenticationEventArgs.cs
- CheckBox.cs
- SafeNativeMethodsCLR.cs
- MergeFilterQuery.cs
- recordstate.cs
- WebReferencesBuildProvider.cs
- StringReader.cs
- EntityDataSourceConfigureObjectContext.cs
- VisualTreeHelper.cs
- DataServiceProcessingPipelineEventArgs.cs
- SqlStream.cs
- GridProviderWrapper.cs
- CancellationToken.cs
- XmlSerializerAssemblyAttribute.cs
- OrderedDictionary.cs
- NGCPageContentSerializerAsync.cs
- CngKeyBlobFormat.cs
- DoubleCollectionConverter.cs
- SystemDiagnosticsSection.cs
- ObjectStateEntry.cs
- _CommandStream.cs
- Image.cs
- DocumentOutline.cs
- SchemaCompiler.cs
- StatusStrip.cs
- ParameterElementCollection.cs
- MaskedTextBox.cs
- Fonts.cs
- Floater.cs
- Rules.cs
- ConfigurationException.cs
- SQLMoneyStorage.cs
- AsymmetricSignatureDeformatter.cs
- BufferedStream.cs
- DataGridViewRowPrePaintEventArgs.cs
- ProfileGroupSettings.cs
- ClientProtocol.cs
- CompositeFontFamily.cs
- AtlasWeb.Designer.cs
- HitTestDrawingContextWalker.cs
- InternalConfigHost.cs
- MonitorWrapper.cs
- CharacterHit.cs
- X509ServiceCertificateAuthenticationElement.cs
- NameScope.cs
- XmlSchemaComplexContentExtension.cs
- ManagementOperationWatcher.cs
- listitem.cs
- DrawingBrush.cs
- SqlFormatter.cs
- XmlBinaryReader.cs
- DbDataRecord.cs
- FlowDocumentReader.cs
- X509ChainPolicy.cs
- PartialTrustVisibleAssembly.cs
- ImageInfo.cs
- TracePayload.cs
- ClientData.cs
- PathGeometry.cs
- Executor.cs
- EntityDataSourceReferenceGroup.cs
- SR.Designer.cs
- MaterialGroup.cs
- __ConsoleStream.cs
- XmlSchemaAnnotated.cs
- ReadOnlyHierarchicalDataSource.cs
- DurableInstanceContextProvider.cs