c++ - 如何知道磁盘是基本磁盘还是动态磁盘?

标签 c++ c windows disk

在 Windows 中,是否可以通过 C/C++ 程序知道我们正在处理哪种磁盘?忘记gpt或mbr,如何知道它是基本的还是动态的?程序输入可以是驱动器号或任何与磁盘相关的信息,输出应该是动态的或基本的。 不需要直接的方法,即使是漫长的过程也没关系。 我在 msdn 中找不到太多内容。请帮帮我。

最佳答案

Windows 中有一种方法,但并不简单。

没有直接的 API 来确定磁盘是基本磁盘还是动态磁盘,但是所有动态磁盘都将具有 LDM 信息。

因此,如果驱动器上有一个包含 LDM 信息的分区,那么它将是动态磁盘。

带有 IOCTL_DISK_GET_DRIVE_LAYOUT_EX 控制代码的 DeviceIoControl() 方法可用于获取此信息。

Here is a post with a sample console application to do what you're asking for.

关于c++ - 如何知道磁盘是基本磁盘还是动态磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1984657/

相关文章:

c++ - 使用内存映射传递分配的内存

c++ - 用括号初始化时没有缩小的警告

c - 为什么 fgets 将光标移到下一行?

windows - 如何使用 VBScript 在已打开的 CMD 窗口中执行命令

c++ - 导入C++模块,如果失败: import Python version?

c++ - 错误在哪里,为什么这个程序是错误的?

C - 以不同排列打印星形图案

c - 空闲的指针未分配

c++ - 如何通过IUpdate接口(interface)判断windows更新级别

windows - 我将如何在 Powershell 中的每个循环中保存我的凭据