Mam program, który wykonuje surowego IO na dyskach w systemie Windows.Take dyski online/offline
Wszystko działa dobrze, jeśli docelowy dysk jest w trybie online. Jednak domyślnym zachowaniem w niektórych systemach Windows jest początkowo posiadanie dysków.
Mam trudności ze znalezieniem odpowiedniego interfejsu API, aby to zrobić w systemie Windows. Odpowiednikiem wiersza poleceń byłoby coś takiego:
"select disk 2", "online disk" | diskpart
Jednak muszę mieć możliwość wykonywania tego w kodzie. Przejrzałem interfejs API DeviceIoControl Win32 (który, jak sądzę, jest prawidłowy), ale nie mogę określić, którego kodu kontrolnego użyć. Fakt, że nie mogę go znaleźć, sprawia, że brakuje mi lepszego interfejsu API.
dlaczego nie po prostu powłoka wykonuje polecenie z C#? –
Z wielu powodów, ale wystarczy powiedzieć, że nie jest to opcja. Jeśli diskmgmt i diskpart mogą to zrobić, jest pewien sposób. Chcę wiedzieć, co to jest. – Joe
@joe - diskmgmt i diskpart są gui do poleceń wbudowanych w Windows mogą używać Win32 API. Biorąc pod uwagę, że były one przez jakiś czas, jest to mało prawdopodobne. Wszystko, co możesz zrobić poprzez te gui, możesz zrobić za pomocą wiersza poleceń. –