1

シリアル通信プロトコルをリバースエンジニアリングしています。ビットをデコードした後、そのためのインターフェイスを作成することになっています。私の選択は、出入りするデータをインターセプトするためのフィルタードライバーを作成するか、基本的なシリアル直接通信を行うかです。他の方法とは対照的に、一方の方法を使用することに勝る利点はありますか?

4

1 に答える 1

1

まあ、大きな違いがあります:

  • フィルタドライバをデバッグするには、カーネルデバッガが必要です。実行中のデバッグセッションを停止し、コードを編集+ビルドするオプションは限られており、通常はオペレーティングシステムの再起動が必要です。ユーザーモードコードのデバッグは簡単です
  • フィルタドライバのバグにより、オペレーティングシステムがクラッシュします。ユーザーモードコードのバグは、プログラムをクラッシュさせるだけです
  • フィルタドライバを展開するには、通常、インストーラが必要です。ユーザーモードコードは、ビルド時にプログラムにリンクされるだけです。

これらはかなり重大な欠点です。私が考えることができるフィルタードライバーの唯一の利点は、コードがユーザーモードプログラマーに完全に見えないことです。ただし、これも責任です。このプログラマーが、フィルタードライバーの誤動作時に診断情報を提供するためにできることはほとんどありません。

于 2013-01-13T11:40:25.997 に答える