1

Kontron評価ボードでWindows7を実行していますが、管理者として昇格された特権でアプリケーションを実行せずに、ドライバーの1つと通信する際に問題が発生します。ドライバを使用すると、ボード上のGPIOピンからの読み取りとGPIOピンへの書き込みが可能になります。インストールされている1つのドライバーと、ドライバーとの通信に使用しているAPIを公開する2つのDLLがsystem32ディレクトリにあります。昇格された特権なしでテストアプリケーションを実行すると、ボードを初期化するためのAPI呼び出しが失敗します。昇格された特権でテストアプリケーションを実行すると、API呼び出しは成功します。Kontronドライバーに付属のテストアプリケーションは、実行する前に昇格された特権で実行するようにすべてのプロンプトをインストールしますが、昇格された特権が必要な理由がわかりません。

午前中ずっとGoogleを検索してその理由を探していましたが、情報が見つからないか、適切な用語を検索していません。昇格された特権で実行しなければならないことを回避できるかどうか、またはそれがそのままであるかどうかを判断したいだけです。では、Windows 7には、ハードウェアに直接アクセスするドライバーとの通信に制限がありますか?DLLファイルの場所と関係がありますか?それは彼らがドライバーをインストールする方法と関係がありますか?それは彼らがDLLを構築した方法と関係がありますか?

私がこれを経験している理由を説明する情報は素晴らしいでしょう。

4

1 に答える 1

0

ハリーのコメントによると、私はWindowsアクセス制御リスト(ACL)を調べました。デバイスドライバは、デバイスオブジェクトのアクセス権を設定する責任があります。私の場合、ドライバーのINFファイルにセキュリティ設定が指定されていないため、ドライバーは実行時にそれらを設定しているようです。

詳細情報へのリンクは次のとおりです。

SD、ACL、およびINFの場合:デバイスオブジェクト保護のINとOUT

スーパーユーザー:Windows ACLとは何ですか?

MSDN:アクセス制御

MSDN:デバイスオブジェクトへのセキュリティ記述子の適用

SysInternals:WinObjツール

于 2012-08-23T13:31:58.733 に答える