Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

Бензиновый погрузчик максимально адаптирован к российским условиям.

--------------------------

Ищете оборудование для бизнеса, кассовое оборудование.

--------------------------

Файлы, проецируемые в память

    DWORD  dwDesiredAccess,         // тип доступа

    DWORD  dwFileOffsetHigh,        // смещение от начала файла (старшее слово)

    DWORD  dwFileOffsetLow,        // смещение от начала файла (младшее слово)

    DWORD  dwNumberOfBytesToMap // количество отображаемых из файла байт );

Эта функция отображает необходимое число страниц в виртуальном адресном пространстве вызвавшего ее процесса на указанный участок файла и возвращает виртуальный адрес начала участка памяти, на который выполнено отображение. После этого отображенный участок файла рассматривается как страничный файл подкачки и доступ к его содержимому производится аналогично доступу к виртуальной памяти.  Функция MapViewOfFileEx работает аналогично, но позволяет отобразить файл в виртуальную память с адреса, указанного приложением. Если отображение больше не нужно, его следует отменить при помощи функции UnmapViewOfFile. Эта функция перед удалением объекта ядра отображение файла записывает измененные страницы в файл.

            Другой процесс может получить доступ к файлу, отображенному в виртуальную память при помощи функции OpenFileMapping, передав ей в качестве одного из параметров ASCIIZ-строку – имя отображаемого файла. Как уже отмечалось выше, это имя, под которым отображенный файл известен в системе, и оно не имеет никакого отношения к имени файла во внешней памяти. Функция OpenFileMapping должна использоваться вместо функции CreateFileMapping любым процессом, желающим получить доступ к отображенному на память файлу, но не открывающим этот файл.

            Windows использует еще несколько способов для обмена данными между приложениями, в частности каналы передачи данных Pipe и почтовые ящики Mailslot, а также механизмы OLE. Рассмотрение этих вопросов лежит за рамками данного пособия, однако следует отметить, что любые механизмы обмена данными между процессами неявным образом основаны на отображении файлов в виртуальную память.Отметим также, что ОС при помощи рассматриваемого механизма проецирует в виртуальную память содержимое сегментов кода и данных загрузочных модулей приложений при их запуске. При этом в страничный файл подкачки помещаются только копии тех страниц, которые модифицируются приложением. Это позволяет существенно уменьшить объем страничного файла подкачки.

предыдущая