Exemplo n.º 1
0
 public static IntPtr MapViewOfFile(IntPtr hFileMapping, FileMapAccess dwDesiredAccess, long ddFileOffset,
     int dwNumberOfBytesToMap)
 {
     var Hi = (int) (ddFileOffset/int.MaxValue);
     var Lo = (int) (ddFileOffset%int.MaxValue);
     return MapViewOfFile(hFileMapping, dwDesiredAccess, Hi, Lo, dwNumberOfBytesToMap);
 }
 public static extern IntPtr MapViewOfFile(
     IntPtr hFileMappingObject,      // Handle to the file mapping object
     FileMapAccess dwDesiredAccess,  // Desired access to file mapping object
     uint dwFileOffsetHigh,          // High-order DWORD of file offset
     uint dwFileOffsetLow,           // Low-order DWORD of file offset
     uint dwNumberOfBytesToMap       // Number of bytes map to the view
     );
Exemplo n.º 3
0
        /// <summary>
        /// コンストラクタ 指定されたファイルを指定されたアクセスモードと共有モードで開く
        /// </summary>
        /// <param name="fileName">ファイル名</param>
        /// <param name="fileAccess">ファイルアクセスモード</param>
        /// <param name="fileShare">ファイル共有モード</param>
        public MemMapFile(string fileName, FileAccess fileAccess, FileShare fileShare)
        {
            EFileAccess efa;
            EFileShare  efs;

            efa = 0;
            if ((fileAccess & FileAccess.Read) == FileAccess.Read)
            {
                efa |= EFileAccess.GenericRead;
            }
            if ((fileAccess & FileAccess.Write) == FileAccess.Write)
            {
                efa |= EFileAccess.GenericWrite;
            }

            efs = EFileShare.None;
            if ((fileShare & FileShare.Read) == FileShare.Read)
            {
                efs |= EFileShare.Read;
            }
            if ((fileShare & FileShare.Write) == FileShare.Write)
            {
                efs |= EFileShare.Write;
            }

            m_FileName = fileName;

            m_FileHandle = CreateFileW(fileName, efa, efs, IntPtr.Zero, ECreationDisposition.OpenExisting, EFileAttributes.Normal, IntPtr.Zero);
            if (m_FileHandle == INVALID_HANDLE_VALUE)
            {
                Dispose();
                throw new MemMapFileException(Marshal.GetLastWin32Error(), fileName);
            }

            if (!GetFileSizeEx(m_FileHandle, out m_FileSize))
            {
                Dispose();
                throw new MemMapFileException(Marshal.GetLastWin32Error(), fileName);
            }

            m_FileMapProtection = 0;
            m_FileMapAccess     = 0;
            if ((efa & EFileAccess.GenericRead) == EFileAccess.GenericRead)
            {
                m_FileMapProtection |= FileMapProtection.PageReadonly;
                m_FileMapAccess     |= FileMapAccess.FileMapRead;
            }
            if ((efa & EFileAccess.GenericWrite) == EFileAccess.GenericWrite)
            {
                m_FileMapProtection = FileMapProtection.PageReadWrite;                 // 書き込み時は FileMapProtection.PageReadonly を消したいので代入してる
                m_FileMapAccess    |= FileMapAccess.FileMapWrite;
            }

            m_MappingHandle = CreateFileMappingW(m_FileHandle, IntPtr.Zero, m_FileMapProtection, 0, 0, IntPtr.Zero);
            if (m_MappingHandle == IntPtr.Zero)
            {
                Dispose();
                throw new MemMapFileException(Marshal.GetLastWin32Error(), fileName);
            }
        }
Exemplo n.º 4
0
 public static extern IntPtr MapViewOfFile(
     SafeFileHandle hFileMappingObject,
     FileMapAccess dwDesiredAccess,
     UInt32 dwFileOffsetHigh,
     UInt32 dwFileOffsetLow,
     UIntPtr dwNumberOfBytesToMap
     );
Exemplo n.º 5
0
        public static SharedMemoryIPC Connect(string sharedMemoryIPCName, FileMapAccess fileMapAccess)
        {
            SharedMemory    sharedMemory = Open(sharedMemoryIPCName, fileMapAccess);
            EventWaitHandle serverEvent;
            EventWaitHandle clientEvent;


            string serverEventName = sharedMemory.ReadString(0);

            try
            {
                serverEvent = EventWaitHandle.OpenExisting(serverEventName);
                clientEvent = EventWaitHandle.OpenExisting(sharedMemory.ReadString(serverEventName.Length + 1));
            }
            catch (Win32Exception ex)
            {
                if (ex.ErrorCode == 0x000010d8)
                {
                    throw new NoServerException();
                }
                else
                {
                    throw;
                }
            }

            clientEvent.Set();

            return(new SharedMemoryIPC(sharedMemory, serverEvent, clientEvent));
        }
Exemplo n.º 6
0
        internal static SafeMapViewHandle MapViewOfFile(
            SafeMapHandle hMap, long fileOffset, long mapViewSize,
            FileMapAccess desiredAccess)
        {
            if (hMap == null || hMap.IsInvalid)
            {
                throw new ArgumentNullException("hMap");
            }
            if (fileOffset < 0)
            {
                throw new ArgumentOutOfRangeException("fileOffset", fileOffset, "Must be >= 0");
            }
            if (mapViewSize <= 0)
            {
                throw new ArgumentOutOfRangeException("mapViewSize", mapViewSize, "Must be > 0");
            }

            return
                (ThrowOnError(
                     MapViewOfFile(
                         hMap,
                         desiredAccess,
                         (uint)((fileOffset >> 32) & 0xFFFFFFFF),
                         (uint)(fileOffset & 0xFFFFFFFF),
                         (IntPtr)mapViewSize)));
        }
Exemplo n.º 7
0
 public static extern IntPtr MapViewOfFileEx(
     FileMappingHandle hFileMappingObject,
     FileMapAccess dwDesiredAccess,
     uint dwFileOffsetHigh,
     uint dwFileOffsetLow,
     ulong dwNumberOfBytesToMap,
     ulong lpBaseAddress);
Exemplo n.º 8
0
 public static extern void *MapViewOfFile(
     IntPtr hFileMappingObject,
     FileMapAccess dwDesiredAccess,
     uint dwFileOffsetHigh,
     uint dwFileOffsetLow,
     IntPtr dwNumberOfBytesToMap
     );
Exemplo n.º 9
0
 public static extern SafeFileMapViewHandle MapViewOfFile(
     SafeFileHandle hFileMappingObject,
     FileMapAccess dwDesiredAccess,
     uint dwFileOffsetHigh,
     uint dwFileOffsetLow,
     uint dwNumberOfBytesToMap
     );
Exemplo n.º 10
0
 private static extern void *MapViewOfFile(
     IntPtr hFileMappingObject,     // handle to file-mapping object
     FileMapAccess dwDesiredAccess, // access mode
     int dwFileOffsetHigh,          // high-order DWORD of offset
     int dwFileOffsetLow,           // low-order DWORD of offset
     IntPtr dwNumberOfBytesToMap    // number of bytes to map
     );
Exemplo n.º 11
0
 public static unsafe extern void *MapViewOfFileEx(
     int hFileMappingObject,        // handle to file-mapping object
     FileMapAccess dwDesiredAccess, // access mode
     int dwFileOffsetHigh,          // high-order DWORD of offset
     int dwFileOffsetLow,           // low-order DWORD of offset
     int dwNumberOfBytesToMap,      // number of bytes to map
     void *lpBaseAddress            // starting address
     );
Exemplo n.º 12
0
        public static SharedMemory Open(string name, FileMapAccess fileMapAccess)
        {
            IntPtr fmHandle = OpenFileMapping(fileMapAccess, true, name);

            if (fmHandle == IntPtr.Zero)
            {
                throw new Win32Exception();
            }

            IntPtr Base = MapViewOfFile(fmHandle, fileMapAccess, 0, 0, 0);

            if (Base != IntPtr.Zero)
            {
                return(new SharedMemory(fmHandle, Base, 0));
            }
            else
            {
                throw new Win32Exception();
            }
        }
Exemplo n.º 13
0
        internal static SafeMemoryMappedViewHandle MapViewOfFile(SafeMemoryMappedFileHandle hFileMappingObject, FileMapAccess dwDesiredAccess, ulong ddFileOffset, UIntPtr dwNumberofBytesToMap)
        {
            uint hi = (UInt32)(ddFileOffset / UInt32.MaxValue);
            uint lo = (UInt32)(ddFileOffset % UInt32.MaxValue);

            return(MapViewOfFile(hFileMappingObject, dwDesiredAccess, hi, lo, dwNumberofBytesToMap));
        }
Exemplo n.º 14
0
 public static extern IntPtr MapViewOfFileEx(
 FileMappingHandle hFileMappingObject,
 FileMapAccess dwDesiredAccess,
 uint dwFileOffsetHigh,
 uint dwFileOffsetLow,
 ulong dwNumberOfBytesToMap,
 ulong lpBaseAddress);
Exemplo n.º 15
0
		public static extern SafeMemoryMappedViewHandle MapViewOfFile(SafeMemoryMappedFileHandle handle, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, UIntPtr dwNumberOfBytesToMap);
Exemplo n.º 16
0
 internal static IntPtr MapViewOfFile(IntPtr hFileMapping, FileMapAccess dwDesiredAccess, Int64 ddFileOffset, Int32 dwNumberOfBytesToMap)
 {
     int Hi = (Int32)(ddFileOffset / Int32.MaxValue);
     int Lo = (Int32)(ddFileOffset % Int32.MaxValue);
     return MapViewOfFile(hFileMapping, dwDesiredAccess, Hi, Lo, dwNumberOfBytesToMap);
 }
Exemplo n.º 17
0
 public static extern IntPtr MapViewOfFile(
     IntPtr hFileMappingObject,      // Handle to the file mapping object
     FileMapAccess dwDesiredAccess,  // Desired access to file mapping object
     uint dwFileOffsetHigh,          // High-order DWORD of file offset
     uint dwFileOffsetLow,           // Low-order DWORD of file offset
     uint dwNumberOfBytesToMap       // Number of bytes map to the view
     );
Exemplo n.º 18
0
 private static extern SafeMapViewHandle MapViewOfFile(
     SafeMapHandle hFileMappingObject,
     FileMapAccess dwDesiredAccess,
     uint dwFileOffsetHigh,
     uint dwFileOffsetLow,
     IntPtr dwNumberOfBytesToMap);
Exemplo n.º 19
0
 static extern IntPtr MapViewOfFileEx(IntPtr hFileMappingObject,
    FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow,
    UIntPtr dwNumberOfBytesToMap, IntPtr lpBaseAddress);
Exemplo n.º 20
0
 internal static extern SafeMemoryMappedViewHandle MapViewOfFile(
     SafeMemoryMappedFileHandle hFileMappingObject,
     FileMapAccess dwDesiredAccess,
     UInt32 dwFileOffsetHigh,
     UInt32 dwFileOffsetLow,
     UIntPtr dwNumberOfBytesToMap);
Exemplo n.º 21
0
 private static extern IntPtr OpenFileMapping(
     FileMapAccess dwDesiredAccess,
     bool bInheritHandle,
     [MarshalAs(UnmanagedType.LPStr)] string lpName);
Exemplo n.º 22
0
 public static extern IntPtr MapViewOfFile(IntPtr hFileMappingObject, FileMapAccess dwDesiredAccess, UInt32 dwFileOffsetHigh, UInt32 dwFileOffsetLow, UInt32 dwNumberOfBytesToMap);
Exemplo n.º 23
0
 internal static SafeMemoryMappedViewHandle MapViewOfFile(SafeMemoryMappedFileHandle hFileMappingObject, FileMapAccess dwDesiredAccess, ulong ddFileOffset, UIntPtr dwNumberofBytesToMap)
 {
     uint hi = (UInt32)(ddFileOffset / UInt32.MaxValue);
     uint lo = (UInt32)(ddFileOffset % UInt32.MaxValue);
     return MapViewOfFile(hFileMappingObject, dwDesiredAccess, hi, lo, dwNumberofBytesToMap);
 }
 public static extern IntPtr OpenFileMapping(
     FileMapAccess dwDesiredAccess,  // Access mode
     bool bInheritHandle,            // Inherit flag
     string lpName                   // File mapping object name
     );
Exemplo n.º 25
0
 public static unsafe extern IntPtr OpenFileMapping(
     FileMapAccess dwDesiredAccess, // access mode
     bool bInheritHandle,           // inherit flag
     string lpName                  // object name
     );
Exemplo n.º 26
0
		static extern SafeMapHandle MapViewOfFile(SafeProcessHandle hFileMappingObject, FileMapAccess dwDesiredAccess, int dwFileOffsetHigh, int dwFileOffsetLow, IntPtr dwNumberOfBytesToMap);
Exemplo n.º 27
0
 static extern IntPtr MapViewOfFileEx(IntPtr hFileMappingObject,
                                      FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow,
                                      UIntPtr dwNumberOfBytesToMap, IntPtr lpBaseAddress);
Exemplo n.º 28
0
 internal static extern IntPtr MapViewOfFile(IntPtr hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, uint dwNumberOfBytesToMap);
Exemplo n.º 29
0
 public static extern long *MapViewOfFileEx(IntPtr mappingHandle, FileMapAccess access, uint offsetHigh,
                                            uint offsetLow, UIntPtr bytesToMap, byte *desiredAddress);
Exemplo n.º 30
0
 private static extern IntPtr OpenFileMapping(FileMapAccess DesiredAccess, bool bInheritHandle, string lpName);
Exemplo n.º 31
0
 public static extern IntPtr MapViewOfFile(SafeFileHandle handle, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, UIntPtr dwNumberOfBytesToMap);
Exemplo n.º 32
0
 internal static extern SafeMapViewOfFileHandle MapViewOfFile(SafeFileMappingHandle handle, FileMapAccess desiredAccess, uint fileOffsetHigh, uint fileOffsetLow, uint numberOfBytesToMap);
Exemplo n.º 33
0
 private static extern void* MapViewOfFile(
   IntPtr hFileMappingObject,      // handle to file-mapping object
   FileMapAccess dwDesiredAccess,  // access mode
   int dwFileOffsetHigh,           // high-order DWORD of offset
   int dwFileOffsetLow,            // low-order DWORD of offset
   IntPtr dwNumberOfBytesToMap        // number of bytes to map
   );
Exemplo n.º 34
0
 public static extern IntPtr MapViewOfFile([In] IntPtr hFileMappingObject, [In] FileMapAccess dwDesiredAccess,
                                           [In] UInt32 dwFileOffsetHigh, [In] UInt32 dwFileOffsetLow, [In] UIntPtr dwNumberOfBytesToMap);
Exemplo n.º 35
0
 public static extern IntPtr OpenFileMapping(
     FileMapAccess dwDesiredAccess,    // Access mode
     bool bInheritHandle,              // Inherit flag
     string lpName                     // File mapping object name
     );
Exemplo n.º 36
0
 internal static extern IntPtr MapViewOfFile(
     IntPtr hFileMappingObject,
     FileMapAccess dwDesiredAccess,
     UInt32 dwFileOffsetHigh,
     UInt32 dwFileOffsetLow,
     UInt32 dwNumberOfBytesToMap);
Exemplo n.º 37
0
 public static extern FileMappingHandle OpenFileMapping(
 FileMapAccess dwDesiredAccess, bool bInheritHandle, string lpName);
Exemplo n.º 38
0
 internal static extern SafeMemoryMappedViewHandle MapViewOfFile(
     SafeMemoryMappedFileHandle hFileMappingObject,
     FileMapAccess dwDesiredAccess,
     UInt32 dwFileOffsetHigh,
     UInt32 dwFileOffsetLow,
     UIntPtr dwNumberOfBytesToMap);
Exemplo n.º 39
0
 private static extern IntPtr MapViewOfFile(IntPtr hFileMapping, FileMapAccess dwDesiredAccess, Int32 dwFileOffsetHigh, Int32 dwFileOffsetLow, Int32 dwNumberOfBytesToMap);
Exemplo n.º 40
0
 private static extern IntPtr OpenFileMapping(
         FileMapAccess dwDesiredAccess,
         bool bInheritHandle,
         [MarshalAs(UnmanagedType.LPStr)] string lpName);
Exemplo n.º 41
0
 public static extern MappedViewHandle MapViewOfFile(SafeHandle hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, uint dwNumberOfBytesToMap);
Exemplo n.º 42
0
 private static extern IntPtr MapViewOfFile(IntPtr hFileMapping, FileMapAccess dwDesiredAccess, Int32 dwFileOffsetHigh, Int32 dwFileOffsetLow, Int32 dwNumberOfBytesToMap);
Exemplo n.º 43
0
 private static extern IntPtr MapViewOfFile(IntPtr hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, uint dwNumberOfBytesToMap);
Exemplo n.º 44
0
 public static extern IntPtr OpenFileMapping(FileMapAccess dwDesiredAccess, [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, string lpName);
Exemplo n.º 45
0
 public static extern IntPtr MapViewOfFile(IntPtr intptr_0, FileMapAccess dwDesiredAccess, int int_5, int int_6, IntPtr intptr_1);
Exemplo n.º 46
0
 public static extern IntPtr OpenFileMapping(
     FileMapAccess dwDesiredAccess,
     bool bInheritHandle,
     string lpName
     );
Exemplo n.º 47
-1
 public static extern void* MapViewOfFile(
     IntPtr hFileMappingObject,
     FileMapAccess dwDesiredAccess,
     uint dwFileOffsetHigh,
     uint dwFileOffsetLow,
     IntPtr dwNumberOfBytesToMap
     );