1
Из этого, конечно, следует, что вызывающая программа должна была задать уровень не ниже RPC_C_IMP_LEVEL_IMPERSONATE при создании активационного запроса, либо неявно через вызов CoInitializeSecurity, либо явно, используя структуру COAUTHINFO.
2
Обе эти операции могут быть выполнены во время саморегистрации. Посмотрите прекрасный пример DCOMPERM из SDK Win32, приведенный Майком Нельсоном (Mike Nelson).
3
Если в AppID нет установки RunAs (то есть класс сконфигурирован для использования активации в режиме "как активизатор"), то SCM начинает серверный процесс в window-станции активизатора (или в новой window-станции, если активизатор является удаленным клиентом). Это означает, что сервер может взаимодействовать с интерактивным пользователем только в том случае, если сам активизатор окажется интерактивным пользователем.
4
За такую изоляцию приходится платить снижением эффективности. Каждый серверный процесс, который SCM запускает с учетной записью RunAs, потребляет ресурсы на window-станцию и рабочий стол.По умолчанию Windows NT 4.0 сконфигурировано для работы примерно с 14 рабочими столами. Из этого следует, что только 14 (или меньше) серверов типа RunAs могут одновременно работать в конфигурации по умолчанию. В соответствующей статье Q171890 базы знаний фирмы Microsoft (Microsoft Knowledge Base) объясняется, как поднять это ограничивающее число до более приемлемого уровня.
5
Тем не менее, этот режим активации необходим для предотвращения ошибок RPC_E_WRONG_SERVER_IDENTITY при отладке инициализации серверного процесса.