К хуку ZwCreateFile() это никакого отношения не имеет.
Там просто в функция одна была, в ней поинтер не всегда занулялся.
Функция вроде старая, работала давно и стабильно, баг не проявлялся
А сейчас добавил новый код, очевидно по другому скомпановалось, вот и стало проявляться.
Такие баги поди найди, хрен поймешь, повыкидывал все что дописал, оставил старый код что до сих пор стабильно работал, все равно начало виснуть. Ладно б если сразу черный экран и на перезагрузку, а то ведь не сразу падает, работает еще некоторое время, на каком-нить действии - раз, и черный экран
Я перехватил ZwCreateFile().
Внутри моего перехватчике мне нужно прочитать содержимое директории. Для этого я открываю ее с помощью настоящего ZwCreateFile().
На этом, собственно, все и заканчивается. Система виснет.
Вкратце, это выглядит так. Упростил все до предела.
Перехватчик ничего не делает, просто вызывает вначале MyRead(), а затем оригинальный обработчик.
Без обращения к MyRead() все работает стабильно.
// my hooked function:
ZwCreateFileHandler(...)
{
MyRead();
g_ZwCreateFileOrig(...)
};
---
Метод MyRead()
В методе MyRead() я пытаюсь открыть директорию, и если она открылась успешно, то тут же закрываю ее.
К хуку ZwCreateFile() это никакого отношения не имеет.
Там просто в функция одна была, в ней поинтер не всегда занулялся.
Функция вроде старая, работала давно и стабильно, баг не проявлялся
А сейчас добавил новый код, очевидно по другому скомпановалось, вот и стало проявляться.
Такие баги поди найди, хрен поймешь, повыкидывал все что дописал, оставил старый код что до сих пор стабильно работал, все равно начало виснуть. Ладно б если сразу черный экран и на перезагрузку, а то ведь не сразу падает, работает еще некоторое время, на каком-нить действии - раз, и черный экран