Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Страничная память


_Stalker_ ©   (2004-08-14 13:35:00) 

Пожалуйста, посмотрите правильно ли я работаю со страничной памятью:
.
.
Const
MMFName:PChar='KeyMMF';
Type
PGlobalDLLData=^TGlobalDLLData;
TGlobalDLLData=packed record
 SysHook:integer;
end;
Var
GlobalData: TGlobalDLLData;
MMFHandle: THandle;
.
.

begin.
.
.
MMFHandle:= CreateFileMapping(INVALID_HANDLE_VALUE, nil, PAGE_READWRITE, 0, SizeOf(TGlobalDLLData), MMFName);
 GlobalData:= MapViewOfFile(MMFHandle, FILE_MAP_ALL_ACCESS, 0, 0, SizeOf(TGlobalDLLData));}
 GlobalData^.SysHook:=XXX

.
.

Потом когда надо получить значение переменной делаю:

A:=GlobalData.SysHook;


VMcL   (2004-08-15 04:15:00) [1]

>> _Stalker_  (14.08.04 21:03) [2]

"Не работает" - понятие растяжимое.

> Может при этом есть какие- то особенности работы со страничной памятью?

После того, как выделенная память успешноотображена на ВАП процесса функцией MapViewOfFile, можно свободно работать с указателем (у тебя GlobalData) на эту память в пределах отображенного размера и запрошенных прав.

P.S. Результаты API-функций следует проверять на ошибочное значение (CreateFileMapping на 0, MapViewOfFile на nil и т. д.).


_Stalker_   (2004-08-14 21:03:00) [2]


> VMcL ©   (14.08.04 17:11) [1]
> GlobalData: PGlobalDLLData;

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


VMcL   (2004-08-14 17:11:00) [3]

GlobalData: PGlobalDLLData;


Наверх

Титульная страница Поиск, карта сайта Написать письмо