Re: Помогите разобраться с выгружаемым пулом
От: Maxim S. Shatskih Россия  
Дата: 04.12.07 12:16
Оценка: 3 (1)
Y>Уже сгуглился, но так и не разобрался, какое отношение выгружаемый пул имеет к каждому процессу в системе.

Никакого. Это kernel memory, не привязанная к процессу.

Y>Если я правильно все понял, выделять память в выгружаемом пуле можно только в режиме

>ядра (ф-ции ExAllocatePool...).

Естественно. В других ОС этот вызов называется kmalloc.

Y>И выгружаемый пул проецируется в виртуальное пространство каждого процесса,


Никуда он не проецируется, как и само ядро. Просто в адресах каждого процесса выделен регион, изначально одинаково отображаемый у всех процессов, в котором сидит ядро и его данные и код, в том числе пулы. Доступ туда возможен только из ядра.

Y>т.е. один выгружаемый пул на ВСЕ процессы.


Ну да, как и одно ядро.

Y>Если предположить что это так, что означает столбец в Диспетчере задач «Выгружаемый пул»???


Кажется, таки есть вызов типа ExAllocatePoolWithQuotaTag, при этом на блочок пула ставится пометка, какой процесс аллоцировал. Скорее всего, в диспетчере задач это и показывается.

Другое дело, что почти никакие драйвера этим вызовом не пользуются.
Занимайтесь LoveCraftом, а не WarCraftом!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.