Possiedo un programma che esegue l'I/O grezzo su dischi in Windows.Prendere dischi online/offline
Tutto funziona correttamente se il disco di destinazione è in linea. Tuttavia, il comportamento predefinito in alcuni sistemi operativi Windows è di avere inizialmente nuovi dischi non in linea.
Ho difficoltà a trovare l'API corretta per eseguire questa operazione su Windows. L'equivalente da riga di comando sarebbe qualcosa come:
"select disk 2", "online disk" | diskpart
Tuttavia, devo essere in grado di farlo in codice. Ho controllato l'API Win32 DeviceIoControl (che ritengo sia giusto) ma non posso determinare quale codice di controllo utilizzare. Il fatto che non riesca a trovarlo mi fa pensare che potrebbe mancare una migliore API da usare.
perché non solo shell esegue la riga di comando da C#? –
Per una serie di motivi, ma è sufficiente dire che non è un'opzione. Se diskmgmt e diskpart possono farlo, c'è un modo. Voglio sapere in che modo. – Joe
@joe - diskmgmt e diskpart sono gui per i comandi integrati in Windows che potrebbero utilizzare l'API Win32. Considerando che sono stati in giro per un po 'questo è improbabile. Tutto quello che puoi fare attraverso quelle cose che puoi fare attraverso una linea di comando. –