Creating Named Shared Memory
The first process calls the
CreateFileMapping function to create a file-mapping object and give it the name
MyFileMappingObject. By using the PAGE_READWRITE flag, the processes will have read/write
permission to the memory through any file views that are created.
HANDLE hMapFile;
hMapFile = CreateFileMapping(hFile, // Current file handle.
NULL, // Default security.
PAGE_READWRITE, // Read/write permission.
0, // Max. object size.
0, // Size of hFile.
"MyFileMappingObject"); // Name of mapping object.
if (hMapFile == NULL) {
ErrorHandler("Could not create file-mapping object.");
}
The process then uses the file-mapping object handle returned by
CreateFileMapping in the call to
MapViewOfFile to create a view of the file in the process's address space. The
MapViewOfFile function returns a pointer to the file view.
LPVOID lpMapAddress;
lpMapAddress = MapViewOfFile(hMapFile, // Handle to mapping object.
FILE_MAP_ALL_ACCESS, // Read/write permission
0, // Max. object size.
0, // Size of hFile.
0); // Map entire file.
if (lpMapAddress == NULL) {
ErrorHandler("Could not map view of file.");
}
The second process calls the
OpenFileMapping function with the name MyFileMappingObject to use the same file-mapping
object as the first process. Like the first process, the second process uses the
MapViewOfFile function to obtain a pointer to the file view.
HANDLE hMapFile;
LPVOID lpMapAddress;
hMapFile = OpenFileMapping(FILE_MAP_ALL_ACCESS, // Read/write permission.
FALSE, // Do not inherit the name
"MyFileMappingObject"); // of the mapping object.
if (hMapFile == NULL) {
ErrorHandler("Could not open file-mapping object.");
}
lpMapAddress = MapViewOfFile(hMapFile, // Handle to mapping object.
FILE_MAP_ALL_ACCESS, // Read/write permission.
0, // Max. object size.
0, // Size of hFile.
0); // Map entire file.
if (lpMapAddress == NULL) {
ErrorHandler("Could not map view of file.");
}
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database