Y>Уже сгуглился, но так и не разобрался, какое отношение выгружаемый пул имеет к каждому процессу в системе.
Никакого. Это kernel memory, не привязанная к процессу.
Y>Если я правильно все понял, выделять память в выгружаемом пуле можно только в режиме >ядра (ф-ции ExAllocatePool...).
Естественно. В других ОС этот вызов называется kmalloc.
Y>И выгружаемый пул проецируется в виртуальное пространство каждого процесса,
Никуда он не проецируется, как и само ядро. Просто в адресах каждого процесса выделен регион, изначально одинаково отображаемый у всех процессов, в котором сидит ядро и его данные и код, в том числе пулы. Доступ туда возможен только из ядра.
Y>т.е. один выгружаемый пул на ВСЕ процессы.
Ну да, как и одно ядро.
Y>Если предположить что это так, что означает столбец в Диспетчере задач «Выгружаемый пул»???
Кажется, таки есть вызов типа ExAllocatePoolWithQuotaTag, при этом на блочок пула ставится пометка, какой процесс аллоцировал. Скорее всего, в диспетчере задач это и показывается.
Другое дело, что почти никакие драйвера этим вызовом не пользуются.
Уже сгуглился, но так и не разобрался, какое отношение выгружаемый пул имеет к каждому процессу в системе. Если я правильно все понял, выделять память в выгружаемом пуле можно только в режиме ядра (ф-ции ExAllocatePool...). И выгружаемый пул проецируется в виртуальное пространство каждого процесса, т.е. один выгружаемый пул на ВСЕ процессы.
Если предположить что это так, что означает столбец в Диспетчере задач «Выгружаемый пул»??? В нем для каждого процесса различные значения. Как так если пул один для всех??? Поправьте пожалуйста, наверное я что-то напутал
Спасибо за пояснения
Правда, пробовал использовать ExAllocatePoolWithQuotaTag, но счетчик выгружаемого пула для процесса не изменился?! Поэкспериментирую с этим еще, если кто-то использовал ExAllocatePoolWithQuotaTag на практике — напишите, буду признателен.
Сейчас бьюсь с утечкой в выгружаемом пуле.
Ситуация такова: драйвер с тегом "Pp" постоянно выделяет память в выгр. пуле (~20 Mb за сутки). Определил при мониторинге poolmon'ом. Как определить имя этого драйвера??? Запуск poolmon'а с ключом /c результата не дал. Может есть другие утилиты позволяющие ето сделать? Или кто сталкивался с подобным, тег "Pp" присутствует в "чистой" ОС. Наверное это работа стандартного драйвера.