Организация вычислительных процессов в ЭВМ. Лясин Д.Н - 9 стр.

UptoLike

Составители: 

9
Функция MapViewOfFile в результате своей работы возвращает адрес в
виртуальном адресном пространстве процесса, начиная с которого спроеци-
рован файл или NULL в случае ошибки.
Для того чтобы отменить ранее сделанное представление, необходимо
использовать функцию
BOOL UnmapViewOfFile(LPVOID lpvBaseAddress);
Параметр lpvBaseAddress является адресом, полученным ранее функ-
цией MapViewOfFile. Функция UnmapViewOfFile сохраняет все модифици-
рованные страницы на диск
и освобождает ранее выделенное виртуальное
адресное пространство.
Для того чтобы два и более процесса имели доступ к объекту отобра-
жения файла, необходимо, чтобы они получили доступ к дескриптору этого
объекта. Его можно получить с помощью функции
HANDLE OpenFileMapping(
DWORD dwAccess, //режим доступа
BOOL bInheritHandle, //флаг наследования объекта
LPSTR lpszName //имя объекта отображения файла
);
Параметр dwAccess аналогичен
по назначению параметру dwDesiredAccess
функции MapViewOfFile. Параметр lpszName представляет собой строку с
именем уже существующего (созданного другим процессом) объекта ото-
бражения файла в память. Получив дескриптор, второй процесс должен так-
же вызвать функцию
MapViewOfFile, чтобы отобразить файл на свое виртуальное адресное про-
странство.
Используя для обмена данными между процессами механизма отобра-
жения файла в
память, необходимо помнить о сохранении целостности дан-
ных в файле. Она может быть нарушена, если на основе одного о того же
     Функция MapViewOfFile в результате своей работы возвращает адрес в
виртуальном адресном пространстве процесса, начиная с которого спроеци-
рован файл или NULL в случае ошибки.
     Для того чтобы отменить ранее сделанное представление, необходимо
использовать функцию
BOOL UnmapViewOfFile(LPVOID lpvBaseAddress);
     Параметр lpvBaseAddress является адресом, полученным ранее функ-
цией MapViewOfFile. Функция UnmapViewOfFile сохраняет все модифици-
рованные страницы на диск и освобождает ранее выделенное виртуальное
адресное пространство.
     Для того чтобы два и более процесса имели доступ к объекту отобра-
жения файла, необходимо, чтобы они получили доступ к дескриптору этого
объекта. Его можно получить с помощью функции
HANDLE OpenFileMapping(
     DWORD dwAccess,            //режим доступа
     BOOL bInheritHandle,       //флаг наследования объекта
     LPSTR lpszName             //имя объекта отображения файла
                         );
Параметр dwAccess аналогичен по назначению параметру dwDesiredAccess
функции MapViewOfFile. Параметр lpszName представляет собой строку с
именем уже существующего (созданного другим процессом) объекта ото-
бражения файла в память. Получив дескриптор, второй процесс должен так-
же вызвать функцию
MapViewOfFile, чтобы отобразить файл на свое виртуальное адресное про-
странство.
     Используя для обмена данными между процессами механизма отобра-
жения файла в память, необходимо помнить о сохранении целостности дан-
ных в файле. Она может быть нарушена, если на основе одного о того же




                                  9