1) Процесс пользовательского режима имеет свой собственный «контекст адреса», который отображает виртуальные адреса пользовательского режима в уникальную коллекцию физических фреймов страницы.То есть значение любого конкретного виртуального адреса изменяется от одного момента к другому, когда планировщик Windows XP переключает потоки.
Часть работы по "переключению потоков" заключается в изменении страницытаблицы, чтобы они ссылались на контекст процесса входящего потока.
_
2) Драйвер режима ядра Windows выполняется в «произвольном контексте потока».
Драйвер можетсоздать системный поток и работать в его контексте ... но я говорю о ситуации, когда не создается системный поток.
Драйвер может использовать «ExAllocatePoolWithTag» для выделения страниц (память в энергозависимом хранилище).
_
3) Так как же драйвер получает доступ к выгружаемой памяти без какого-либо контекста ?
Как видно из пункта 1, выгружаемая памятьдоступ к ним осуществляется через таблицы страниц, которые являются "контекстно-зависимыми".
, когда драйвер работает в контексте некоторых других потоков ... то есть записи таблицы страниц указывают на соответствующий поток потоки.mem, как тогда драйвер может получить доступ к своей выгружаемой памяти?
PS: me noob при программировании ядра.Не сердись.