0

如何在没有 wmi 的情况下在 C 或 asm 中获取硬盘驱动器序列号(不是每次重新安装 Windows 时更改的卷号)(因为 wmi 需要管理员权限)。任何线索都会有所帮助,因为现在我在没有 wmi 的情况下在 C 的网络上找不到任何东西,在几天的搜索中......谢谢。编辑:对于 Windows 系统

4

2 回答 2

1

请尝试我的开源工具 DiskId32,它的源代码位于 http://www.winsim.com/diskid32/diskid32.html。我目前只有一个 Win32 版本。也许有一天我会添加一个Win64版本。

于 2013-02-28T21:58:22.177 回答
0

据我所知,硬盘驱动器序列号和有关硬盘驱动器的其他信息(如固件版本等)只能使用 SMART 获得,这需要块设备节点(/dev/sda 或 /dev/sdb)的特殊 ioctls普通用户通常无法使用。

我知道有一个名为 smartctl 的工具可以做到这一点:

sudo smartctl -i /dev/sda

也存在类似的工具(hdparm、lshw 等)。

至于试图在不成为特权用户的情况下找出这些信息,只有当它通过 /proc 或 /sys 公开时才有可能,我非常怀疑当前的 SATA 块设备驱动程序正在执行此操作。

于 2013-02-26T02:32:33.333 回答