私の 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 クライアントは、昇格モニカーを使用して昇格を要求する必要があります。