Reading CPU Fan Speed from the BIOS
-
Hi, I'm in a very difficult situation. :( I want to read the CPU Fan speed from the machine running Windows OS. WMI provides Win32_Fan class for doing this. But as far as i know, its is not implemented by Microsoft. (i think so !!) googling doesn't help me much. But i saw the CPU Fan speed value on the BIOS > Hardware Monitor > CPU Fan speed/System Fan Speed. Its a read only value. So, i think it is possible to read that value from BIOS. But i don't know how. Please help me Thanks is advance BIJU
-
Hi, I'm in a very difficult situation. :( I want to read the CPU Fan speed from the machine running Windows OS. WMI provides Win32_Fan class for doing this. But as far as i know, its is not implemented by Microsoft. (i think so !!) googling doesn't help me much. But i saw the CPU Fan speed value on the BIOS > Hardware Monitor > CPU Fan speed/System Fan Speed. Its a read only value. So, i think it is possible to read that value from BIOS. But i don't know how. Please help me Thanks is advance BIJU
-
Hi, I'm in a very difficult situation. :( I want to read the CPU Fan speed from the machine running Windows OS. WMI provides Win32_Fan class for doing this. But as far as i know, its is not implemented by Microsoft. (i think so !!) googling doesn't help me much. But i saw the CPU Fan speed value on the BIOS > Hardware Monitor > CPU Fan speed/System Fan Speed. Its a read only value. So, i think it is possible to read that value from BIOS. But i don't know how. Please help me Thanks is advance BIJU
Hi, The available hardware information is limited to what the vendors provide. WMI gives a framework to access what is available. Here is what one of my systems returns for Win32_fan, there is no speed info:
1: ActiveCooling = "True"
1: Availability = "3"
1: Caption = "Cooling Device"
1: CreationClassName = "Win32_Fan"
1: Description = "Cooling Device"
1: DeviceID = "root\cimv2 0"
1: Name = "Cooling Device"
1: Status = "OK"
1: StatusInfo = "2"
1: SystemCreationClassName = "Win32_ComputerSystem"
1: SystemName = "LP1720":)
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
Local announcement (Antwerp region): Lange Wapper? Neen!
-
Hi, I'm in a very difficult situation. :( I want to read the CPU Fan speed from the machine running Windows OS. WMI provides Win32_Fan class for doing this. But as far as i know, its is not implemented by Microsoft. (i think so !!) googling doesn't help me much. But i saw the CPU Fan speed value on the BIOS > Hardware Monitor > CPU Fan speed/System Fan Speed. Its a read only value. So, i think it is possible to read that value from BIOS. But i don't know how. Please help me Thanks is advance BIJU
It IS implemented by Microsoft. That's why you even have the class in the first place. The problem is that the Fan class does not provide the speed information. You would have known this if you read the documentation on the Win32_Fan class. There is no Microsoft-supplied class that returns CPU speed. This would be provided by the manufacturer of the motherboard, IF AT ALL! You'd look in a different namespace with the WMI class for one of these, not in root\CIMV2. For example, on my HP desktop machine, the namespace to find the HP supplied class for fan speed is in
root\HP\InstrumentedBIOS
. The full class path isHP_BIOSSensor\HP_BIOSNumericSensor\HPBIOS_BIOSNumericSensor
. The machine I'm on supplies 4 instances of theHPBIOS_BIOSNumericSensor
class. The first instance returns the CPU fan speed, the second is the chassis fan speed, the third is the CPU temp, and the forth is chassis ambient temp. These values are not returned at normal temperature and speed values, but values on a mapped scale. Since there is no documentation on these scales (that I can find right now), I'd have to do some research into what those values scale to and what they really mean. Not all motherboard manufacturers supply this kind of information through WMI. In fact, most do not. Oh! Where did I get this information?? It wasn't with Google or some mystical oracle. I used this little tool[^]. It's a MUST HAVE for doing WMI work.A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008
But no longer in 2009... -
Hi, I'm in a very difficult situation. :( I want to read the CPU Fan speed from the machine running Windows OS. WMI provides Win32_Fan class for doing this. But as far as i know, its is not implemented by Microsoft. (i think so !!) googling doesn't help me much. But i saw the CPU Fan speed value on the BIOS > Hardware Monitor > CPU Fan speed/System Fan Speed. Its a read only value. So, i think it is possible to read that value from BIOS. But i don't know how. Please help me Thanks is advance BIJU
Adding to what Dave's said, fan speed, temperature, and voltage monitoring locations, etc vary widely between mobo models when they're supported at all. As a result hardware monitoring tools that report these things either issue new versions at a breakneck pace to support new hardware or provide an online DB of some sort that their app can query to get the parameters. It would be nice if MS would define standard location/format/etc data for those parameters for a future revision of WMI; but since Weven is RTM; in the best case we'd need to wait until SP1; probably until Weight. Then add the amount of time it takes the mobo vendors to update the necessary drivers.
The latest nation. Procrastination.
-
It IS implemented by Microsoft. That's why you even have the class in the first place. The problem is that the Fan class does not provide the speed information. You would have known this if you read the documentation on the Win32_Fan class. There is no Microsoft-supplied class that returns CPU speed. This would be provided by the manufacturer of the motherboard, IF AT ALL! You'd look in a different namespace with the WMI class for one of these, not in root\CIMV2. For example, on my HP desktop machine, the namespace to find the HP supplied class for fan speed is in
root\HP\InstrumentedBIOS
. The full class path isHP_BIOSSensor\HP_BIOSNumericSensor\HPBIOS_BIOSNumericSensor
. The machine I'm on supplies 4 instances of theHPBIOS_BIOSNumericSensor
class. The first instance returns the CPU fan speed, the second is the chassis fan speed, the third is the CPU temp, and the forth is chassis ambient temp. These values are not returned at normal temperature and speed values, but values on a mapped scale. Since there is no documentation on these scales (that I can find right now), I'd have to do some research into what those values scale to and what they really mean. Not all motherboard manufacturers supply this kind of information through WMI. In fact, most do not. Oh! Where did I get this information?? It wasn't with Google or some mystical oracle. I used this little tool[^]. It's a MUST HAVE for doing WMI work.A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008
But no longer in 2009...Thank you Dave.. Thanks for your reply..