2017-01-19 24 views
0

最近、Windows 7でドライバを使用しています。これまでは、ユーザーモードアプリケーションと話すことができるドライバを作成しました。 しかし、ドライバの起動と停止に問題があります。 まず、ドライバをインストールして起動しても問題ありません。私はそれをやめ、それもうまく止まる。しかし、もう一度起動すると、エラー2のコード "指定されたファイルが見つかりません"でエラーが発生します。Windows 7ドライバ - 一度だけ実行すると再起動が必要

これを修正するには、ドライバをアンインストールしてから再起動する必要があります。再起動したら、もう一度インストールして一度実行すると、プロセスがすべて開始されます。

この問題を回避するにはどうすればよいですか?ドライバを再構築してテストするたびに再起動しなければならないのは本当にうれしいので、ビルドと展開のプロセスで何か間違っているのだろうかと思っていました。

ビルドプロセスに標準のDDKコマンドラインビルドを使用していますが、OSRドライバローダという名前のアプリケーションを使用してドライバをロードしています。しかし、私はSCコマンドラインを使ってそれをインストールすることもできます。

答えて

1

私はそれを解決しました。私が作成していたシンボリックリンクを削除し、Deviceインスタンスを削除する必要がありました。ここで

がONUNLOAD機能にコードIアウトです:フルでそう

// this deletes the symbolic link for the driver 
IoDeleteSymbolicLink(&deviceLinkUnicodeString); 

// this deletes the device 
IoDeleteDevice(g_RootkitDevice); 

、私は私のONUNLOAD機能としてこれを持っているために必要な:

VOID OnUnload(IN PDRIVER_OBJECT DriverObject) 
{ 
    // this deletes the symbolic link for the driver 
    IoDeleteSymbolicLink(&deviceLinkUnicodeString); 

    // this deletes the device 
    IoDeleteDevice(g_RootkitDevice); 
} 
関連する問題