Получить дескриптор устройства с правами не администратора - PullRequest
1 голос
/ 14 ноября 2011

В моей C ++ DLL я использую функцию CreateFile C ++, чтобы получить дескриптор устройства. Я должен использовать его с параметром GENERIC_WRITE. В Vista и более поздних версиях, чтобы она работала, мне нужны права администратора, но я хочу запустить эту DLL и с другими пользователями.

примечание: администратор хочет, чтобы другой пользователь выполнил задачу, которую я делаю в DLL.

Кто-нибудь знает другой API для использования или обходной путь для этого?

1 Ответ

0 голосов
/ 14 ноября 2011

Если вы предоставляете функциональность dll в качестве COM-объекта, вы можете использовать COM Elevation Moniker :

Мониторинг возвышения COM позволяет приложениям, работающим под учетной записью пользователяконтроль (UAC) для активации классов COM с повышенными привилегиями.Для получения дополнительной информации см. Фокус на наименьших привилегиях.

[...]

Мониторинг повышения используется для активации класса COM для выполнения определенной и ограниченной функции, которая требует повышенных привилегий, таких как изменение системной даты ивремя.

Повышение требует участия как класса COM, так и его клиента.Класс COM должен быть настроен для поддержки повышения путем аннотирования его записи в реестре, как описано в разделе «Требования».COM-клиент должен запросить высоту, используя прозвище возвышения.

...