4

LCD バックライトの明るさを変更する必要がある UMDF ドライバーを作成しています。

次のコード行はコンソール アプリで機能し、ハンドルをデバイスに正常に返します。

HANDLE hDevice = CreateFile(L"\\\\.\\LCD", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);

ただし、ドライバーでまったく同じコードを使用すると、INVALID_HANDLE_VALUE が返され、GetLastError() は「アクセスが拒否されました」というコード 5 を返します。

ドライバーは、標準の WDKRemoteUser プロファイルを使用して、x64 Windows 7 コンピューターでリモートでデバッグされています。

問題が何であるかを知っている人はいますか?アクセス許可を設定する必要がありますか? もしそうなら、どのように設定しますか?

4

1 に答える 1

2

ドライバー クライアントを偽装する必要があるようです。

通常、UMDF ドライバーは LocalService アカウントで実行され、保護されたファイルやその他の保護されたリソースなど、ユーザーの資格情報を必要とするファイルやリソースにはアクセスできません。UMDF ドライバーは通常、クライアント アプリケーションとデバイスの間を流れるコマンドとデータを操作します。したがって、ほとんどの UMDF ドライバーは、保護されたリソースにアクセスしません。

フレームワークは、ドライバーがドライバーのクライアントを偽装し、保護されたリソースへのクライアントのアクセス権を取得できるようにする偽装機能を提供します。

于 2012-10-25T09:41:33.080 に答える