gpt4 book ai didi

c# - 在 C# 中检查硬盘是否为 SSD 而不在硬盘上写入任何文件的最简单方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 08:26:00 29 4
gpt4 key购买 nike

如果硬盘是 SSD(固态硬盘),我需要在 C# 中检查,没有寻道惩罚?我用过:

    ManagementClass driveClass = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection drives = driveClass.GetInstances();

但它只提供属性中包含 SSD 的字符串,我不能依赖它吗?

我需要一种直接的方式来检查吗?

最佳答案

WMI 将无法轻松确定这一点。这里有一个解决方案基于 Windows 7 用于确定磁盘是否为 SSD 的相同算法(更多关于算法的信息:Windows 7 Enhancements for Solid-State Drives,第 8 页和此处:Windows 7 Disk Defragmenter User Interface Overview):Tell whether SSD or not in C#

引自 MSDN 博客:

Disk Defragmenter looks at the result of directly querying the device through the ATA IDENTIFY DEVICE command. Defragmenter issues IOCTL_ATA_PASS_THROUGH request and checks IDENTIFY_DEVICE_DATA structure. If the NomimalMediaRotationRate is set to 1, this disk is considered a SSD. The latest SSDs will respond to the command by setting word 217 (which is used for reporting the nominal media rotation rate to 1). The word 217 was introduced in 2007 in the ATA8-ACS specification.

关于c# - 在 C# 中检查硬盘是否为 SSD 而不在硬盘上写入任何文件的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13726522/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com