русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функция CreateFileMapping().

HANDLE CreateFileMapping (

HANDLE hFile, // дескриптор отображаемого файла

LPSECURITI_ATTRIBUTES pAttr, // необязательные атрибуты безопасности

DWORD flProtect, //защита для объекта отображения

DWORD dwMaxHigh, //старшие 32 бита размера объекта

DWORD dwMaxLow, // младшие 32 бита размера объекта

LPSTR lpName); //имя объекта отображения

Первый параметр содержит дескриптор файла, который требуется отобразить в память. Этот дескриптор может быть получен функцией CreateFile().

Второй обычно равен NULL для установления набора атрибутов безопасности по умолчанию.

Третий параметр может принимать один из следующих значений:

PAGE_READONLY – передаваемая часть файла доступна только для чтения;

PAGE_READWRITE – передаваемая часть файла доступна для чтения и

записи, при этом в функции CreateFile() должны использоваться параметры: GENERIC_READ и GENERIC_WRITE.

PAGE_WRITECOPY – доступен для записи и копирования, в CreateFile()

должны использоваться:

GENERIC_READ и GENERIC_WRITE.

Если четвертый и пятый параметры равны NULL, то в них автоматически помещается значение размера отображаемого файла.

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

Пример:

hMap = CreateFileMapping (hFile, NULL, PAGE_READONLY, 0, 0, NULL);

Функция MapViewOfFile()

Вызов CreateFileMapping() не позволяет еще использовать отображаемые файлы. Эти функции только открывает отображаемый файл, но не позволяет получить указатель на область ”памяти” в этом файле. Для этого используется MapViewOfFile().

LPVOID MapViewOfFile(

HANDLE hFileObject, // объект возвращаемый функцией

// CreateFileMapping()

DWORD dwAccess, // режим доступа

DWORD dwOffsetHigh, // старшие 32 разряда смещения в файле

DWORD dwOffsetLow, // младшие 32 разряда смещения в файле

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

Первый параметр – отображает объект, значение дескриптора которого возвращается функцией CreateFileMapping().

Второй параметр устанавливает режим доступа и может принимать следующие значения:

FILE_MAP_WRITE – доступ для чтения/записи;

FILE_MAP_READ – доступ только для чтения;

FILE_MAP_COPY – создание копии при записи.

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

Последний параметр – число отображаемых байт. Если нужно прочитать весь файл, то его значение равно NULL.

Пример:

LPVOID Data = MapViewOfFile( hMap, FILE_MAP_READ, 0, 0, 0);

Просмотров: 1215


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.