无忧启动论坛

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

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

    [复制链接]
跳转到指定楼层
#
发表于 2021-12-3 14:34:52 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 wintoflash 于 2025-9-4 11:12 编辑

下载:v1.4.3 nwinfo.zip (2.29 MB, 下载次数: 2820)
历史版本:
    v0.1.0   nwinfo_v0.1.0.zip (789.03 KB, 下载次数: 95)
    v0.2.0   nwinfo_v0.2.0.zip (799 KB, 下载次数: 54)
    v0.3.0   nwinfo_v0.3.0.zip (1.16 MB, 下载次数: 60)
    v0.4.6   nwinfo_v0.4.6.zip (1.2 MB, 下载次数: 50)
    v0.5.6   nwinfo_v0.5.6.zip (1.04 MB, 下载次数: 49)
    v0.7.1   nwinfo_v0.7.1.zip (1.66 MB, 下载次数: 68)
    v0.8.11 nwinfo_v0.8.11.zip (1.72 MB, 下载次数: 106)
    v0.9.7   nwinfo_v0.9.7.zip (1.65 MB, 下载次数: 73)
    v1.1.2   nwinfo_v1.1.2.zip (2.24 MB, 下载次数: 28)
    v1.2.0   nwinfo_v1.2.0.zip (2.23 MB, 下载次数: 14)
    v1.3.0   nwinfo_v1.3.0.zip (2.12 MB, 下载次数: 4)
主页:https://a1ive.github.io/nwinfo/
源码:https://github.com/a1ive/nwinfo
需要管理员权限。
警告:
本软件中使用了易受攻击的驱动 HwRwDrv,使用它可能会造成以下风险:
1. 被杀毒软件报毒
2. 被联机游戏反作弊功能检测,导致账号被封
如有顾虑,可以替换为自行修改编译的 Winring0 驱动。(http://openlibsys.org/)

图形界面:

命令行用法:
  1. .\nwinfo.exe OPTIONS
  2. OPTIONS:
  3.   --format=FORMAT  指定输出格式,支持 'YAML' (默认),'JSON','LUA','TREE' 和 'HTML'。
  4.   --output=FILE    指定输出文件名。
  5.   --cp=CODEPAGE    指定输出文本编码 'ANSI' 或 'UTF8'。
  6.   --human          以易读形式显示数字 (自动转换KB/MB/GB等单位)。
  7.   --bin=FORMAT 指定二进制输出格式(SMBIOS/ACPI)。默认为不输出,支持 'HEX' 和 'BASE64'。
  8.   --debug          显示调试信息。
  9.   --hide-sensitive 隐藏敏感信息 (MAC 及 S/N)。
  10.   --sys            打印系统信息
  11.   --cpu            打印 CPU 信息。
  12.   --net[=FLAG,...] 打印网络信息。
  13.     GUID           指定网络接口的 GUID,如 '{B16B00B5-CAFE-BEEF-DEAD-001453AD0529}'。
  14.     FLAGS:
  15.       ACTIVE       过滤活动的网络。
  16.       PHYS         排除虚拟网络接口。
  17.       ETH/WLAN     过滤有线/无线网络接口。
  18.       IPV4/IPV6    过滤 IPv4/v6 地址。
  19.   --acpi[=SGN]     打印 ACPI 信息。
  20.     SGN            指定 ACPI 表的签名,如 'FACP'。
  21.   --smbios[=TYPE]  打印 SMBIOS 信息。
  22.     TYPE           指定 SMBIOS 表的类型,如 '2' (主板信息)。
  23.   --disk[=FLAG,..] 打印磁盘信息。
  24.     PATH           指定磁盘路径,如 '\\.\PhysicalDrive0' 或 '\\.\CdRom0'。
  25.     FLAGS:
  26.       NO-SMART     不显示 SMART 信息。
  27.       PHYS         排除虚拟磁盘。
  28.       CD/HD        过滤光盘/硬盘。
  29.       NVME/SATA/SCSI/SAS/USB
  30.                    过滤 NVME/SATA/SCSI/SAS/USB 设备。
  31.   --smart=FLAG,... 指定 SMART 选项。
  32.                    默认选项: 'WMI', 'ATA', 'NVIDIA', 'MARVELL', 'SAT', 'SUNPLUS',  'IODATA',
  33.                           'LOGITEC', 'PROLIFIC', 'USBJMICRON', 'CYPRESS', 'MEMORY', 'JMICRON',
  34.                           'ASMEDIA', 'REALTEK', 'MEGARAID', 'VROC', 'ASM1352R'。
  35.                    使用 'DEFAULT' 以指定上述选项。
  36.                    其他选项为 'ADVANCED', 'HD204UI', 'ADATA', 'NOWAKEUP', 'JMICRON3'。
  37.   --display        打印显示器 EDID 信息。
  38.   --pci[=CLASS]    打印 PCI 信息
  39.     CLASS          指定 PCI 设备类型,如 '0C05' (SMBus)。
  40.   --usb            打印 USB 信息。
  41.   --battery        打印电池信息。
  42.   --uefi[=FLAG,..] 打印 UEFI 信息。
  43.     FLAGS:
  44.       MENU         打印 UEFI 启动菜单项。
  45.   --shares         打印共享文件夹和映射网络驱动器。
  46.   --audio          打印音频设备。
  47.   --public-ip      打印公网 IP 和 IP 归属地。
  48.   --product-policy 打印 ProductPolicy。
  49.   --gpu            打印 GPU 信息。
  50.   --font           打印安装的字体。
  51.   --device         打印硬件ID
复制代码


HwRwDrvXXX.sys 是驱动程序,用于读取 CPU 温度、电压、ACPI 信息。有顾虑的话可以删除,不影响其他功能使用。
libcdiXXX.dll 是由 CrystalDiskInfo 改造的动态链接库,用于读取磁盘 SMART 信息。(https://github.com/a1ive/libcdi)
pci.ids 是 PCI 硬件 ID 数据库,usb.ids 是 USB 硬件 ID 数据库,pnp.ids 是显示器制造商数据库,jep106.ids 是内存模组制造商数据库,删除这些数据库只影响对应设备的识别。
免责声明:
本软件使用 Unlicense 许可协议,放弃版权。你可以自由分发、修改、使用此软件,且无需告知开发者,也不需要注明。
本软件不对可靠性做出任何保证,不对使用此软件造成的硬件及数据损坏负任何责任。
本软件中读取 CPU 信息部分使用了 libcpuid 项目。
PCI 数据库来自 https://pci-ids.ucw.cz/
USB 数据库来自 http://www.linux-usb.org/usb-ids.html

点评

牛逼,大佬出手,就是不同  发表于 2025-2-21 20:26
辛苦了  发表于 2024-4-17 17:46

评分

参与人数 16无忧币 +75 收起 理由
zqjiang + 5
Allreal + 5 赞一个!
hlstudio + 5 很给力!
yyz2191958 + 2 赞一个!
lps4290 + 5
807979023 + 5 赞一个!
cuicongyuan + 5 赞一个!
shmoss + 5 很给力!
wybuct + 5 赞一个!
15159050498 + 3 很给力!
wmx400 + 5 赞一个!
xzf680 + 5 抓白嫖一葱,很给力
纯脆entropy + 5
江南一根葱 + 5 亲自白嫖
freesoft00 + 5
slore + 5 很给力!

查看全部评分

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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



回复

使用道具 举报

622#
 楼主| 发表于 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看一下结果是否一样。

回复

使用道具 举报

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

使用道具 举报

620#
发表于 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
回复

使用道具 举报

619#
 楼主| 发表于 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
回复

使用道具 举报

618#
发表于 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
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

哦, 原来是这样啊
回复

使用道具 举报

614#
 楼主| 发表于 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
回复

使用道具 举报

613#
发表于 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
回复

使用道具 举报

612#
 楼主| 发表于 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
回复

使用道具 举报

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

点评

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本来就有。
回复

使用道具 举报

607#
发表于 2025-8-13 12:18:19 | 只看该作者
可否加上网卡的MAC地址信息,以便一目了然

点评

本来就有。  详情 回复 发表于 2025-8-13 13:45
回复

使用道具 举报

606#
发表于 2025-8-8 16:23:00 | 只看该作者
感谢分享
回复

使用道具 举报

605#
发表于 2025-8-8 16:17:30 | 只看该作者
wintoflash 发表于 2025-8-8 12:06
虚拟机里面一切正常没什么用

这...


二○二五年八月八日
回复

使用道具 举报

604#
 楼主| 发表于 2025-8-8 12:06:21 | 只看该作者

虚拟机里面一切正常没什么用

点评

这... 二○二五年八月八日  详情 回复 发表于 2025-8-8 16:17
回复

使用道具 举报

603#
发表于 2025-8-7 12:05:00 | 只看该作者
wintoflash 发表于 2025-8-5 18:35
年初的时候跑xp的设备坏掉了,一直没测试过xp兼容性。。。

有虚拟机啊...


二○二五年八月七日

点评

虚拟机里面一切正常没什么用 [attachimg]562316[/attachimg]  详情 回复 发表于 2025-8-8 12:06
回复

使用道具 举报

602#
发表于 2025-8-5 20:20:59 | 只看该作者
方便实用
回复

使用道具 举报

601#
 楼主| 发表于 2025-8-5 18:35:50 | 只看该作者
邪恶海盗 发表于 2025-8-5 18:17
最新版本在XP下会报错...

年初的时候跑xp的设备坏掉了,一直没测试过xp兼容性。。。

点评

有虚拟机啊... 二○二五年八月七日  详情 回复 发表于 2025-8-7 12:05
回复

使用道具 举报

600#
发表于 2025-8-5 18:17:05 | 只看该作者
最新版本在XP下会报错...


点评

年初的时候跑xp的设备坏掉了,一直没测试过xp兼容性。。。  详情 回复 发表于 2025-8-5 18:35
回复

使用道具 举报

599#
发表于 2025-8-5 09:16:45 | 只看该作者
本坛有个类似作品
回复

使用道具 举报

598#
发表于 2025-8-5 09:10:25 | 只看该作者
多谢更新分享
回复

使用道具 举报

597#
 楼主| 发表于 2025-7-15 22:05:04 | 只看该作者
2012jiashanni 发表于 2025-3-14 15:59
老大 问下  微软微软 Win10 / Win11 隔离“WinRing0”驱动,相关新闻报道:https://www.ithome.com/0/837/79 ...

听到一些传言,某些网游的反作弊功能会检测WinRing0驱动,可能会导致封号。
目前使用的HwRwDrv在Win11 24H2上还没有被微软加入黑名单,但是也比较危险。
我已经在帖子和自述文档中添加了警告。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-9-16 11:16

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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