Copyright | (c) Esa Ilari Vuokko 2006 |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Esa Ilari Vuokko <ei@vuokko.info> |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
A collection of FFI declarations for interfacing with Win32 mapped files.
Synopsis
- mapFile :: FilePath -> IO (ForeignPtr a, Int)
- data MappedObject = MappedObject HANDLE HANDLE FileMapAccess
- withMappedFile :: FilePath -> Bool -> Maybe Bool -> (Integer -> MappedObject -> IO a) -> IO a
- withMappedArea :: MappedObject -> Integer -> Int -> (Ptr a -> IO b) -> IO b
- type ProtectSectionFlags = DWORD
- sEC_COMMIT :: ProtectSectionFlags
- sEC_IMAGE :: ProtectSectionFlags
- sEC_NOCACHE :: ProtectSectionFlags
- sEC_RESERVE :: ProtectSectionFlags
- type FileMapAccess = DWORD
- fILE_MAP_ALL_ACCESS :: FileMapAccess
- fILE_MAP_COPY :: FileMapAccess
- fILE_MAP_READ :: FileMapAccess
- fILE_MAP_WRITE :: FileMapAccess
- fILE_SHARE_WRITE :: ShareMode
- createFileMapping :: Maybe HANDLE -> ProtectFlags -> DDWORD -> Maybe String -> IO HANDLE
- openFileMapping :: FileMapAccess -> BOOL -> Maybe String -> IO HANDLE
- mapViewOfFileEx :: HANDLE -> FileMapAccess -> DDWORD -> SIZE_T -> Ptr a -> IO (Ptr b)
- mapViewOfFile :: HANDLE -> FileMapAccess -> DDWORD -> SIZE_T -> IO (Ptr a)
- unmapViewOfFile :: Ptr a -> IO ()
Documentation
mapFile :: FilePath -> IO (ForeignPtr a, Int) Source #
Maps file fully and returns ForeignPtr and length of the mapped area. The mapped file is opened read-only and shared reading.
:: FilePath | Path |
-> Bool | Write? (False = read-only) |
-> Maybe Bool | Sharing mode, no sharing, share read, share read+write |
-> (Integer -> MappedObject -> IO a) | Action |
-> IO a |
Opens an existing file and creates mapping object to it.
:: MappedObject | Mapped object, from withMappedFile |
-> Integer | Position in file |
-> Int | Size of mapped area |
-> (Ptr a -> IO b) | Action |
-> IO b |
Maps area into memory.
Enums
Section protection flags
type ProtectSectionFlags = DWORD Source #
Access falgs
type FileMapAccess = DWORD Source #
Mapping files
createFileMapping :: Maybe HANDLE -> ProtectFlags -> DDWORD -> Maybe String -> IO HANDLE Source #
openFileMapping :: FileMapAccess -> BOOL -> Maybe String -> IO HANDLE Source #
mapViewOfFileEx :: HANDLE -> FileMapAccess -> DDWORD -> SIZE_T -> Ptr a -> IO (Ptr b) Source #
mapViewOfFile :: HANDLE -> FileMapAccess -> DDWORD -> SIZE_T -> IO (Ptr a) Source #
unmapViewOfFile :: Ptr a -> IO () Source #