Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Страничная память   Найти похожие ветки 

 
_Stalker_   (2004-08-14 13:35) [0]

Пожалуйста, посмотрите правильно ли я работаю со страничной памятью:
.
.
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-14 17:11) [1]

GlobalData: PGlobalDLLData;


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


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

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


 
VMcL ©   (2004-08-15 04:15) [3]

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

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

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

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

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



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.44 MB
Время: 0.029 c
1-1094844671
Viking
2004-09-10 23:31
2004.09.26
Assembler


3-1093847388
Pyton
2004-08-30 10:29
2004.09.26
ODBC. Программно создать системный DSN.


3-1093254733
Kraj
2004-08-23 13:52
2004.09.26
jpg в базу данных


14-1094447251
Layner
2004-09-06 09:07
2004.09.26
Японский отряд 731


14-1094630205
Животновод
2004-09-08 11:56
2004.09.26
Человек...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский