盘符与设备名称转换 (C: <---> \Device\HarddiskVolume1)

本文通过一个C++示例程序展示了如何枚举计算机上从C盘到Z盘的所有磁盘符号,并使用Windows API函数QueryDosDevice获取每个磁盘符对应的设备路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <string.h>
#include <Windows.h>
#include <tchar.h>
#include <stdio.h>
int _tmain (int argc, _TCHAR * argv[])
{
         TCHAR drv = 0;
         TCHAR cDiskSymbol [] = _T( "C:");
         for(drv =_T( 'C'); drv <= _T( 'Z'); drv ++)
        {
                 cDiskSymbol[0] = drv ;
                {
                         TCHAR szBuf [MAX_PATH] = { 0 };
                         QueryDosDevice(cDiskSymbol , szBuf, MAX_PATH);
                         _tprintf(_T ("==== %s === %s  ===\n"), cDiskSymbol , szBuf);
                }
        }
         getchar();
         return 0;
}


--------------------------------------------------------------------------------------------

输出结果

==== C: === \Device\HarddiskVolume1  ===
==== D: === \Device\HarddiskVolume2  ===
==== E: === \Device\HarddiskVolume3  ===
==== F: === \Device\CdRom0  ===
==== G: === \Device\HarddiskVolume4  ===
==== H: ===   ===
==== I: === \Device\HarddiskVolume5  ===
==== J: ===   ===
==== K: ===   ===
==== L: ===   ===
==== M: ===   ===
==== N: ===   ===
==== O: ===   ===
==== P: ===   ===
==== Q: ===   ===
==== R: ===   ===
==== S: ===   ===
==== T: ===   ===
==== U: ===   ===
==== V: ===   ===
==== W: ===   ===
==== X: ===   ===
==== Y: ===   ===
==== Z: ===   ===
### VirtualBox 中关于 VERR_SUP_VP_NOT_SIGNED_WITH_BUILD_CERT 错误的解决方案 当在 Windows 系统中运行 VirtualBox 时,可能会遇到 `VERR_SUP_VP_NOT_SIGNED_WITH_BUILD_CERT` 或者类似的驱动程序签名错误。这类问题通常发生在启用了强制驱动程序签名验证的操作系统环境中[^1]。 #### 驱动程序签名背景 Windows 的安全机制要求某些硬件设备使用的驱动程序必须经过微软认证并带有有效的数字签名。如果某个驱动未通过此认证,则可能无法加载该驱动程序,从而引发诸如 `NtCreateFile VBoxDrvStub signature issue` 这样的错误消息。这尤其常见于开发环境或者测试环境下安装未经正式发布的软件版本。 #### 解决方案一:禁用驱动程序签名强制执行 (临时方法) 可以通过修改启动选项暂时绕过驱动程序签名检查: 1. **重启计算机** 并持续按住键盘上的 F8 键进入高级启动菜单。 2. 在高级启动选项列表中选择 **Disable driver signature enforcement** 来启动系统。 3. 启动完成后尝试重新打开 VirtualBox 应用程序查看是否正常工作[^1]。 注意这种方法仅适用于一次性操作;每次重启都需要重复以上过程除非采取更持久性的设置更改。 #### 解决方案二:更新或重装 VirtualBox 软件包 确保当前所使用的 VirtualBox 是最新稳定版。旧版本可能存在兼容性和安全性方面的问题导致此类异常行为发生。访问官方网站下载页面获取最新的发行版本,并按照官方文档指示完成升级流程[^1]。 对于已经损坏的安装文件可以考虑完全卸载后再全新部署新版本: ```bash # 使用命令行工具彻底清理残留项(以管理员身份运行PowerShell为例) Get-WmiObject Win32_Product | Where-Object {$_.Name -like "*VirtualBox*"} | ForEach-Object { $_.Uninstall() } ``` 之后从官网重新下载适合本机架构类型的安装包进行标准安装。 #### 解决方案三:调整 BIOS 设置允许非签署驱动加载 部分现代主板提供了名为 Secure Boot 功能,默认情况下它会阻止任何未经授权的第三方模块被操作系统识别和激活。为了使 VirtualBox 正常运作可做如下改动: 1. 开机自检画面按下指定按键(通常是 DEL、ESC 或 F2)进入BIOS界面; 2. 找到有关 Security Configuration 下面的 Secure Boot Option Use 参数将其设为 Disabled; 3. 保存所做的变更退出即可生效。 > 提醒: 修改前最好查阅具体机型手册了解风险提示以及恢复出厂默认配置的方法以防万一造成不可逆损害! --- ### 总结 针对 VirtualBox 出现的 `VERR_SUP_VP_NOT_SIGNED_WITH_BUILD_CERT` 和相关联的驱动签名问题,可通过三种主要途径加以处理——即短期规避策略(如关闭驱动签名校验)、长期优化手段(保持应用始终处于最新状态),还有就是深入硬件层面调节UEFI/BIOS参数设定。每种方式各有优劣需依据实际场景灵活选用最合适的办法解决问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值