Форум: "WinAPI";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
Внизпроцеду ра ловушки Найти похожие ветки
← →
dit (2003-12-24 11:40) [0]можно ли использовать функции типа writeln и подобные в hookproc
← →
Digitman (2003-12-24 11:59) [1]с т.з. компилятора - можно
с т.з. здравой логики и смысла - непонятно зачем
с т.з. потокобезопасности - можно в лок.хуке и нельзя в глоб.хуке (чревато огромными неприятностями, вплоть до краха системы)
← →
shluz (2003-12-25 00:53) [2]
> с т.з. здравой логики и смысла - непонятно зачем
например, запись в файл :)
> с т.з. потокобезопасности - можно в лок.хуке и нельзя в
> глоб.хуке (чревато огромными неприятностями, вплоть до краха
> системы)
почему так?? операции на чистом API не вызывают проблем, в то время, как delphi-проц. приводят действительно к разрушению потоков, процессов и даже системы..хотя они в конечном итоге имеют те-же самые вызовы APi
← →
Digitman (2003-12-25 08:46) [3]
> например, запись в файл
пусть этим занимается тот процесс X, который установил хук
в самом хуке следует лишь известить процесс Х любым корректным и удобным способом о необходимости записи в такой-то файл такой-то инф-ции, процесс же Х (точнее - какой-то один выбранный его кодовый поток) , получая такие извещения от разных код.потоков, выполнит необходимые действия с необходимыми файлами последовательно
> операции на чистом API не вызывают проблем
какие ? конкретно ?
← →
shluz (2003-12-26 00:10) [4]ну примерно так :
q:=windows.CreateFile("c:\hook.txt",GENERIC_WRITE,FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);
try
fileseek(q,0,2);
WriteFile(q,fHead^,1,i,nil);
...
← →
Digitman (2003-12-26 08:35) [5]writeln() в конечном итоге вызывает тот же WriteFile(), но вот предыдущий Rewrite() (который, соответственно, вызывает где-то внутри себя CreateFile) задает иные опции совместного доступа к файлу ... не возьмусь утверждать (проверить нужно, что достаточно просто), но скорей всего опция FILE_SHARE_WRITE не фигурирует там... кроме того - читаем хэлп - " If an external file with the same name already exists, it is deleted and a new empty file is created in its place."
← →
Digitman (2003-12-26 08:40) [6]а вообще крайне нежелательно в процедуре ловушки манипулировать такими сложными и ресурсоемкими операциями как открытие/закрытие файла и работа с ним ... процедура ловушки должна отрабатываться как можно быстрей, чтобы не "тормозить" исполнение прочих ловушек в hook chain
поэтому и настоятельно рекомендую [3]
← →
shluz (2003-12-26 10:02) [7]и тут метод, как я понимаю , файлы спроецированные в память?
← →
Digitman (2003-12-26 10:54) [8]необязательно.
смотря что и как тебе в рез-те протоколировать нужно
можно обойтись и без MMF
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c