예제 #1
0
        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);
        }
예제 #2
0
 public FileMapping(string name, bool writable)
 {
     this.fileMappingHandle = FileMapping.OpenFileMapping(name, writable);
     this.MapViewOfFile(this.fileMappingHandle, writable, name);
 }