特定の外部ディスクをマシンに接続したときに読み取り専用としてマウントするツールの作成を検討しています。MacOSでは、これはディスクアービトレーションフレームワークでは非常に簡単でした。新しいドライブがマシンに接続されたときにOSから通知を送信し、マウントオプションを拒否、承認、または変更できるようにします(マウントを読み取り専用として強制するなど)。Windowsにこれに相当するものはありますか?
前もって感謝します。
特定の外部ディスクをマシンに接続したときに読み取り専用としてマウントするツールの作成を検討しています。MacOSでは、これはディスクアービトレーションフレームワークでは非常に簡単でした。新しいドライブがマシンに接続されたときにOSから通知を送信し、マウントオプションを拒否、承認、または変更できるようにします(マウントを読み取り専用として強制するなど)。Windowsにこれに相当するものはありますか?
前もって感謝します。
直接同等のものはありません。セキュリティ上の理由から、Windowsはユーザーモードコードにそれほど多くの制御を与えません(たとえば、ウイルスがウイルス対策プログラムを含む可能性のある疑わしいディスクのマウントを停止することを決定した場合を考えてみてください)。
このWM_DEVICECHANGE
メッセージは、ユーザーモードのアプリケーションに発生したことを通知しますが、かなり制限されています。特に、デバイスの削除を拒否することはできますが、デバイスの追加を制御することはできません。
より完全な情報に使用することもできますがRegisterDeviceNotification
、それがあなたが探しているコントロールを提供するとは思わない。
少なくとも私が知る限り、.NETはRegisterDeviceNotification
直接サポートしていないため、C#から使用する場合は、おそらくP/Invokeを介して使用する必要があります。
マウントされているデバイスとマウントされていないデバイスをより細かく制御するには、カーネルモードのコードを作成する必要がありますが、少なくとも現時点では、検討したいことを少し超えている可能性のあるものの音からです。