无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: wintoflash
打印 上一主题 下一主题

[原创] 开源的硬件信息工具nwinfo [20250904]

    [复制链接]
631#
 楼主| 发表于 2025-8-13 13:45:04 | 只看该作者
冰华 发表于 2025-8-13 12:18
可否加上网卡的MAC地址信息,以便一目了然

本来就有。
回复

使用道具 举报

632#
发表于 2025-8-14 12:53:12 | 只看该作者
非常感谢
回复

使用道具 举报

633#
发表于 2025-8-14 13:09:46 | 只看该作者
路过看看
回复

使用道具 举报

634#
发表于 2025-8-18 16:49:37 | 只看该作者
老大! RtlGetNtVersionNumbers 函数获取到的 NtBuildNumber 怎么转换成标准内部版本号(构建号)?

点评

取低16位就可以了 (&= 0xFF) [attachimg]563150[/attachimg] 用有公开文档的RtlGetVersion不好吗?  详情 回复 发表于 2025-8-18 19:55
回复

使用道具 举报

635#
 楼主| 发表于 2025-8-18 19:55:02 | 只看该作者
本帖最后由 wintoflash 于 2025-8-18 21:28 编辑
Bluebells 发表于 2025-8-18 16:49
老大! RtlGetNtVersionNumbers 函数获取到的 NtBuildNumber 怎么转换成标准内部版本号(构建号)?

取低16位就可以了 (&= 0xFFFF)
  1. int main(void)
  2. {
  3.         DWORD dwMajor, dwMinor, dwBuild;
  4.         RtlGetNtVersionNumbers(&dwMajor, &dwMinor, &dwBuild);
  5.         printf("NT %lu.%lu.%lu\n", dwMajor, dwMinor, dwBuild & 0xFFFF);
  6.         return 0;
  7. }
复制代码



用有公开文档的RtlGetVersion不好吗?
RtlGetVersion 需要 >= NT5.0
RtlGetNtVersionNumbers 需要 >= NT5.1

点评

OK! 据说这个函数获取得到的数据是最正确的, 而且它足够简单! 其它函数可能会受"兼容模式"影响而无法获取到当前系统的真正版本号  详情 回复 发表于 2025-8-18 20:03
回复

使用道具 举报

636#
发表于 2025-8-18 20:03:15 | 只看该作者
wintoflash 发表于 2025-8-18 19:55
取低16位就可以了 (&= 0xFF)

OK! 据说这个函数获取得到的数据是最正确的, 而且它足够简单!
其它函数可能会受"兼容模式"影响而无法获取到当前系统的真正版本号

点评

我在XP上安装One Core API之后换用不同兼容性,测试 RtlGetVersion 都是正确的。 受影响的应该是 GetVersionEx / GetVersion / VerifyVersionInfo。  详情 回复 发表于 2025-8-18 20:18
回复

使用道具 举报

637#
 楼主| 发表于 2025-8-18 20:18:12 | 只看该作者
Bluebells 发表于 2025-8-18 20:03
OK! 据说这个函数获取得到的数据是最正确的, 而且它足够简单!
其它函数可能会受"兼容模式"影响而无法获 ...

我在XP上安装One Core API之后换用不同兼容性,测试 RtlGetVersion 都是正确的。
受影响的应该是 GetVersionEx / GetVersion / VerifyVersionInfo。

点评

哦, 原来是这样啊  详情 回复 发表于 2025-8-18 20:39
回复

使用道具 举报

638#
发表于 2025-8-18 20:39:26 | 只看该作者
wintoflash 发表于 2025-8-18 20:18
我在XP上安装One Core API之后换用不同兼容性,测试 RtlGetVersion 都是正确的。
受影响的应该是 GetVer ...

哦, 原来是这样啊
回复

使用道具 举报

639#
发表于 2025-8-18 21:14:08 | 只看该作者
牛逼克拉斯。膜拜ing。。
回复

使用道具 举报

640#
发表于 2025-8-19 09:32:17 | 只看该作者
感谢分享!
回复

使用道具 举报

641#
发表于 2025-9-3 04:41:40 | 只看该作者
本帖最后由 2012jiashanni 于 2025-9-3 04:44 编辑

1、在英特尔酷睿Ultra 9 285K+华硕Z890 Pro上,GUI显示的处理器温度与aida64的接近,在运行GUI后,aida64显示处理器温度上升十几度,而命令行--CPU获取的温度则与GUI/aida64显示的温度相差较大
2、能否单独出一个命令行或api获取处理器 主板 显卡温度

点评

使用命令行程序获得瞬时信息(如CPU使用率,当前内存,温度,功耗等)都是不准确的,因为执行程序的瞬间,系统会做很多额外操作,导致CPU使用率会比通常更高。 CPU 温度分为 CoreTemp(核心温度,每个核  详情 回复 发表于 2025-9-3 10:09
回复

使用道具 举报

642#
 楼主| 发表于 2025-9-3 10:09:02 | 只看该作者
2012jiashanni 发表于 2025-9-3 04:41
1、在英特尔酷睿Ultra 9 285K+华硕Z890 Pro上,GUI显示的处理器温度与aida64的接近,在运行GUI后,aida64显 ...
而命令行--CPU获取的温度则与GUI/aida64显示的温度相差较大


使用命令行程序获得瞬时信息(如CPU使用率,当前内存,温度,功耗等)都是不准确的,因为执行程序的瞬间,系统会做很多额外操作,导致CPU使用率会比通常更高。

GUI显示的处理器温度与aida64的接近,在运行GUI后,aida64显示处理器温度上升十几度


CPU 温度分为 CoreTemp(核心温度,每个核心不一样)和 PackageTemp (封装温度)。AIDA64 读的是 CoreTemp,且可能与 gnwinfo 不在同一个核上。gnwinfo 优先读取 PackageTemp,不支持的情况下再读 CoreTemp。

能否单独出一个命令行或api获取处理器 主板 显卡温度


同上,使用命令行是不能获得较准确数据的。
目前nwinfo只支持获取CPU温度,主板温度需要实现各种SuperIO/EC的支持,目前还在研究。DDR5 DIMM 温度需要实现各种SMBus驱动,这个以前写得不好,所以废弃了正在重写。至于显卡,我只知道AMD集显的获取方法,其他的不知道怎么获取。
如果你不排斥使用.NET的话,可以使用 https://github.com/LibreHardwareMonitor/LibreHardwareMonitor。它支持各种设备的温度传感器,也提供了dll。
nwinfo 中只提供 libnw 静态库,可以初始化后每秒调用NWL_GetCpuMsr获取CPU温度电压功耗,我不知道非C系程序能不能用。

点评

请问下 --smbios 获取CPU插槽信息,在微星 B760M BOMBER WIFI (MS-7D90) +13代 英特尔(R) 酷睿(TM) i5-13600KF上,获取的信息是 U3E1 这准确吗  详情 回复 发表于 2025-9-3 16:57
回复

使用道具 举报

643#
发表于 2025-9-3 16:57:24 | 只看该作者
wintoflash 发表于 2025-9-3 10:09
使用命令行程序获得瞬时信息(如CPU使用率,当前内存,温度,功耗等)都是不准确的,因为执行程序的 ...

请问下 --smbios 获取CPU插槽信息,在微星 B760M BOMBER WIFI (MS-7D90) +13代 英特尔(R) 酷睿(TM) i5-13600KF上,获取的信息是 U3E1 这准确吗

点评

这个信息是主板提供的,属于字符串类型。 U3E1是笔记本用的插槽,所以主板提供的信息有误。 你可以用dmidecode -t 4看一下结果是否一样。 [attachimg]563891[/attachimg]  详情 回复 发表于 2025-9-3 19:18
回复

使用道具 举报

644#
发表于 2025-9-3 17:07:39 | 只看该作者
666
回复

使用道具 举报

645#
 楼主| 发表于 2025-9-3 19:18:59 | 只看该作者
本帖最后由 wintoflash 于 2025-9-3 19:20 编辑
2012jiashanni 发表于 2025-9-3 16:57
请问下 --smbios 获取CPU插槽信息,在微星 B760M BOMBER WIFI (MS-7D90) +13代 英特尔(R) 酷睿(TM) i5-13 ...

这个信息是主板提供的,属于字符串类型。
U3E1是笔记本用的插槽,所以主板提供的信息有误。
你可以用dmidecode -t 4看一下结果是否一样。

回复

使用道具 举报

646#
 楼主| 发表于 2025-9-4 11:16:12 | 只看该作者
20250904 更新 v1.4.3
  • 支持获取兆芯/VIA CPU 温度
  • 更新兆芯/Intel CPU 数据库
  • 重构 CPU MSR 读取功能,支持 Ryzen SMU
  • 改进 CPU 实时频率获取方式,默认不使用PDH



回复

使用道具 举报

647#
发表于 2025-9-4 12:16:05 | 只看该作者
多谢更新分享。
回复

使用道具 举报

648#
发表于 7 天前 | 只看该作者
感谢分享  
回复

使用道具 举报

649#
发表于 6 天前 | 只看该作者
谢谢大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-9-16 05:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表