私は、Windows内のディスクにraw IOを実行しているプログラムを持っています。ディスクをオンライン/オフラインにする
対象ディスクがオンラインの場合、すべて正常に動作します。ただし、一部のWindows OSでは、新しいディスクを最初にオフラインにすることがデフォルトの動作です。
Windowsでこれを行うための正しいAPIを見つけるのに苦労しています。同等のコマンドラインは、次のようなものになります。
"select disk 2", "online disk" | diskpart
しかし、私はコードでこれを行うことができる必要があります。私はDeviceIoControl Win32 API(これは正しいと思いますが)を調べましたが、使用するコントロールコードを判断することはできません。私がそれを見つけることができないという事実は、私が使用するより良いAPIがないかもしれないと思うようになります。
なぜシェルだけでC#からコマンドラインを実行するのですか? –
いくつかの理由がありますが、それはオプションではないと言うだけで十分です。 diskmgmtとdiskpartがそれを行うことができるなら、方法があります。私はその方法が何であるか知りたい。 – Joe
@joe - diskmgmtとdiskpartは、Win32 APIを使用する可能性のあるWindowsに組み込まれたコマンドです。彼らはしばらくその周りにあったと考えていることはありそうもない。あなたがコマンドラインで行うことができるそれらのguisを通して行うことができるすべて。 –