SATA驱动器的硬盘ID

Posted

技术标签:

【中文标题】SATA驱动器的硬盘ID【英文标题】:Hard disk id of SATA drives 【发布时间】:2012-02-08 12:03:50 【问题描述】:

我正在使用我的软件的硬盘 ID 来检查真实用户是否在使用该软件。 对于 IDE 类型的硬盘,我使用 GetIdeSerialNumber 过程获取 id。

但如果是 SATA 驱动器,它会将 id 设为空白。

然后在 SATA 驱动器的情况下,我使用卷 ID 作为唯一 ID。

但是当系统格式化时volume id会改变

现在我想知道我正在使用哪个硬盘,以及如何在delphi 7中获取?

编辑:根据客户规格的软件需要锁定到硬件,相关的ID是

    MAC 地址 HD id(SATA 或 IDE) 控制器ID(这是驱动软件开发的硬件的电机,ID是唯一的)

客户端已经接受,如果系统改变,认证层将失败, 但我们已获准将软件锁定到硬件..

所以我想知道如何获取 SATA ID

【问题讨论】:

啊。请不要将软件安装绑定到特定的硬盘驱动器。该软件可以安装在 RAID 卷上。你将如何处理? 或者当驱动器发生故障并且必须更换时,然后从备份中恢复所有内容? in Delphi7, How can I retrieve hard disk unique serial number? 的可能重复项 @all,已通知客户,如果我们更改 HD 或使用其他 PC,则会产生问题,但他们希望将软件锁定到该软件所在的系统已安装。 顺便说一句,请确保您使用多个标识符。硬盘序列号本身是不够的,往往不是唯一的。我看到序列号是 '0000...0000' 。 【参考方案1】:

WMI 是您检索硬盘序列号的最佳选择,但不支持旧版本的 Windows(95 和 98)。

我建议您使用volume serial number。它与硬件无关。它将与 Windows 的安装而非物理硬盘驱动器相关联。这很有意义,应该足够好。

请注意,如果用户重新安装 Windows 或其他一些恢复情况,则必须重新激活,因此您需要留出一些余地。这是最难实现的部分。当然,这就是使用多个 ID 的原因。您允许更改一个或多个,而不是全部更改,而无需重新激活。

【讨论】:

以上是关于SATA驱动器的硬盘ID的主要内容,如果未能解决你的问题,请参考以下文章

扩展卡如何接sas硬盘

ESXI6如何添加多喝SATA控制器驱动?

如何以编程方式检测 SuSE Linux 中的 sata 驱动器拔出?

sata固态硬盘装虚拟机

选盘秘籍:用户如何选择SSD/SATA/SAS?

SATA接口是什么