ТАВ>При создании VWIN32_CreateRing0Thread, Я его раньше и не создавал VxD виснет... правда не настолько фатально (Без синего экрана).
Виснет потому, что VWIN32_CreateRing0Thread может быть вызвана только "at APPY TIME" (см. DDK Help). Посему запускать поток надо приблизительно так:
inline HANDLE CreateThread(PVOID ThreadProc, PVOID pvContext)
{
_asm mov ecx, 4096
_asm mov edx, [pvContext]
_asm mov ebx, [ThreadProc]
_asm mov esi, 0
VxDCall(_VWIN32_CreateRing0Thread)
}
void CreateWriteThreadCallback(DWORD pvContext)
{
CreateThread(ThreadProc, (PVOID)pvContext);
}
// ....
_SHELL_CallAtAppyTime(CreateWriteThreadCallback, (DWORD)pvContext, 0);
// ....
ТАВ>И с другой стороны, Файл Монитор писан на чистых Сях, и я ничего не могу сделать с потоком, как поток залить в файл...
?????
ТАВ> Ладно, это половина беды... Мне на самом деле нужно производить некоректные действия с теми данными которые он прочитал, или собирается писать...
"некоректные" — имеется в виду "некоторые" ?
ТАВ>И еще... У меня есть исходник (sample)в котором сохраняются в файл прямо из обработчика,
Вообще-то очень странно что можно прямо из обработчика... Но если есть рабочий пример, то какие могут возникнуть проблемы?
ТАВ>// Вот здесь кстати встречается этот самый ir_data, но когда я пытаюсь из него что либо попросить, вываливает в файлы всякий мусор.
А что в SoftICE-е по этим адресам видно?