【问题标题】:Windows C/C++ Drive Init/Partition/FormatWindows C/C++ 驱动器初始化/分区/格式化
【发布时间】:2011-04-22 05:06:47
【问题描述】:

我正在尝试为 Windows XP 64 位构建一个应用程序,该应用程序能够检测系统中特定型号的驱动器,如果它们未初始化和格式化,则执行这些过程。

我也希望能够查询和设置分区信息(包括卷标)。

我已经开始使用 DeviceIoControl 整理代码,但我无法弄清楚如何使用该方法设置/获取分区/卷标或格式化驱动器,我已经让 SMART 访问正常工作。

还有其他更容易使用的方法吗?

扎克

【问题讨论】:

  • 这些都不能完全涵盖我想要实现的目标。 WMI 只允许查询信息,不允许创建分区和其他我想做的事情。我试图不走包装命令行应用程序的道路,我希望将所有东西都作为 C/C++。我想如果我必须走那条路线,“diskpart”可能是一个选择。

标签: c++ windows format disk disk-smart


【解决方案1】:

听起来您正在寻找Disk Management Control Codes

【讨论】:

  • 我最终将 WMI 和 DeviceIoControl 与磁盘管理控制代码结合使用。这看起来能够做我想做的一切,除了目前我在 C++ 中使用 Win32_Volume Format 方法时遇到一些问题,我经常收到 WBEM_E_INVALID_METHOD_PARAMETERS 错误。
  • 嗨,@ZacShenker,你能格式化使用 IOCTL_DISK_SET_DRIVE_LAYOUT 创建的新分区吗?我想不出格式化新分区的方法。
【解决方案2】:

如果我这样做,我只会使用我自己的代码来检测事物。我会改为通过diskpart 和/或format 命令进行分区和格式化。 diskpart 接受文件参数和要执行的脚本。

【讨论】:

    猜你喜欢
    • 2011-12-25
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    相关资源
    最近更新 更多