На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Creating Named Shared Memory



The first process calls the CreateFileMapping function to create a file-mapping object and give it the name MyFileMappingObject. By using the PAGE_READWRITE flag, the processes will have read/write permission to the memory through any file views that are created.

HANDLE hMapFile;

hMapFile = CreateFileMapping(hFile, // Current file handle.
NULL, // Default security.
PAGE_READWRITE, // Read/write permission.
0, // Max. object size.
0, // Size of hFile.
"MyFileMappingObject"); // Name of mapping object.

if (hMapFile == NULL) {
ErrorHandler("Could not create file-mapping object.");

}


The process then uses the file-mapping object handle returned by CreateFileMapping in the call to MapViewOfFile to create a view of the file in the process's address space. The MapViewOfFile function returns a pointer to the file view.

LPVOID lpMapAddress;
lpMapAddress = MapViewOfFile(hMapFile, // Handle to mapping object.
FILE_MAP_ALL_ACCESS, // Read/write permission
0, // Max. object size.
0, // Size of hFile.
0); // Map entire file.

if (lpMapAddress == NULL) {
ErrorHandler("Could not map view of file.");
}


The second process calls the OpenFileMapping function with the name MyFileMappingObject to use the same file-mapping object as the first process. Like the first process, the second process uses the MapViewOfFile function to obtain a pointer to the file view.

HANDLE hMapFile;
LPVOID lpMapAddress;

hMapFile = OpenFileMapping(FILE_MAP_ALL_ACCESS, // Read/write permission.
FALSE, // Do not inherit the name
"MyFileMappingObject"); // of the mapping object.

if (hMapFile == NULL) {
ErrorHandler("Could not open file-mapping object.");
}

lpMapAddress = MapViewOfFile(hMapFile, // Handle to mapping object.
FILE_MAP_ALL_ACCESS, // Read/write permission.

0, // Max. object size.
0, // Size of hFile.
0); // Map entire file.

if (lpMapAddress == NULL) {
ErrorHandler("Could not map view of file.");
}



Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Создание Поименованное Распространяло Память



Первый процесс называет функцию CreateFileMapping, чтобы создавать файловое распределение объекта и давать это имя MyFileMappingObject. Используя флаг PAGE_READWRITE, процессы прочитали/писать разрешение в память через любые файловые виды, которое создано.

ПРООПЕРИРУЙТЕ hMapFile;

hMapFile = CreateFileMapping(hFile, // ФАЙЛОВАЯ ручка Течения.
НЕДЕЙСТВИТЕЛЬНАЯ, // безопасность Невыполнения.
PAGE_READWRITE, // Прочитавшее/разрешение записи.
0, // Объектный размер Max..
0, // Размер hFile.
"MyFileMappingObject"); // Имя распределения объекта.

если (hMapFile == НЕДЕЙСТВИТЕЛЬНЫЙ) {
ErrorHandler("Could НЕ создает файловое распределение объекта.");

}


Процесс затем использует файловую-объектную ручку распределения возвращанную CreateFileMapping на вызов на MapViewOfFile, чтобы создавать вид файла в пространстве адреса процесса. Функция MapViewOfFile возвращает указатель в файловый вид.

LPVOID lpMapAddress;
lpMapAddress = MapViewOfFile(hMapFile, // РУЧКА в распределение объекта.
FILE_MAP_ALL_ACCESS, // Прочитавшее/разрешение записи 0, // объектный размер Max..
0, // Размер hFile.
0); // Целый файл Карты.

если (lpMapAddress == НЕДЕЙСТВИТЕЛЬНЫЙ) { ErrorHandler("Could не вид карты файла.");
}


Второй процесс называет функцию OpenFileMapping с именем MyFileMappingObject, чтобы использовать то же файловое распределение объекта как первый процесс. Подобно первому процессу, второй процесс использует функцию MapViewOfFile, чтобы получать указатель в файловый вид.

ПРООПЕРИРУЙТЕ hMapFile;
LPVOID lpMapAddress;

hMapFile = OpenFileMapping(FILE_MAP_ALL_ACCESS, // ПРОЧИТАВШЕЕ/разрешение записи.
ЛОЖЬ, // не наследует имя "MyFileMappingObject"); // распределения объекта.

если (hMapFile == НЕДЕЙСТВИТЕЛЬНЫЙ) {
ErrorHandler("Could НЕ файловое распределение открытого объекта.");
}

lpMapAddress = MapViewOfFile(hMapFile, // РУЧКА в распределение объекта.
FILE_MAP_ALL_ACCESS, // Прочитавшее/разрешение записи.

0, // Объектный размер Max..
0, // Размер hFile.
0); // Целый файл Карты.

если (lpMapAddress == НЕДЕЙСТВИТЕЛЬНЫЙ) { ErrorHandler("Could не вид карты файла.");
}



Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz