Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SafeTimerHandle.cs
- HtmlMeta.cs
- ExpressionQuoter.cs
- SecurityPolicyVersion.cs
- ImageButton.cs
- SplitContainer.cs
- CodeSubDirectoriesCollection.cs
- MiniLockedBorderGlyph.cs
- TextDecorations.cs
- ExpressionBinding.cs
- ClrProviderManifest.cs
- SafeWaitHandle.cs
- InputScopeAttribute.cs
- CodeStatementCollection.cs
- SafeProcessHandle.cs
- TimeoutHelper.cs
- SqlCacheDependency.cs
- XDRSchema.cs
- ExceptionHandlerDesigner.cs
- ConfigurationFileMap.cs
- SafeSecurityHelper.cs
- DeploymentSectionCache.cs
- DataGridColumnHeadersPresenter.cs
- CriticalFinalizerObject.cs
- Control.cs
- BaseTemplatedMobileComponentEditor.cs
- InvalidFilterCriteriaException.cs
- DirectoryNotFoundException.cs
- UnsafeNetInfoNativeMethods.cs
- UInt32.cs
- EmptyImpersonationContext.cs
- InvocationExpression.cs
- RoleGroupCollection.cs
- DifferencingCollection.cs
- AssociationTypeEmitter.cs
- TrustLevelCollection.cs
- Attribute.cs
- ContainerCodeDomSerializer.cs
- DBSqlParserColumnCollection.cs
- BitConverter.cs
- DataControlFieldHeaderCell.cs
- Win32Native.cs
- WeakReferenceEnumerator.cs
- TimeSpanValidatorAttribute.cs
- SiteMapDesignerDataSourceView.cs
- OleDbException.cs
- JpegBitmapEncoder.cs
- HttpException.cs
- RelOps.cs
- AssemblyHash.cs
- XmlSortKeyAccumulator.cs
- ValidationSummary.cs
- Cursor.cs
- DrawListViewColumnHeaderEventArgs.cs
- StylusPointPropertyInfoDefaults.cs
- MeshGeometry3D.cs
- PackageRelationship.cs
- ContractMapping.cs
- HtmlToClrEventProxy.cs
- EntityDataSourceSelectingEventArgs.cs
- SqlTypeSystemProvider.cs
- XmlFormatExtensionAttribute.cs
- XmlSiteMapProvider.cs
- DbProviderFactory.cs
- Pair.cs
- DataGridViewCellMouseEventArgs.cs
- SqlDataSourceQueryEditorForm.cs
- PEFileReader.cs
- TypeLibConverter.cs
- AsyncStreamReader.cs
- PackageRelationshipCollection.cs
- PipelineModuleStepContainer.cs
- StringUtil.cs
- DynamicPropertyReader.cs
- PersonalizationState.cs
- FormsAuthenticationConfiguration.cs
- ObjectViewListener.cs
- WinInetCache.cs
- AccessDataSourceView.cs
- BasicHttpMessageSecurity.cs
- MatrixUtil.cs
- DbConnectionPoolIdentity.cs
- ProgramPublisher.cs
- input.cs
- SafeEventLogWriteHandle.cs
- InstanceNameConverter.cs
- GeometryCollection.cs
- SafeRegistryKey.cs
- PageCodeDomTreeGenerator.cs
- SizeConverter.cs
- RawStylusInputCustomData.cs
- DocumentGrid.cs
- SoapElementAttribute.cs
- ReaderOutput.cs
- WindowAutomationPeer.cs
- ExternalFile.cs
- ProcessModule.cs
- followingquery.cs
- FocusTracker.cs
- Brush.cs