Memory Management

Read-only, read-write or copy-on-write access can be specified for the mapping object while it is mapped, at the time it is created, and an optional security descriptor specified. When the mapping object is opened by another process, it specifies a desired access mode, which is checked against the security descriptor for that object. When a mapping object is mapped, a desired access mode is specified, and checked against the granted access rights to the object, which results in granted access rights to the shared memory pages (or an access denied error). File mapping provides committed pages. The inheritance flag on opening a mapping object specifies whether this handle can be inherited by related processes, and is checked against the security descriptor for the object.

Note that if a NULL name is specified for the mapping object, it can still be shared with other processes, by means of handle duplication and/or inheritance. This is more complicated as it may mean passing the handle between processes using some IPC mechanism.

Synchronization objects may be needed to prevent one process trying to open a mapping before another has created it, and to prevent two processes with write access to the shared memory, from simultaneously updating the object.

previous page next page