тpабла =(

From
Alexey Nevolin (2:5030/1272.64)
To
Sergey Belov
Date
2001-06-17T22:28:28Z
Area
SU.WINDOWS.NT.PROG
 ■ Hi there, Sergey !

 ■ Сдаунлоадив Holodisk в свой Pip-Boy 2000 я обнаружил, что в 14 Jun 01 13:03, Sergey Belov писал Alexey Nevolin:

 AN>> На втоpyю ниткy вешать надо. Если есть что писать, то писать, нет
 AN>> - не сyдьба =(
 SB> Hy да, ваpианты такие.
 SB> 1. Из пеpехваченной фyкции ничего  в файл не пишешь, а скидываешь инфy
 SB> в выделенный для этого дела бyфеp. А бyфеp скидывается в файл либо по
 SB> таймеpy (он pаботает в контексте system) или же из специально для
 SB> этого дела стаpтованной тобой тpидой (PsCreateSystemThread) 2.Более
 SB> пpостой, но тоpмозной ваpиант - пpямо в пеpхватчике делаешь одним
 SB> махом все 3 опеpации - откpыл файл - записал - закpыл.
Вторая нитка спасла. Но вот в чем дело: я, когда вызываю оригинал ZwQuerySystemInformation, я решил однозначно записывать в Log-файл возвращаемую длину, но этот параметр может быть и равным NULL. Я решил это обойти - в любом случае подпихивать свое значение, но если передаваемый извне параметр не NULL, то изменять его в соответствии с тем, что вернули. Тут я стал получать массовые ntStatus = c0000005. Откуда? Посмотрел SoftIce'ом (еле-еле он у меня дышит) - по ходу дела производится проверка адреса (ProbeForWrite) на то, выше он MmUserProbeAddress или нет. ExAllocatePool в любом случае возвращала мне что-нибудь начиная с 8xxxxxxx, а максимальный юзеровский - 77xxxxxx. Решил и буффер данных сначала брать с помощью ExAllocatePool, но не тут-то было. Все равно получаю c0000005. Вот теперь не знаю, как это побороть =(

 ■ cul8r Sergey
 ■ wbr Alexey Nevolin.

  [Tuborg][ESP][Drums][WinNT][Sun Solaris][OS/2][Quake3][Scorpions][Metallica]
                    [FML366][Iron Maiden][RU.METALLICA]
... lurking in a dismal fog, hungry for your blood...
--- GoldEd 3.00a5/[w32] // Welcome to RU.METALLICA
 * Origin: Page Fault Station (2:5030/1272.64)