如何通过程序删除磁盘的设备节点
Posted
技术标签:
【中文标题】如何通过程序删除磁盘的设备节点【英文标题】:How to delete a device node of disk by program 【发布时间】:2019-08-20 05:13:41 【问题描述】:我正在开发从 Windows 系统中删除指定磁盘的 Windows 程序。 “移除”的动作并不意味着“物理地”拔掉硬盘。 这意味着程序从操作系统管理的设备节点中删除了一个磁盘。 我所说的“磁盘”是由 disk.sys(PhysicalDrive0, PhysicalDrive1..) 管理的磁盘
顺便说一下,在普通的Linux系统上,可以通过如下命令来完成。
echo 1 > /sys/block/sde/device/delete
我想通过程序在 Windows 上做同样的事情。
一旦我尝试通过在 DeviceManager 中删除磁盘来做到这一点。 实际上这种方法可以删除USB磁盘,但这种方法无法在不重新启动操作系统的情况下删除SATA磁盘。 我想在不重新启动的情况下执行此操作。
有什么办法吗?
【问题讨论】:
【参考方案1】:我相信WMI
可能会对您有所帮助:
wmic logicaldisk delete (check with /? how to use it)
为了知道你现在有哪些,首先启动以下:
wmic logicaldisk list brief
【讨论】:
感谢您的帮助!我不知道。但是wmic logicaldisk
似乎管理卷(C:,D:) 和wmic diskdrive
似乎对应于我说的“磁盘”。所以我尝试执行这个命令。 wmic diskdrive where DeviceID="\\\\.\\PHYSICALDRIVE2" delete
但是没有正常完成(发生错误) 虽然在我的环境中错误信息不是英文,但表示该操作不被提供者支持。
一般WMIC
命令从命令提示符启动。您是否以管理员身份启动了命令提示符?以上是关于如何通过程序删除磁盘的设备节点的主要内容,如果未能解决你的问题,请参考以下文章