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_RAM = 32, PM_TEMP_SENSOR = 64 } |
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, PM_TEMP_AUTO_RAM } |
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 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 |
enum PM_Temp_Type |
The type of temperature source - bit coded.
enum PM_Auto_Type |
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.
[in] | dwTempTypes,: | Specifies which temperature sources to gather temperature sensor support e.g. bitwise (PM_TEMP_CPU |PM_TEMP_HDD | PM_TEMP_GPU | PM_TEMP_RAM) |
[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) |
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[]).
[in] | dwTempTypes,: | Specifies which temperature sources to gather temperature sensor support e.g. bitwise (PM_TEMP_CPU |PM_TEMP_HDD | PM_TEMP_GPU | PM_TEMP_RAM) |
[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 |