Программирование для Windows NT (том 2)


         

Функция заполнит поля этой структуры


  DWORD  dwActiveProcessorMask;   // маски процессоров

  DWORD  dwNumberOfProcessors;    // количество процессоров

  DWORD  dwProcessorType;         // тип процессора

  DWORD  dwAllocationGranularity; // гранулярность памяти

  WORD   wProcessorLevel;         // уровень процессора

  WORD   wProcessorRevision;      // модификация процессора

} SYSTEM_INFO;

Функция заполнит поля этой структуры различной информацией о системе. В частности, в поле dwAllocationGranularity будет записан минимальный размер резервируемой области памяти.

Вернемся к описанию функции MapViewOfFile.

Параметр dwDesiredAccess определяет требуемый режим доступа к отображению, то есть режимы доступа для страниц виртуальной памяти, используемых для отображения. Для этого параметра вы можете указать одно из следующих значений:













































Значение



Описание



FILE_MAP_WRITE



Доступ на запись и чтение. При создании отображения функции CreateFileMapping необходимо указать тип защиты PAGE_READWRITE



FILE_MAP_READ



Доступ только на чтение. При создании отображения необходимо указать тип защиты PAGE_READWRITE или PAGE_READ



FILE_MAP_ALL_ACCESS



Аналогично FILE_MAP_WRITE



FILE_MAP_COPY



Доступ для копирования при записи. При создании отображения необходимо указать атрибут PAGE_WRITECOPY 



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

При необходимости приложение может запросить отображение в заранее выделенную область адресного пространства. Для этого следует воспользоваться функцией MapViewOfFileEx:

LPVOID MapViewOfFileEx(

  HANDLE hFileMappingObject,  // идентификатор отображения

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

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

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

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

  LPVOID lpBaseAddress);      // предполагаемый адрес

                              // для отображения файла


Содержание  Назад  Вперед