1

NDIS 6.x LWF カーネル ドライバーを開発し、NSIS 2.46 を使用してインストーラーにラップしました。インストール後、Windows が という名前のシステム復元ポイントを自動的に作成することがわかりましたDevice Driver Package Install: Nmap Project Network Service

しかし、実はこのWindowsが作成した復元ポイントが良くないことが判明。その復元ポイントにロールバックしようとしましたが、ドライバー.sysファイルやシステムへのその他の変更 ( Windows Loopback Adapter.

私のインストーラーは実際にドライバーをインストールする前にいくつかの変更を行いますが、Windows はドライバーがインストールされているときにのみスナップショットを取得するため、これは理解できます。そのため、ドライバーのインストール前の変更は含まれていません。

SysRestoreそこで、インストーラーのすべての実際のインストール手順の前に、(NSIS が提供するものを使用して) 自分で復元ポイントを作成することにしました。

また、Windows を無効にして、ドライバーの復元ポイントを自動的に作成したいと考えています。これを行うには何が最善ですか?ありがとう!

4

3 に答える 3

0

それが最善の方法かどうかはわかりませんが、いつでもシステムの復元サービスを停止できます。私の意見では、これはデリケートな問題であり、おそらくユーザーがドライバー インストーラーに期待するよりも大きな介入です。

いずれにせよ、事前にこれをユーザーに伝え、完了時にサービスを (再) 開始する必要があります。

Section
    # Stop the service
    nsExec::Exec 'net.exe STOP "srservice"'  

    # Install kernel driver
SectionEnd    

# Restore original setting
Function startSysRestore
    nsExec::Exec 'net.exe START "srservice"'  
FunctionEnd    

# Things go right
Function .onInstSuccess
    Call startSysRestore
FunctionEnd    

# Things might go wrong
Function .onUserAbort
    Call startSysRestore
FunctionEnd    

Function .onInstFailed
    Call startSysRestore
FunctionEnd

編集:この回答の以前のバージョンでは、ServiceRestore サービスを無効にする方法について説明しました

于 2016-03-02T11:19:47.247 に答える
0

同じ機能を実行する WSR の代替手段がいくつかあります (つまり、Comodo Time Machine、Shadow Defender、RollbackRx など)。それらを使用してスナップショットを作成する方がよい場合があります。

于 2016-03-09T13:22:16.853 に答える