Как работает драйвер режима ядра Windows для доступа к выгружаемой памяти?

1) Процесс пользовательского режима имеет свой собственный «адресный контекст», который отображает виртуальные адреса пользовательского режима в уникальную коллекцию физических фреймов страниц. То есть,значение любого конкретного виртуального адреса изменяется от одного момента к другому, поскольку планировщик Windows XP переключает потоки.

Частью работы по «переключению потоков» является изменение таблиц страниц так, чтобы они ссылались на контекст процесса входящего потока.

_

2) Драйвер режима ядра Windows выполняется в «произвольном контексте потока».

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

Драйвер может использовать «ExAllocatePoolWithTag» для выделения страниц (память в энергозависимой памяти).

_

3) Так как же драйвер получает доступ к выгружаемой памятибез контекста?

Как видно из пункта 1, доступ к выгружаемому мему осуществляется через таблицы страниц, которые «зависят от контекста».

когда драйвер работает в каком-то другом контексте потоков ... т.е. Записи таблицы страниц указывают на темы, относящиеся к физ. mem, как тогда драйвер может получить доступ к своей страничной памяти?

PS: я нуб при программировании ядра. Не сердись.

Ответы на вопрос(2)

Ваш ответ на вопрос