Каким образом можно получить GUID текущего пользователя в Ring-0. Может где в реестре есть? Только чтоб без извращений типа перехвата ZwOpenKey с последующим отслеживанием ветки \\Registry\\User\\S********
При запуске системы грузится стандартный GUID типа {00000000-0000-0000-0000-000000000000} из ветки "HKEY_USERS\.DEFAULT\Identities" Last User ID. При входе под пользователем этот GUID меняется на GUID текущего пользователя и он где-то хранится. Вот мне требуется его получить. Вообщем-то он находится в "HKEY_CURRENT_USER\Identities" - но это илюзия. В Ring-0 реестр представлен иначе там нету HKEY_CURRENT_USER. Короче говоря HKEY_CURRENT_USER это HKEY_USERS\S-/* GUID */-Classes
Нет никакого текущего пользователя. Пора привыкнуть, что одновременно может быть запущено множество терминальных сессий, множетсво процессов под разными пользователями и.т.д. Узнать ползователя запустившего определенный процесс можно по его токену, узнать текущего пользователя нельзя, потому что нет такого понятия в системе вобще.
Ок. Понятно то есть наилучшим вариантом будет получить информацию о процессе explorer.exe при входе в систему. А что делать при смене пользователя, без выхода предыдущего? И при переключении между ними?
Лучше всего будет отказаться от работы с веткой HKCU. Иначе проблем будет выше крыши. Потому что одновременно могут работать несколько пользователей в разных терминальных сессиях, даже без всякого переключения.