Windows ドライバーをアンロードするにはどうすればいいですか?

Windows ドライバーをアンロードするにはどうすればいいですか?

私はコマンドラインソリューションを探していますWindows ドライバーを停止する手動でインストールしたものです。

インストール手順は次のとおりです。

sc create MyDrv type= kernel start= demand binPath= "C:\MyDrv.sys"
net start MyDrv

ドライバー出力に関する情報を照会します。

C:\>sc query MyDrv

SERVICE_NAME: MyDrv
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 4  RUNNING
                                (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

このNOT_STOPPABLE旗は、私が達成しようとしていることが不可能であることを示す大きな指標のように思えます。しかしこのドライバは、PC からアプリケーションをアンインストールすると停止して削除されるアプリケーションに属しています。この悪党を駆除する方法はありますか? (残念ながら、ドライバのソース コードはありません)。

不思議に思われるかもしれませんが、私は試しました:

C:\>net stop MyDrv
The requested pause or stop is not valid for this service.
More help is available by typing NET HELPMSG 2191.

答え1


それがサービスではなく実際のドライバーであり、
デバイス
マネージャーで問題なく無効/有効にできる場合
は、
おそらく「Devcon」を使用してバッチとコマンド プロンプトで無効と有効にすることができます。
それ以外の
場合、それがサービスである場合は、サービスのプロパティに表示される実際のサービス名を知っておくとよいでしょう。ドライバーを含むサービス
の場合
、サービスを無効にするよりもドライバーを無効にする方が簡単な場合があります。

コードで混乱してしまい、申し訳ありません :-) これは本当に厄介なもののようです。レジストリで何か別のものを設定するか、ここでの私の投稿よりもはるかによく理解する必要があります。64
ビットに適した devcon を見つけるのは簡単ではありません。OS またはビットに不適切なバージョンはまったく機能しません。そのため、devcon を試す場合は、正確にシステムに適したものを使用する必要がありますが、これは明らかにされていません。

それは本当に Mydrv と呼ばれていますか? 実際の名前や製品名がわかれば役に立つかもしれませんが、回答を得るためにドライバーを難読化するのは、ここではおそらく役に立ちません。

答え2

それをインストールしたアプリは、おそらくドライバー内の特別な関数を呼び出すか、慎重に作成されたメッセージを送信して、正常にシャットダウンするように指示します。

答え3

ラインを使用する

devcon remove full_drivername_and_path

例えば

devcon remove root\kmdfHelloWorld

私の場合はうまくいきました(devcon installBTWを使用しました)。

関連情報