Структура процесса Windows: как хранить пользовательскую информацию?

Я хочу хранить некоторую информацию в структуре процесса EPROCESS в ядре Windows NT. Моя цель заключается в том, чтобы при вызове winlogon я хотел назначить уникальное значение следующему процессу, в зависимости от того, какой пользователь входит в систему. Но я не знаю, где хранить этот уникальный идентификатор. Я попытался и успешно изменил некоторую информацию (например, токены) в блоке EPROCESS процесса методом прямой модификации объекта ядра, и мне интересно, есть ли какая-либо структура в этом блоке EPROCESS, где может храниться некоторая другая информация.

ps Для модификации блока EPROCESS я использовал драйвер устройства.

10.12.2008 08:29:25
Не могли бы вы объяснить более широкий контекст этого требования? Можно ли вместо этого сохранить отображение «process => уникальный идентификатор» в одной централизованной таблице, поддерживаемой одним процессом (и предоставить некоторый механизм, чтобы другие процессы могли запрашивать его, если это необходимо)?
reuben 30.12.2008 18:09:24
2 ОТВЕТА

Структура EPROCESS непрозрачна и недокументирована, что означает, что вы не должны связываться с ее внутренностями. Для этого необходимо, в частности, протестировать каждую версию ОС и пакет обновления, который вы планируете поддерживать.

3
27.01.2009 18:45:21

Не модифицируйте EPROCESS. Это принесет вам большое горе.

Кроме того, если вы это сделаете, не устанавливайте его ни на кого другого компьютера. Абсолютно неправильно навязывать такие глубоко разрушительные, дестабилизирующие изменения системы другим компьютерам. Как бы это понравилось, если бы я заболел туберкулезом?

1
25.03.2009 20:30:48