How does HWiNFO app gather info from computers


New Member
Hi everybody,

Might be a stupid question but I was hoping to get a better idea as to how the HWiNFO is gathering it's data for individual counters.  Specifically am curious about the temperature sensors for CPU cores, Ambient, DIMM and I've got something that is called Temp3 with a reading that's lower than all others am not entirely sure what that reading is for specifically and why it's 3-5 degrees below all other components.   And if somebody has any idea how the fan speeds are detected and reported on that would be just incredible!  

Just to clarify, I do understand that there are sensors embedded into motherboards, CPU's, GPU's and hard drives which will provide somewhat accurate readings as to current state/status of the component being monitored i.e. Temperature, spin RPM's, SMART status etc.  What am failing to understand is how this information is being collected from the sensors.  I have a Latitude E5450 and have a few Optiplex 3010/5040/7010/7040's and I've gone through those devices top to bottom and can't find the above data in either WMI nor SNMP or anything else for that matter without actually going into BIOS and reading the info directly from there.  However HWiNFO and a number of applications similar in design seem to be able to pull that data from the computer right through the OS without any issues at all.  Therefore am obviously missing something.  So am trying to understand is how this data is collected and where would I be able to see the data within the OS in instances where I don't have the luxury of being able to install a 3rd party application like HWiNFO to an appliance for monitoring purposes?

Any and all info would be greatly appreciated!

Thank you so much for reading the above.


P.S.  To the development team behind the HWiFNO tool, incredible work, fantastic tool set!  Thank you so much for all your hard work and developing this application and providing to the community!  You've got a supporter here! ;)))
Retrieving of such information is very complex and very specific - there are several different kinds of sensors, which very different access methods and interfaces. There's no unified and universal standard to specify how to read information from all sensors (well, perhaps IPMI, but that's only rarely used on some server machines).
To describe the full variety of sensors available and how they are read would be very complex. Just to name one example - mainboard sensors. These are usually implemented via dedicated LPC/Super-IO chips or dedicated sensor monitoring chips on mainboard. So the tool needs to know how to detect and access such chips, they can be accessible via SMBus or ISA/LPC space. Then it's required to know how to retrieve sensor information from them. Such chips usually offer several temperature, voltage and fan speed inputs, but these are exposed as general values (e.g. temperature 0, 1, etc.) only. Then it depends on particular mainboard how/where it connects the particular sensor inputs. For example mainboard A can have temperature #0 connected to CPU socket diode, temperature #1 to a local mainboard sensor. Other mainboard model can have this different. And again, there's no standard that would tell us where such general sensor is connected, so we need to examine every mainboard model to understand the connection and implement such adjusting into the monitoring tool.
Because of the lack of unified standards and the large variety and complexity of sensors, there is no dedicated support in operating systems like Windows, one needs to rely on specific tools like HWiNFO.