т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)