【发布时间】:2011-11-23 19:27:20
【问题描述】:
我有一个程序在 Windows 中对磁盘进行原始 IO。
如果目标磁盘在线,一切正常。但是,某些 Windows 操作系统中的默认行为是让新磁盘最初处于脱机状态。
我很难在 Windows 上找到正确的 API 来执行此操作。等效的命令行类似于:
"select disk 2", "online disk" | diskpart
但是我需要能够在代码中执行此操作。我查看了 DeviceIoControl Win32 API(我认为这是正确的),但无法确定要使用哪个控制代码。我找不到它的事实让我觉得我可能缺少更好的 API 来使用。
【问题讨论】:
-
为什么不直接从 C# shell 执行命令行?
-
出于多种原因,但足以说明这不是一种选择。如果 diskmgmt 和 diskpart 可以做到,那就有办法了。我想知道那是什么。
-
@joe - diskmgmt 和 diskpart 是 Windows 内置命令的 gui,它们可能使用 Win32 API。考虑到他们已经存在了一段时间,那不太可能。您可以通过这些 gui 执行的所有操作都可以通过命令行执行。
-
@Ramhound:我明白:有一个 Win32 API somewhere 可以让你做到这一点。我找不到它,所以我的问题。
-
找不到怎么知道它存在?
标签: c# winapi deviceiocontrol