【问题标题】:c# / c / c++ / assembly - Retrieving Voltage Information? [duplicate]c# / c / c++ / assembly - 检索电压信息? [复制]
【发布时间】:2011-12-23 13:30:37
【问题描述】:

可能重复:
wmi c# - WMI Giving Incorrect Voltage Readings

首先,是否可以在 C# 中使用 C、C++ 或汇编 DLL?
如果是,我是简单地添加对此 DLL 的引用,还是必须 P/Invoke 它?

现在,进入主要问题。
我注意到,当使用带有 C# 的 WMI 来检索信息时,在某些体系结构和处理器上,信息要么完全不准确,要么根本不存在。我想知道如果上述问题可能,使用 C、C++ 或 Assembly 是否会产生更好的结果。

如果可以,我需要写什么,我需要怎么写,如果使用汇编,我将如何将它编译成 DLL?感谢您的任何回答。

WMI 不提供“CurrentVoltage”或“VoltageCaps” http://i.imgur.com/nNc8C.jpg

【问题讨论】:

  • 您可以通过多种方式调用 C/C++ 代码,例如使用 COM 接口、托管 C++ (C++/CLI) DLL 或使用 P/Invoke。
  • 当使用带有 C# 的 WMI 检索信息时,在某些架构和处理器上,信息要么完全不准确,要么根本不存在。 嗯,这可能是一个问题WMI 提供程序,而不是您用来查询它的语言。您能否详细说明缺失或不准确的信息?
  • 当使用带有 WMI 的 C# 并在处理器中查询“CurrentVoltage”时,我注意到在 Sandybridge 和 Yorkfield 架构上,电压显示为 null 或 0。在另一个使用 Penryn 架构的处理器上,电压以 3.3v 出现。
  • 有一个有趣的讨论关于here
  • @JPBlanc,啊,那是个骗子。不错的收获:)

标签: c# wmi


【解决方案1】:

我认为您的问题不在于您用于查询 WMI 的语言。

CurrentVoltage 属性的 documentation 表示:

处理器的电压。如果设置了第八位,则位 0-6 包含 电压乘以 10。如果第 8 位未设置,则 VoltageCaps 中的位设置代表电压值。 CurrentVoltage 仅在SMBIOS 指定电压值时设置。

因此,查询 Sandy Bridge / Yorkfield 系统上的 VoltageCaps 属性(因为未设置 CurrentVoltage 的第八位)应该可以解决您的问题。

【讨论】:

  • this one的答案完全一样
  • 是的,在你提到它之前我没有看到副本。我在删除它或离开它之间存在分歧,因为无论如何我投票结束这个问题作为一个骗子。
  • 这个问题不是关于它给出不正确的结果,而是更多关于如何使用不同的、较低的语言检索所述信息。此外,使用 VoltageCaps 也不起作用。
  • @Liam,这很有趣。 VoltageCaps 返回什么?
  • VoltageCaps 返回一个空格。你可以看到这张图片中的说明:i.imgur.com/nNc8C.jpg
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多