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 );
/// <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); } }
public static extern IntPtr MapViewOfFile( SafeFileHandle hFileMappingObject, FileMapAccess dwDesiredAccess, UInt32 dwFileOffsetHigh, UInt32 dwFileOffsetLow, UIntPtr dwNumberOfBytesToMap );
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)); }
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))); }
public static extern IntPtr MapViewOfFileEx( FileMappingHandle hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, ulong dwNumberOfBytesToMap, ulong lpBaseAddress);
public static extern void *MapViewOfFile( IntPtr hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, IntPtr dwNumberOfBytesToMap );
public static extern SafeFileMapViewHandle MapViewOfFile( SafeFileHandle hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, uint dwNumberOfBytesToMap );
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 );
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 );
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(); } }
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 SafeMemoryMappedViewHandle MapViewOfFile(SafeMemoryMappedFileHandle handle, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, UIntPtr dwNumberOfBytesToMap);
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); }
private static extern SafeMapViewHandle MapViewOfFile( SafeMapHandle hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, IntPtr dwNumberOfBytesToMap);
static extern IntPtr MapViewOfFileEx(IntPtr hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, UIntPtr dwNumberOfBytesToMap, IntPtr lpBaseAddress);
internal static extern SafeMemoryMappedViewHandle MapViewOfFile( SafeMemoryMappedFileHandle hFileMappingObject, FileMapAccess dwDesiredAccess, UInt32 dwFileOffsetHigh, UInt32 dwFileOffsetLow, UIntPtr dwNumberOfBytesToMap);
private static extern IntPtr OpenFileMapping( FileMapAccess dwDesiredAccess, bool bInheritHandle, [MarshalAs(UnmanagedType.LPStr)] string lpName);
public static extern IntPtr MapViewOfFile(IntPtr hFileMappingObject, FileMapAccess dwDesiredAccess, UInt32 dwFileOffsetHigh, UInt32 dwFileOffsetLow, UInt32 dwNumberOfBytesToMap);
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 );
public static unsafe extern IntPtr OpenFileMapping( FileMapAccess dwDesiredAccess, // access mode bool bInheritHandle, // inherit flag string lpName // object name );
static extern SafeMapHandle MapViewOfFile(SafeProcessHandle hFileMappingObject, FileMapAccess dwDesiredAccess, int dwFileOffsetHigh, int dwFileOffsetLow, IntPtr dwNumberOfBytesToMap);
internal static extern IntPtr MapViewOfFile(IntPtr hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, uint dwNumberOfBytesToMap);
public static extern long *MapViewOfFileEx(IntPtr mappingHandle, FileMapAccess access, uint offsetHigh, uint offsetLow, UIntPtr bytesToMap, byte *desiredAddress);
private static extern IntPtr OpenFileMapping(FileMapAccess DesiredAccess, bool bInheritHandle, string lpName);
public static extern IntPtr MapViewOfFile(SafeFileHandle handle, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, UIntPtr dwNumberOfBytesToMap);
internal static extern SafeMapViewOfFileHandle MapViewOfFile(SafeFileMappingHandle handle, FileMapAccess desiredAccess, uint fileOffsetHigh, uint fileOffsetLow, uint numberOfBytesToMap);
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 );
public static extern IntPtr MapViewOfFile([In] IntPtr hFileMappingObject, [In] FileMapAccess dwDesiredAccess, [In] UInt32 dwFileOffsetHigh, [In] UInt32 dwFileOffsetLow, [In] UIntPtr dwNumberOfBytesToMap);
internal static extern IntPtr MapViewOfFile( IntPtr hFileMappingObject, FileMapAccess dwDesiredAccess, UInt32 dwFileOffsetHigh, UInt32 dwFileOffsetLow, UInt32 dwNumberOfBytesToMap);
public static extern FileMappingHandle OpenFileMapping( FileMapAccess dwDesiredAccess, bool bInheritHandle, string lpName);
private static extern IntPtr MapViewOfFile(IntPtr hFileMapping, FileMapAccess dwDesiredAccess, Int32 dwFileOffsetHigh, Int32 dwFileOffsetLow, Int32 dwNumberOfBytesToMap);
public static extern MappedViewHandle MapViewOfFile(SafeHandle hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, uint dwNumberOfBytesToMap);
private static extern IntPtr MapViewOfFile(IntPtr hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, uint dwNumberOfBytesToMap);
public static extern IntPtr OpenFileMapping(FileMapAccess dwDesiredAccess, [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, string lpName);
public static extern IntPtr MapViewOfFile(IntPtr intptr_0, FileMapAccess dwDesiredAccess, int int_5, int int_6, IntPtr intptr_1);
public static extern IntPtr OpenFileMapping( FileMapAccess dwDesiredAccess, bool bInheritHandle, string lpName );
public static extern void* MapViewOfFile( IntPtr hFileMappingObject, FileMapAccess dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, IntPtr dwNumberOfBytesToMap );