Вопрос: на сколько возможно сделать поток внутри драйвера, который будет работать с памятью заданного процесса на чтение/запись? Если возможно - то как?
PsCreateSystemThread, а потом внутри потока KeStackAttachProcess и можно работать с памятью этого процесса. По завершении нити надо не забыть вызвать KeUnstackDetachProcess. И есть один трабл: надо следить за тем, чтобы процесс не завершился, иначе можно бсод словить. Для этого надо ставить калбэк с помощью PsSetCreateProcessNotifyRoutine и по завершении процесса сбрасывать какой-нибудь флаг. А в процедуре работы с памятиью процесса его проверять, либо просто задержать завершение процесса на нужное время (калбэк всегда срабатывает внутри завершаемого процесса, и пока он не отработает, процесс не завершиться).
всем спасибо за ответы. добавлю, что страницы ring-3 процесса надо или проверять на выгруженность или читать их с IRQL = PASSIVE_LEVEL.