Для Windows Vista вам в основном нужен выделенный процесс для выполнения административных действий. Как вы упомянули, процессу с включенным администратором понадобится манифест для указания запрошенного уровня выполнения (подробности см. В этой статье MSDN ).
Если вы внимательно посмотрите на любое приложение Windows, которое запускается без повышенных прав и поддерживает само «повышение», вы увидите, что оно фактически открывает совершенно новый процесс, когда требуются административные привилегии (например, перейдите в диспетчер задач при включенном UAC нажмите «Показать процессы от всех пользователей» и обратите внимание, как он открывается с правами администратора).
Таким образом, для Windows архитектура, которая вам, вероятно, понадобится, потребует двух процессов: стандартного процесса, выполняющего большую часть работы, и процесса администратора, к которому нужно обращаться для выполнения операций администратора. Эти два процесса должны были бы взаимодействовать через некоторые безопасные средства (возможно, безопасный именованный канал ), чтобы работа администратора могла выполняться от имени стандартного процесса.
Этот подход может быть распространен на другие платформы и, возможно, может быть абстрагирован в некотором классе / интерфейсе, так что детали, специфичные для платформы, не должны просачиваться.