private static IntPtr OpenFileMapping(string name, bool writable) { IntPtr intPtr = IntPtr.Zero; int desiredAccess; if (writable) { desiredAccess = 2; } else { desiredAccess = 4; } intPtr = FileMapping.OpenFileMapping(desiredAccess, false, name); if (intPtr == IntPtr.Zero) { int lastWin32Error = Marshal.GetLastWin32Error(); throw new FileMappingNotFoundException(string.Format(CultureInfo.InvariantCulture, "Cound not open File mapping for name {0}. Error Details: {1}", new object[] { name, lastWin32Error })); } return(intPtr); }
public FileMapping(string name, bool writable) { this.fileMappingHandle = FileMapping.OpenFileMapping(name, writable); this.MapViewOfFile(this.fileMappingHandle, writable, name); }