Здравствуйте ! Пытаюсь работать с PsSetLoadImageNotifyRoutine, примерно с таким CallBack -ом: Код (Text): procedure LoadImageNotify(const pFullImageName: PUNICODE_STRING; const ProcessId: THANDLE; const pImageInfo: PIMAGE_INFO); stdcall; begin KeEnterCriticalRegion; if ExAcquireResourceExclusiveLite(pLock, True) then try // Здесь идет запись данных в файл. finally ExReleaseResourceForThreadLite(pLock, PsGetCurrentThreadId); KeLeaveCriticalRegion; end else KeLeaveCriticalRegion; end; Через некоторое время работы драйвера система (Win 7) виснет (не сразу, а постепенно ) (Под XP такого не случалось ни разу) В логе есть довольно много записей (т.е. LoadImageNotify отрабатывала успешно) . Подскажите, пожалуйста, где я напортачила в данном CallBack-е ?
А разве дельфи конструкции try...finally...end предназначены для работы в р0? Возможно даже в этом кроется некий баг.
Очень боюсь, что Вы правы и именно так дела и обстоят, ибо других объяснений, пока, найти не сумела Придется попробовать убрать все try/finally (мого их у меня ) и посмотреть что получится. О результатах отпишусь.
Ага мне как представителю вымирающего поколения дельфиомантов будет интересно узнать чем всё закончилось. Но драйверы я всё-таки писал бы с помощью Windows DDK и Visual Studio 2008