Содержание материала

Для отображения памяти на файл используются функции:

 

function CreateFileMapping(

hFile: THandle;  // Идентификатор ранее открытого файла. Если hFile

                  // равен 1, то объект создается в swap-файле

lpFileMappingAttributes: PSecurityAttributes;

                  // Аттрибуты защиты. Для наследования аттрибутов

                  // вызывающего процесса можно передать NIL

flProtect,       // Права на чтение-запись

dwMaximumSizeHigh,         // Старшие 32 разряда размера объекта

dwMaximumSizeLow: DWORD;   // Младшие 32 разряда размера объекта

lpName: PChar    // Имя объекта

): THandle; stdcall;

 

Функция возвращает идентификатор объекта-отображения файла на память. Далее этот идентификатор надо передать функции:

 

function MapViewOfFile(

hFileMappingObject: THandle; // Идентификатор объекта-отображения

dwDesiredAccess: DWORD;      // Тип доступа к файлу

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

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

dwNumberOfBytesToMap: DWORD  // Количество байт для отображения.

                              // Если параметр равен 0 -

                              // отображается весь файл

): Pointer; stdcall;           // Возвращается адрес отображенного

                              // участка памяти

 

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

Code:

type

PKeyboardHookInfo = ^TKeyboardHookInfo;

TKeyboardHookInfo = packed record

   HookHandle: THandle;

end;

 

const

UniqueHookId = 'sMyCoolKeyboardHook';

 

var

CommonArea: PKeyboardHookInfo = NIL;

Mapping : THandle = 0;

 

...

 

Mapping := CreateFileMapping(-1, NIL, PAGE_READWRITE, 0,

   SizeOf(CommonArea), UniqueHookId);

CommonArea := MapViewOfFile(hMapping, FILE_MAP_ALL_ACCESS,

   0, 0, 0);

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить