0

WPD (ポータブル デバイス) クラス用の KMDF フィルター ドライバーを作成しています ( http://www.osronline.com/article.cfm?article=446の例に基づく)。ドライバーの目的は、デバイスへのブロック書き込み要求です。
WPD クラスの UpperFilters のレジストリに設定し、Samsung Galaxy S3 をプラグインすると、デバイスに送信された WPD IOCTL をキャッチできました (現在、ドライバーは要求を次のドライバーに転送するだけです)。ここまでは順調ですね。
次に、Samsung Kies をインストールしてフィルター ドライバーがまだ機能するかどうかを確認しましたが、デバイスを接続すると、Windows が「Samsung Mobile MTP Device」をインストールしようとして失敗しました。何度か試しました(ドライバーがまだインストールされていることを確認しましたが、これはドライバーが見つからないという問題ではありません)。ドライバーを UpperFilters から削除すると、デバイスがインストールされ、機能していました。フィルターを元に戻すと、デバイスが起動しませんでした (コード 10)。Windbg を使用すると、ドライバーが起動し、デバイスが追加され、ドライバーがアンロードされることがわかります (途中で何が起こるかわかりません...)
。それを下位フィルターとして配置しようとすると、再び正常に機能しました。
ネットを検索しているときに、WDK ではなく WDM を使用している場合にも発生することがわかりました。

この場合、UpperFilter を配置するとデバイスの起動に失敗するのはなぜですか?
それを解決する方法はありますか?

4

2 に答える 2

1

Oren、コードをテストしているマシンは何ですか? あなたのコードが実際に何をするのか、一般的な用語で説明できますか?

プロジェクトのベースラインとして同じサンプルを使用していますが、Win7/32 を実行している VMWare で、Kies がインストールされている GS3 上の上位フィルター ドライバーとして正常に動作しています。

最も重要なのは、ドライバーを上位フィルターとしてどのクラスに追加したかです。

HKLM\XxXControlSet\Control\Class{EEC5AD98-8080-425F-922A-DABF3DE3F69A} に私のものを追加しましたが、GS3 上でスムーズに動作しています。

サンプルのインストーラー アプリを使用して、ドライバー/サービスをインストールしましたか?

頑張れウリエル

于 2013-01-30T04:55:06.163 に答える
0

これが Samsung に固有のものであるかどうかを確認するために、他のデバイスを試してみましたか?

また、これは Samsung Kies ソフトウェアによって導入されたもののように見えます。おそらく、別のフィルター ドライバーをインストールしているのでしょう。これを確認するには、%windir%\inf\setupapi.dev.log を調べて、Kies または Samsung に関連するドライバー エントリがあるかどうかを確認します。

于 2013-01-17T00:39:18.267 に答える