Надо написать своё расширение для винлогона - должно выдавать окошко с запросом ввода ещё одного пароля при входе в систему. Для Висты/Вин7 можно реализовать через Credential Provider, но для ХР это не подходит. Насколько знаю там есть GINA. Но хочется универсальное решение дабы не писать под каждую ось со своими заморочками. Возможно кто-нибудь подкинет идейку. Вариант хуков хз насколько политкорректен.
Boot Execute - насколько понимаю получаю убогий интерфейс досоподобного вида. Я тут нарыл поинтереснее вариант: Код (Text): typedef struct _WLX_NOTIFICATION_INFO { ULONG Size; ULONG Flags; PWSTR UserName; PWSTR Domain; PWSTR WindowStation; HANDLE hToken; HDESK hDesktop; PFNMSGECALLBACK pStatusCallback; } WLX_NOTIFICATION_INFO, *PWLX_NOTIFICATION_INFO; Тока надо подумать как корректно вывести своё окно и выкинуть юзвера при неверном пароле.
Если, как я понял гемор с XP. Можно на стадии Boot Execute внедрять dll в csrss , после того как получим уведомление, что подгрузился винлогон - уже внедреж в него или блокировка его загрузки и дальше делай что хошь.
а для <=XP абсолютно корректный способ - это написание своей GINA DLL и обработка WlxLoggedOutSas. благо документировано и есть сэмплы. мсдн в зубы и вперед. а все эти подмены да хуки спустите в унитаз лучше сразу. потом глюков не оберетесь