使用 IOCTL_DISK_SET_DRIVE_LAYOUT 创建分区后,如何在这个新创建的分区中创建新卷?

2024-04-23

我正在尝试创建一个新分区,对其进行格式化并通过 Python ctypes 为其分配一个新的驱动器号,使用IOCTL_SET_DRIVE_LAYOUT http://msdn.microsoft.com/en-us/library/windows/desktop/aa365188%28v=vs.85%29.aspx。我最初的编码尝试是使用这个SO页面完成的:分配更多内存时 Python ctypes 结构被覆盖 https://stackoverflow.com/questions/6669074/python-ctypes-structure-being-overwritten-when-allocating-more-memory。你可以看到定义class DeviceIoControl there.

我使用IOCTL_DISK_CREATE_DISK成功初始化磁盘,并使用IOCTL_DISK_SET_DRIVE_LAYOUT创建一个具有一定大小的新分区,以下是磁盘管理中的结果:

..但是,如何在磁盘新创建的分区中创建新卷?

我尝试使用格式方法Win32_卷 http://msdn.microsoft.com/en-us/library/aa394515%28v=vs.85%29.aspx,但 Win32_Volume 只返回附加到现有分区的所有 n 个现有驱动器号,而在我的情况下,该驱动器号尚未分配。

有什么建议吗?


长话短说(真的是一个长话短说!),结果,我错误地选错了分区类型 http://msdn.microsoft.com/en-us/library/windows/desktop/aa363990%28v=vs.85%29.aspx。以前我使用PARTITION_EXTENDED 0x05,当我尝试另一个值:PARTITION_IFS 0x07后,Windows直接要求我格式化分区。为了避免这种情况,按照要求here https://stackoverflow.com/questions/10457254/how-to-create-a-partition-without-windows-assigning-a-drive-letter,我们必须等待几秒钟才能获得新的驱动器盘符,然后调用kernel32.GetLogicalDriveStringsA http://msdn.microsoft.com/en-us/library/windows/desktop/aa364975%28v=vs.85%29.aspx查询新驱动器(您必须在创建分区之前调用此函数,比较两者,您将获得新驱动器号)。由于盘符可用,我们可以轻松调用Win32_卷格式 http://msdn.microsoft.com/en-us/library/aa390432%28v=vs.85%29.aspx格式化驱动器的方法。

这是低级 kernel32 调用 + WMI 的组合,为该问题带来了成功的解决方案。如果所有功能都可以在 WMI 中使用,那对我们来说会更容易。但是,是的,这不是我们在这里遇到的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 IOCTL_DISK_SET_DRIVE_LAYOUT 创建分区后,如何在这个新创建的分区中创建新卷? 的相关文章

随机推荐

  • Prolog 同构图

    这里尝试解决同构图问题 作业信息 判断2个无向图是否同构 没有孤立的顶点 顶点数小于30 图的边作为谓词给出 即 e 1 2 f 1 2 我正在尝试使用以下方法 对于每对边 即图 1 和图 2 中的每条边 Try to bind the v
  • PHP 标头重定向 301 - 有何影响?

    I have example com 如果用户登录 它应该自动加载example com option X其中 X 是用户的预定义选择 所以 我在顶部这样做index php header Location option X 但是 如果用户
  • 将字符串转换为带时区的日期

    我有日期字符串2017 01 03T10 45 00 000 02 00我需要将其转移到类似的东西2017 01 03 10 45 00 0200 let formatter DateFormatter formatter dateForm
  • 查找 AAR 依赖项

    我正在使用编译成 AAR 文件的第 3 方 SDK 我想使用此 AAR 为 Xamarin 创建绑定库 如何找到此 AAR 使用的依赖项 如果我使用 Java 反编译器 我可以看到许多类都有针对第 3 方 SDK 的导入语句 因此我 有时
  • ruby on Rails 3.1 将 .swf 移动到资产管道?

    是否可以将 SWF 文件移动到资源管道中 如果可以 如何做到这一点 我建议将它们放在一个名为的文件夹中app assets flash 将此文件夹添加到您的资源路径中 config assets paths lt lt Rails root
  • 贪心聚类算法速度提升

    我正在尝试在 python 中实现一个非常简单的贪婪聚类算法 但很难优化它的速度 该算法将采用距离矩阵 找到具有最多小于预定距离截止值的分量的列 并将行索引 具有小于截止值的分量 存储为簇的成员 簇的质心是列索引 然后 从距离矩阵中删除每个
  • 将 StarUML 图转换为 Visio 绘图

    我有一个使用 Star Uml 创建的类图 但现在的要求是将其移植到 MS Visio 是否可以将 uml 移植到具有可用 xml 信息的 vsd 提前致谢 导出为 Windows 图元文件 WMF 和增强型 Windows 图元文件 EM
  • 使用 VB.NET 循环遍历 XML 文件

    我在处理 XMl 文件时遇到问题 我想循环 使用 VB NET 该文件并提取 OrderID 元素的所有值
  • 在 Corda 中,哪些数据会发送到非验证公证服务?

    这个问题经常出现在对话中 当 Corda 交易被发送到非验证公证服务进行最终确定时 公证服务可以看到并推断出关于世界的什么 在将交易发送给非验证公证人之前 会按如下方式进行过滤 stx buildFilteredTransaction Pr
  • 如何组合两个表达式: result = exp1(exp2);

    作为主题 在这种情况下如何将两个表达式组合成一个表达式 Expression
  • 双向绑定无法解析 java.lang.String 属性的 setter

    我正在研究 Android Studio 2 1 AFIK 中引入的数据绑定 API 的双向绑定 我收到这个有趣的错误 错误 任务 app compileDebugJavaWithJavac 执行失败 gt java lang Runtim
  • tkinter 和 pygame 不想在一个窗口中工作[重复]

    这个问题在这里已经有答案了 我想创建一个应用程序 并希望使用 tkinter 作为 GUI 并使用 Pyglet 和 Pygame 等游戏库之一 我没有找到任何有关将 pyglet 嵌入 tkinter 的信息 但找到了一些使用 tkint
  • 如何避免权限被拒绝 (publickey) SSH 密钥 (Windows)

    我想通过 SSH 连接我的 ec2 但我收到这个错误 WARNING UNPROTECTED PRIVATE KEY FILE Permissions for F Config first1 pem are too open It is r
  • Visual Studio 2010 QuickWatch 窗口不可见

    当我在 VS2010 中突出显示一个变量并右键单击以选择 QuickWatch 时 QuickWatch 窗口不会出现 VS 的行为就像模态窗口打开一样 让我无法执行任何操作 直到我点击 取消 一位同事建议我转到 窗口 菜单并选择 重置 W
  • SqlException - 未找到网络路径

    我正在运行我的代码并收到此错误 但是这是什么意思 找不到网络路径说明 未处理的异常 发生在当前 Web 请求执行期间 请 查看堆栈跟踪以获取有关错误及其位置的更多信息 它起源于代码 异常详细信息 System ComponentModel
  • 在 TypeScript 中找不到名称 jsPdf

    我的任务是使用 JavaScript 将数据打印到 pdf 文件中 所以我选择 jsPdf 来完成我的任务并且也成功了 我的任务是将打印任务转换为 TypeScript 我面临一个新问题Can t find name jsPdf in Ty
  • 使用 python 和 pandas 将 OHLC 股票数据转换为不同的时间范围

    有人可以指出我关于 OHLC 数据时间范围转换的正确方向吗Pandas http pandas pydata org 我想做的是构建一个数据帧 其中包含较高时间范围的数据 给定较低时间范围的数据 例如 假设我有以下一分钟 M1 数据 Ope
  • 我应该返回什么来响应在 blueimp/jquery.file-upload-ui 的删除事件上显示错误消息

    我正在使用 jQuery 文件上传 jQuery UI 插件 8 7 2https github com blueimp jQuery File Upload https github com blueimp jQuery File Upl
  • `base` 标签导致 iframe 在 Internet Explorer 中作为新窗口打开

    我有一个问题base tag http www w3schools com tags tag base asp仅影响 Internet Explorer 版本 8 9 和 10 以下代码用于在 iframe 中打开动态内容 并且它在 Chr
  • 使用 IOCTL_DISK_SET_DRIVE_LAYOUT 创建分区后,如何在这个新创建的分区中创建新卷?

    我正在尝试创建一个新分区 对其进行格式化并通过 Python ctypes 为其分配一个新的驱动器号 使用IOCTL SET DRIVE LAYOUT http msdn microsoft com en us library window