Взаимодействие процессов через общую область данных

 

 

 

Для обеспечения когерентности процессы должны работать с одним объектом “проецируемый файл”, а не с одним файлом.

Использование файла подкачки:

Общая область данных может быть создана не только путем проецирования файла, но и путем проецирования части файла подкачки.

Для этого в функцию CreateFileMapping необходимо передать в качестве параметра не описатель ранее открытого файла, а -1. В этом случае необходимо задать размеры выделяемой области.

 

Пример работы с проецированным файлом:

HANDLE hFile, hFileMapping;

PVOID pMassive;

hFile = CreateFile( “File Name”, ... );

hFileMapping = CreateFileMapping( hFile, ... );

CloseHandle( hFile ) ;

pMassive = MapViewOfFile( hFileMapping, ... );

//Здесь производится работа с массивом pMassive

UnmapViewOfFile( pMassive );