在我的 C++ DLL 中,我使用CreateFile
C++ 函数来获取设备句柄。我必须将它与GENERIC_WRITE
参数一起使用。在 Vista 和更高版本上,为了使其工作,我需要管理员权限,但我也想与其他用户一起运行此 DLL。
注意:管理员希望其他用户执行我在 DLL 中执行的任务。
有人知道要使用的其他 API 或解决方法吗?
在我的 C++ DLL 中,我使用CreateFile
C++ 函数来获取设备句柄。我必须将它与GENERIC_WRITE
参数一起使用。在 Vista 和更高版本上,为了使其工作,我需要管理员权限,但我也想与其他用户一起运行此 DLL。
注意:管理员希望其他用户执行我在 DLL 中执行的任务。
有人知道要使用的其他 API 或解决方法吗?
如果您将 dll 的功能作为 COM 对象提供,则可以使用COM Elevation Moniker:
COM 提升名字对象允许在用户帐户控制 (UAC) 下运行的应用程序以提升的权限激活 COM 类。有关详细信息,请参阅关注最小权限。
[...]提升名字对象用于激活 COM 类以完成需要提升权限的特定且有限的功能,例如更改系统日期和时间。
提升需要 COM 类及其客户端的参与。必须将 COM 类配置为通过注释其注册表项来支持提升,如“要求”部分所述。COM 客户端必须使用提升名字对象请求提升。