カスタム USB デバイス用の Windows デバイス ドライバーを作成していますが、ユーザー プログラムがドメイン ユーザーとして実行されている場合、(CreateFile を使用して) ユーザー プログラムからデバイスを開くことができません。ローカル ユーザーまたは管理者 (または「Run As」管理者) として実行すると、ドライバーを問題なく開くことができますが、ドメイン ユーザーとしてGetLastError
は 5 (アクセスが拒否されました) が返されます。
私はもともとローカル ユーザーにもこの問題を抱えていましたが、次の SDDL エントリを .inf ファイルに追加する必要があることがわかりました。これにより、ローカル ユーザーの問題が解決されました。
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)(A;;GRGW;;;BU)
この参照から: http://msdn.microsoft.com/en-us/library/windows/hardware/ff563667(v=vs.85).aspx
ドメイン ユーザーがアクセス権を持っていないことを発見したとき、この SDDL エントリに追加するだけでアクセスできるようになると思いましたが、うまくいかないようです。アクセスが拒否されます。すべてのユーザー(すべてのユーザー(WD)、認証されていないユーザーなど)にフルアクセスを許可するなどの極端なソリューションも試しましたが、これも機能せず、問題は別の場所にあると思います。つまり、他の何かがドメイン ユーザー アクセスを拒否しています。これは、ドライバー inf の SDDL エントリの許可よりも優先されます。
私の質問は、ドメイン ユーザー (またはすべてのユーザー) にドライバーに接続するためのアクセス権を与えるために必要なものが不足していることです。または、この問題に対する他の解決策 (サービスとしてドライバーに接続し、ユーザー プログラムからこのサービスにアクセスするなど) はありますか?