Data Structures | Defines | Enumerations | Functions

Temperature APIs

Data Structures

struct  MSR_TEMP
 The raw temperature infomration from the CPU registers. More...
struct  PM_TEMP_KEY
struct  TSENSORSDATA
 Structure to hold temperature sensor data. More...

Defines

#define INT_NOVALUEAVAILABLE   -1001
 Flags that no data was available for the sample period (e.g. HDD failed).
#define NOVALUEAVAILABLE   nanf("")
#define NUMTEMPSAMPLES   1000
 Number of temperature samples to store in the sensor data history.
#define MAXNUMTEMPVALUES   200
 The maximum number of possible temperature sources, note that this is all temperature sources - not just the configured sources.
#define MAXNUMTEMPSOURCES   64
 The maximum number of temperature sources that can be selected for monitoring.
#define TEMP_MIN_DISK   1
 Minimum disk temperature range allowed ( > 1 and < 128). This is due to some SSD's indicating 1C and 128C, but not supporting teperature sensors.
#define TEMP_MAX_DISK   128
 Maximum disk temperature range allowed ( > 1 and < 128). This is due to some SSD's indicating 1C and 128C, but not supporting teperature sensors.
#define MAXNUMFANVALUES   5
 Reserved for future use.
#define MAXVOLTAGEVALUES   7
 Reserved for future use.
#define DRIVE_TYPE_UNKNOWN   -1
#define DRIVE_TYPE_FIXED   3
#define DRIVE_TYPE_FIXED_HOTPLUG   100

Enumerations

enum  PM_Temp_Type {
  PM_TEMP_NONE = 0, PM_TEMP_CPU_AVE = 1, PM_TEMP_CPU = 2, PM_TEMP_CPU_CORE = 4,
  PM_TEMP_HDD = 8, PM_TEMP_GPU = 16, PM_TEMP_SENSOR = 32
}
 

The type of temperature source - bit coded.

More...
enum  PM_Auto_Type { PM_TEMP_AUTO_ALL = 0, PM_TEMP_AUTO_CPU, PM_TEMP_AUTO_HDD, PM_TEMP_AUTO_GPU }

Functions

SYSINFO_API bool SysInfoDll_InitPassMarkTemp (DWORD dwTempTypes, CPUINFO *pCPUinfo, SYSINFO_WMI *WMI_HDDinfo, bool *pbSMARTInitialized, TSENSORSDATA *psdata, bool allowMutlipleGPUs=false)
 Prepare for temperature monitoring by determining what temperature sensors are avalable: Initialize the temperature sensor data. Check if temperature monitoring is supported by Intel CPUs and if so save information about what CPU temperature sensors are available Check if temperature monitoring is supported by AMD CPUs and if so save information about what CPU temperature sensors are available Check which disk drives support SMART temperature reporing and save information about what disk drive temperature sensors are available Check if temperature monitoring is supported by nVIDIA GPU and if so save information about what GPU temperature sensors are available Check if temperature monitoring is supported by AMD GPU and if so save information about what GPU temperature sensors are available.
SYSINFO_API bool SysInfoDll_GetPassMarkTemps (DWORD dwTempTypes, HANDLE hDirectIO, wchar_t sztemp_C_or_F, CPUINFO *pCPUinfo, TSENSORSDATA *psdata)
 Gets the temperatures and stores the results: Get all the available CPU temperatures, saves them (in Temp, MinTemp and MaxTemp) and as a timestamped data points (in TempHistorySampleTime[]) Get all the available disk drive temperatures, saves them (in Temp, MinTemp and MaxTemp) and as a timestamped data points (in TempHistorySampleTime[]) Get all the available GPU temperatures, saves them (in Temp, MinTemp and MaxTemp) and as a timestamped data points (in TempHistorySampleTime[]).

Define Documentation

#define INT_NOVALUEAVAILABLE   -1001

Flags that no data was available for the sample period (e.g. HDD failed).

#define NOVALUEAVAILABLE   nanf("")
#define NUMTEMPSAMPLES   1000

Number of temperature samples to store in the sensor data history.

#define MAXNUMTEMPVALUES   200

The maximum number of possible temperature sources, note that this is all temperature sources - not just the configured sources.

#define MAXNUMTEMPSOURCES   64

The maximum number of temperature sources that can be selected for monitoring.

#define TEMP_MIN_DISK   1

Minimum disk temperature range allowed ( > 1 and < 128). This is due to some SSD's indicating 1C and 128C, but not supporting teperature sensors.

#define TEMP_MAX_DISK   128

Maximum disk temperature range allowed ( > 1 and < 128). This is due to some SSD's indicating 1C and 128C, but not supporting teperature sensors.

#define MAXNUMFANVALUES   5

Reserved for future use.

#define MAXVOLTAGEVALUES   7

Reserved for future use.

#define DRIVE_TYPE_UNKNOWN   -1
#define DRIVE_TYPE_FIXED   3
#define DRIVE_TYPE_FIXED_HOTPLUG   100

Enumeration Type Documentation

The type of temperature source - bit coded.

Enumerator:
PM_TEMP_NONE 
PM_TEMP_CPU_AVE 

Average CPU package temerature (based on Intel individual core temperatures).

PM_TEMP_CPU 

CPU temp.

PM_TEMP_CPU_CORE 

Intel temp per core.

PM_TEMP_HDD 

Disk drive SMART temperature.

PM_TEMP_GPU 

Graphics card temperature.

PM_TEMP_SENSOR 

Unknown what the temperature source is (e.g. from 3rd party application with no source type in interface).

Enumerator:
PM_TEMP_AUTO_ALL 
PM_TEMP_AUTO_CPU 
PM_TEMP_AUTO_HDD 
PM_TEMP_AUTO_GPU 

Function Documentation

SYSINFO_API bool SysInfoDll_InitPassMarkTemp ( DWORD  dwTempTypes,
CPUINFO pCPUinfo,
SYSINFO_WMI WMI_HDDinfo,
bool *  pbSMARTInitialized,
TSENSORSDATA psdata,
bool  allowMutlipleGPUs = false 
)

Prepare for temperature monitoring by determining what temperature sensors are avalable: Initialize the temperature sensor data. Check if temperature monitoring is supported by Intel CPUs and if so save information about what CPU temperature sensors are available Check if temperature monitoring is supported by AMD CPUs and if so save information about what CPU temperature sensors are available Check which disk drives support SMART temperature reporing and save information about what disk drive temperature sensors are available Check if temperature monitoring is supported by nVIDIA GPU and if so save information about what GPU temperature sensors are available Check if temperature monitoring is supported by AMD GPU and if so save information about what GPU temperature sensors are available.

Note: This API can take quite some time to complete. Especially if initialized for disk drives. As such, it may make sense to thread this API call.

Parameters:
[in] dwTempTypes,: Specifies which temperature sources to gather temperature sensor support e.g. bitwise (PM_TEMP_CPU |PM_TEMP_HDD | PM_TEMP_GPU)
[in] pCPUinfo,: The system CPU information obtained using SysInfoDll_GetCPUInfo()
[in] WMI_HDDinfo,: The system physcial disk drive information obtained using SysInfoDll_GetHDDetails(), SysInfoDll_GetSystemInfo_WMI() or SysInfoDll_GetSystemInfo_WMI_async ();
[in] pbSMARTInitialized,: Pointer to a boolean, true if SysInfoDll_Smart_Init() has already been called, false otherwise. Note: The calling application may have already initialzed the SysInfo SMART functions using, SysInfoDll_Smart_Init(), for some other purpose.
[out] psdata,: The sensor data including the temperature sources
[in] allowMutlipleGPUs,: Optional, set to try to allow multi GPU readings of same type (Nvidia, AMD)
Returns:
True if successfully initialized
SYSINFO_API bool SysInfoDll_GetPassMarkTemps ( DWORD  dwTempTypes,
HANDLE  hDirectIO,
wchar_t  sztemp_C_or_F,
CPUINFO pCPUinfo,
TSENSORSDATA psdata 
)

Gets the temperatures and stores the results: Get all the available CPU temperatures, saves them (in Temp, MinTemp and MaxTemp) and as a timestamped data points (in TempHistorySampleTime[]) Get all the available disk drive temperatures, saves them (in Temp, MinTemp and MaxTemp) and as a timestamped data points (in TempHistorySampleTime[]) Get all the available GPU temperatures, saves them (in Temp, MinTemp and MaxTemp) and as a timestamped data points (in TempHistorySampleTime[]).

Parameters:
[in] dwTempTypes,: Specifies which temperature sources to gather temperature sensor support e.g. bitwise (PM_TEMP_CPU |PM_TEMP_HDD | PM_TEMP_GPU)
[in] hDirectIO,: To collect CPU temperature the PassMark DirectIO device driver must be loaded with SysInfoDll_InitDirectIO(). SysInfoDll_InitDirectIO should be called once in your applciation to load the device driver and get the handle.
[in] sztemp_C_or_F,: L'C' for Celcius or L'F' for Fahrenheit
[in] pCPUinfo,: The system CPU information obtained using SysInfoDll_GetCPUInfo()
[out] psdata,: The sensor data including the temperature data
Returns:
True if any temperature data is available
 All Data Structures Files Functions Variables Enumerations Enumerator Defines