С помощью poolmon'а нашел тег драйвера который постоянно выделяет память в выгружаемом пуле. Тег "Pp". Как определить какому драйверу соответствует этот тег??? В pooltag.txt искал - нет. Пробовал запускать "poolmon /c" - тоже без результатов. Драйвер присутствует на только поставленной WinXP, но работает нормально (без утечек). Возможно какое-то приложение пользовательского режима у меня неправильно использует этот драйвер?!
ээ вообще драйвер должен работать так, чтобы приложения не могли испорить что-либо своими запросами. иначе это кривой драйвер
Yuske я не поленился и посмотрел что это за таг вот его вызов: Код (Text): fffff800`013ffd90 41b850702020 mov r8d,20207050h fffff800`013ffd96 498bd5 mov rdx,r13 fffff800`013ffd99 b901000000 mov ecx,1 fffff800`013ffd9e e8cdd6d6ff call nt!ExAllocatePoolWithTag (fffff800`0116d470) fffff800`013ffda3 4885c0 test rax,rax fffff800`013ffda6 488905c307daff mov qword ptr [nt!IopInitHalResources (fffff800`011a0570)],rax fffff800`013ffdad 0f84bda80300 je nt!IoReportHalResourceUsage+0x52d (fffff800`0143a670) fffff800`013ffdb3 4d8bc5 mov r8,r13 fffff800`013ffdb6 498bd4 mov rdx,r12 fffff800`013ffdb9 488bc8 mov rcx,rax fffff800`013ffdbc e8bf91c3ff call nt!memmove (fffff800`01038f80) fffff800`013ffdc1 eb00 jmp nt!IoReportHalResourceUsage+0x543 (fffff800`013ffdc3) вот его стек: fffffadf`f260f7a8 fffff800`013ffda3 nt!ExAllocatePoolWithTag fffffadf`f260f7b0 fffff800`0085745e nt!IoReportHalResourceUsage+0x511 fffffadf`f260f8d0 fffff800`008599fd hal!HalpReportResourceUsage+0x8fe fffffadf`f260fa10 fffff800`0142a55a hal!HalReportResourceUsage+0x6d fffffadf`f260fa50 fffff800`01243e09 nt!Phase1InitializationDiscard+0xd99 fffffadf`f260fd40 fffff800`012b226e nt!Phase1Initialization+0x9 fffffadf`f260fd70 fffff800`01044416 nt!PspSystemThreadStartup+0x3e fffffadf`f260fdd0 00000000`00000000 nt!KxStartSystemThread+0x16 как я и предполагал - это что-то связанное с ПнП-манагером если у тебя этот пул все время (а не только на старте системы, как у меня) работает то посмотри его стек и поймешь что это за активность процентов 90 что это что-то с УСБ
еще стек этого тага fffffadf`f260f5b8 fffff800`0140028f nt!ExAllocatePoolWithTag fffffadf`f260f5c0 fffff800`01418f69 nt!PpInitializeBootDDB+0x1bf fffffadf`f260f710 fffff800`01426160 nt!IopInitializePlugPlayServices+0x28d fffffadf`f260f8c0 fffff800`0142a610 nt!IoInitSystem+0xe31 fffffadf`f260fa50 fffff800`01243e09 nt!Phase1InitializationDiscard+0xfc5 fffffadf`f260fd40 fffff800`012b226e nt!Phase1Initialization+0x9 fffffadf`f260fd70 fffff800`01044416 nt!PspSystemThreadStartup+0x3e fffffadf`f260fdd0 00000000`00000000 nt!KxStartSystemThread+0x16
Спасибо за помощь! Есть пара простейших вопросов: Как и с помощью чего ты ето сделал? Я просто первый раз сталкиваюсь с программированием в режиме ядра Тот же вопрос, как посмотреть стек зная только имя тега, а не имя драйвера?
смотрел виндыбыгой в кернел-моде на варе естесно стартишь вару и когда виндыбыга ловит бряк говоришь ему что-то типа: bp nt!ExAllocatePoolWithTag "j @r8=0x20207050 '';'gc'" потом дооолго ждешь когда словит, неудачная апишка - часто дергаецца