Win32-2.3.1.0: A binding to part of the Win32 library

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 | Trustworthy
Language | Haskell98

System.Win32.FileMapping

Description

A collection of FFI declarations for interfacing with Win32 mapped files.

Synopsis

- mapFile :: FilePath -> IO (ForeignPtr a, Int)
- mapFileBs :: FilePath -> IO ByteString
- 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
- type FileMapAccess = DWORD
- sEC_RESERVE :: ProtectSectionFlags
- fILE_MAP_ALL_ACCESS :: FileMapAccess
- fILE_MAP_COPY :: FileMapAccess
- fILE_MAP_READ :: FileMapAccess
- fILE_MAP_WRITE :: FileMapAccess
- 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 ()
- c_OpenFileMapping :: DWORD -> BOOL -> LPCTSTR -> IO HANDLE
- c_CreateFileMapping :: HANDLE -> Ptr () -> DWORD -> DWORD -> DWORD -> LPCTSTR -> IO HANDLE
- c_MapViewOfFileEx :: HANDLE -> DWORD -> DWORD -> DWORD -> SIZE_T -> Ptr a -> IO (Ptr b)
- c_UnmapViewOfFile :: Ptr a -> IO BOOL
- c_UnmapViewOfFileFinaliser :: FunPtr (Ptr a -> IO ())

# Documentation

mapFile :: FilePath -> IO (ForeignPtr a, Int)

Maps file fully and returns ForeignPtr and length of the mapped area. The mapped file is opened read-only and shared reading.

mapFileBs :: FilePath -> IO ByteString

As mapFile, but returns ByteString

data MappedObject

Constructors

MappedObject HANDLE HANDLE FileMapAccess |

withMappedFile

Arguments

:: 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.

withMappedArea

Arguments

:: 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.

type ProtectSectionFlags = DWORD

sEC_COMMIT :: ProtectSectionFlags

sEC_IMAGE :: ProtectSectionFlags

sEC_NOCACHE :: ProtectSectionFlags

type FileMapAccess = DWORD

sEC_RESERVE :: ProtectSectionFlags

fILE_MAP_ALL_ACCESS :: FileMapAccess

fILE_MAP_COPY :: FileMapAccess

fILE_MAP_READ :: FileMapAccess

fILE_MAP_WRITE :: FileMapAccess

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 ()

c_OpenFileMapping :: DWORD -> BOOL -> LPCTSTR -> IO HANDLE

c_CreateFileMapping :: HANDLE -> Ptr () -> DWORD -> DWORD -> DWORD -> LPCTSTR -> IO HANDLE

c_MapViewOfFileEx :: HANDLE -> DWORD -> DWORD -> DWORD -> SIZE_T -> Ptr a -> IO (Ptr b)

c_UnmapViewOfFile :: Ptr a -> IO BOOL

c_UnmapViewOfFileFinaliser :: FunPtr (Ptr a -> IO ())