c++ - 如何确定特定驱动器的类型?

标签 c++ windows winapi hardware getdrivetype

对于获取 CPU 的硬件信息,我觉得有些菜鸟,所以我提出了这个要求:硬盘驱动器、CD/DVD/蓝光阅读器、软盘,如果可能的话还有 USB。 我一直在 MSDN GetDriveType 上寻找但似乎我不擅长搜索或者我不明白。有什么想法吗?

最佳答案

我不确定您对链接到的文档有什么不了解...

该函数接受的唯一参数是您要获取其信息的驱动器的根目录(包括结尾的反斜杠)。该函数返回一个值,指示驱动器的类型。显示的图表给出了可能的返回值以及每个值的含义。

例如:

GetDriveType(_T("C:\\"))    // returns DRIVE_FIXED if C:\ is my hard drive
GetDriveType(_T("A:\\"))    // returns DRIVE_REMOVABLE if A:\ is my floppy drive
GetDriveType(_T("D:\\"))    // returns DRIVE_CDROM if D:\ is a CD-ROM drive
GetDriveType(_T("N:\\"))    // returns DRIVE_REMOTE if N:\ is a network drive

它还说如果你想判断一个驱动器是否是USB类型的驱动器,你需要调用SetupDiGetDeviceRegistryProperty function并指定 SPDRP_REMOVAL_POLICY 属性。

关于c++ - 如何确定特定驱动器的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5026119/

相关文章:

c++ - 如何在 Linux 中调用 "cpuid"?

c++ - 是否可以使用c/c++创建一个即使主线程退出也不退出的线程?

c - 编译为 GUI 的 Win32 GUI 应用程序需要使用 C 语言的控制台

c# - 如何使用 "user32.dll"函数读取消息框内容文本

winapi - GetFullPathName 是否适用于长于 MAX_PATH 的相对路径?

c++ - 显式设置图像压缩过滤器

c++ - C++ (visual studio) 中同一符号的多重定义

c++ - GetCurrentThreadId 返回不同的 threadId

c++ - 结构的原型(prototype)函数

c# - 以编程方式设置控制台窗口大小和位置