#include "SysInfoIncludes.h"
Go to the source code of this file.
Data Structures | |
struct | CPU_SPECIFICATION |
struct | EFFICIENCYCORESINFO |
struct | CPUMSRINFO |
struct | CPU_SPECIFICATION_STEPPING |
struct | CPU_GROUP_INFO |
struct | CPU_GROUPS_INFO |
struct | CACHEINFO |
struct | CPUINFO |
struct | DEVINFO |
struct | SPDINFO |
union | SPDINFO::SPECIFICINFO |
RAM-type specific attributes. More... | |
struct | SPDINFO::SPECIFICINFO::SDRSDRAMINFO |
SDRAM-specific attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR1SDRAMINFO |
DDR-specific attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR2SDRAMINFO |
DDR2-specific attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR2SDRAMINFO::EPPInfo |
EPP-specific attributes. More... | |
union | SPDINFO::SPECIFICINFO::DDR2SDRAMINFO::EPPInfo::PROFILEINFO |
EPP Profile attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR2SDRAMINFO::EPPInfo::PROFILEINFO::ABBRPROFILEINFO |
EPP Abbreviated Profile attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR2SDRAMINFO::EPPInfo::PROFILEINFO::FULLPROFILEINFO |
struct | SPDINFO::SPECIFICINFO::DDR2FBSDRAMINFO |
DDR2FB-specific attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR3SDRAMINFO |
DDR3-specific attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR3SDRAMINFO::XMPInfo |
XMP-specific attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR3SDRAMINFO::XMPInfo::XMPProfile |
XMP profile attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR4SDRAMINFO |
DDR4-specific attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR4SDRAMINFO::XMPInfo |
XMP-specific attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR4SDRAMINFO::XMPInfo::XMPProfile |
XMP profile attributes. More... | |
struct | SPDINFO::SPECIFICINFO::DDR5SDRAMINFO |
DDR5-specific attributes. More... | |
union | SPDINFO::SPECIFICINFO::DDR5SDRAMINFO::ARFM |
struct | SPDINFO::SPECIFICINFO::DDR5SDRAMINFO::EXPOInfo |
EXPO-specific attributes. More... | |
struct | MEMMODULEINFO |
struct | TSODINFO |
struct | MEMTEMPINFO |
struct | MEMTIMINGSINFO |
struct | MONITOR_ATTRIBUTES |
struct | MULTIMONITOR_DYN |
struct | SYSINFO_DISPLAY_DEVICE |
struct | DISPLAY_DEVICES |
struct | USB_HOST_CONTROLLER |
struct | USB_HOST_CONTROLLERS |
struct | SYSINFO_BIOMETRIC |
struct | SYSINFO_BIOMETRICS |
struct | BIOSINFO |
struct | VIRTUALMEMORYINFO |
struct | OPTICALDRIVEINFO |
struct | PHYSDISKINFO |
struct | PHYSDISKINFOSUMMARY |
struct | PHYSICALDRIVEINFO |
struct | DISKVOLUMEINFO |
struct | RAMINFO_WMI |
struct | COMPUTERMODELINFO |
struct | BASEBOARDINFO |
struct | SERIALPORTINFO |
struct | PARALLELPORTINFO |
struct | NETWORKADAPTERINFO |
struct | PORTCONNECTORINFO |
struct | DISKPARTITIONINFO |
struct | SYSINFO_WMI |
struct | IMAPI_INFO_DRIVE |
struct | IMAPI_INFO |
struct | SI_PROCINFO |
struct | RAMINFO_SMBIOS |
struct | SYSINFO_SMBIOS |
struct | RAMINFO_SMBIOS_EX |
struct | SYSINFO_GENERIC_ENTRIES |
struct | DRIVEPACKET |
struct | PHYSDISK |
struct | LPDEVICEINFO |
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... | |
struct | PSOFTWARE_RECORD |
Structure to hold names of installed programs. More... | |
struct | PSOFTWARE_LIST |
Defines | |
#define | SYSINFO_API extern "C" __declspec(dllexport) |
#define | INET6_ADDRSTRLEN 65 |
#define | INET_ADDRSTRLEN 22 |
#define | VSHORT_STRING_LEN 16 |
#define | SHORT_STRING_LEN 64 |
#define | LONG_STRING_LEN 256 |
#define | VLONG_STRING_LEN 1024 |
#define | MAX_NUM_CPUS 1024 |
The maxium number of logical CPUs (including physical cores) that are supported with the CPU test. | |
#define | MAX_NUM_CPU_PACKAGES 32 |
The maxium number CPU packages supported. | |
#define | MAX_CPU_GROUPS 12 |
The maxium number of CPU groups ( Windows 7 and 2008 supported 4 groups of 64 logical CPUs, changed to 12 as we had a cusotmer with an AMD Epyc 7601 in Win sewrver 2019 see 8). | |
#define | MAX_CPU_IN_GROUP 64 |
The maxium number of CPU in a groups (in 64-bit Windows). | |
#define | MAX_CACHES 16 |
The maxium number of caches. | |
#define | MAX_AFFINITY_SUPPORT MAXIMUM_PROC_PER_GROUP |
The maxium number of CPUs that you can set the CPU affinity for. | |
#define | MAX_CORE_EFFICIENCY_CLASSES 4 |
The maxium number of core efficiency classes. | |
#define | CPU_SPEED_STRING_LENGTH 15 |
#define | CPU_STRING_LEN 34 |
#define | CPUCODE_STRING_LENGTH 16 |
#define | STEPPING_STRING_LENGTH 6 |
#define | SOCKET_STRING_LENGTH 16 |
#define | FAB_STRING_LENGTH 5 |
#define | MODULE_PARTNO_LEN 32 |
#define | MAX_MEMORY_SLOTS 32 |
#define | MAX_TSOD_SLOTS 32 |
#define | MAX_SPD_LENGTH 1024 |
#define | SPDINFO_MEMTYPE_SDRAM 4 |
#define | SPDINFO_MEMTYPE_DDR_SGRAM 6 |
#define | SPDINFO_MEMTYPE_DDR 7 |
#define | SPDINFO_MEMTYPE_DDR2 8 |
#define | SPDINFO_MEMTYPE_DDR2FB 9 |
#define | SPDINFO_MEMTYPE_DDR2FBPROBE 10 |
#define | SPDINFO_MEMTYPE_DDR3 11 |
#define | SPDINFO_MEMTYPE_DDR4 12 |
#define | SPDINFO_MEMTYPE_DDR4E 14 |
#define | SPDINFO_MEMTYPE_LPDDR3 15 |
#define | SPDINFO_MEMTYPE_LPDDR4 16 |
#define | SPDINFO_MEMTYPE_LPDDR4X 17 |
#define | SPDINFO_MEMTYPE_DDR5 18 |
#define | SPDINFO_MEMTYPE_LPDDR5 19 |
#define | SPDINFO_MEMTYPE_DDR5_NVDIMM_P 20 |
#define | SPDINFO_MEMTYPE_LPDDR5X 21 |
#define | SPDINFO_DDR2_EPP_PROFILE_ABBR 0xA1 |
#define | SPDINFO_DDR2_EPP_PROFILE_FULL 0XB1 |
#define | MAX_XMP3_PROFILE_NAME_LEN 16 |
#define | MAX_XMP3_PROFILES 5 |
#define | MAX_EXPO_PROFILES 2 |
#define | MANUF_SPECIFIC_DATA_LEN 32 |
#define | NUMMONITORS 8 |
Max number of monitors supported. | |
#define | MAX_MONITOR_INFO_LEN 256 |
#define | MAX_DISPLAY_DEVICES 16 |
#define | SI_MAX_MONITORS NUMMONITORS |
Max number of monitors per adapter. | |
#define | MAX_STRINGLEN 128 |
#define | MAX_DEV_MODES 2000 |
#define | MAX_VIDEO_INFO_LEN 128 |
#define | MAX_EDID_STR_LEN 32 |
#define | MAXUSBHOSTCONTROLLERS 10 |
#define | MAXUSBDEVICES 14 |
Max # of USB devices per host controller. | |
#define | USBSTRINGLEN 100 |
#define | MAXBIOMETRICS 20 |
#define | MAXBIOLEN 256 |
#define | WMISI_VSHORTSTRING 25 |
#define | WMISI_SHORTSTRING 50 |
#define | WMISI_INFO_VSHORTSTRING 100 |
#define | WMISI_INFO_SHORTSTRING 200 |
#define | MAXBIOSMODULES 1 |
#define | MAXBIOSCHARACTERISTICS 100 |
#define | MAXPROCSOCKETS 8 |
Max processor sockets. | |
#define | MAXNUMCDDVD 20 |
Max number of CD/DVD drives. | |
#define | WMISI_MAXPAGEFILES 2 |
Max number of page files. | |
#define | MAX_FILENAME 512 |
#define | SYSINFO_MAXNUMDISKS 200 |
Max number of disks that can be tested at the same time. | |
#define | MAXLOGICALDISKS 26 |
#define | MAXRAMMODULES 64 |
#define | MAXCOMPUTERSYSTEMS 1 |
#define | MAXBASEBOARDS 1 |
#define | MAXSERIALPORTS 64 |
#define | MAXSPARALLELPORTS 10 |
#define | MAXNETWORKADAPTERS 20 |
#define | MAXPORTCONNECTORS 50 |
#define | MAXSYSTEMSLOTS 20 |
#define | Win32_PortConnector_PortType_PS2 2 |
PortType. | |
#define | Win32_PortConnector_PortType_Keyboard 13 |
#define | Win32_PortConnector_PortType_Mouse 14 |
#define | Win32_PortConnector_PortType_USB 16 |
#define | Win32_PortConnector_PortType_Firewire 17 |
#define | Win32_PortConnector_PortType_Audio 29 |
#define | Win32_PortConnector_PortType_NUM 33 |
#define | MAXBURNERSTRLEN 60 |
#define | IMAPI2_MAX_FEATURES 70 |
#define | SMB_VSHORT_STRINGLEN 32 |
#define | SMB_STRINGLEN 64 |
#define | MAXSYSINFOGENERIC 20 |
#define | PART_UNKNOWN 0x00 |
#define | PART_DOS2_FAT 0x01 |
12-bit FAT. | |
#define | PART_DOS3_FAT 0x04 |
16-bit FAT. Partition smaller than 32MB. | |
#define | PART_EXTENDED 0x05 |
Extended MS-DOS Partition. | |
#define | PART_DOS4_FAT 0x06 |
16-bit FAT. Partition larger than or equal to 32MB. | |
#define | PART_NTFS 0x07 |
NTFS. | |
#define | PART_EXFAT 0x0107 |
exFAT | |
#define | PART_DOS32 0x0B |
32-bit FAT. Partition up to 2047GB. | |
#define | PART_DOS32X 0x0C |
Same as PART_DOS32(0Bh), but uses Logical Block Address Int 13h extensions. | |
#define | PART_DOSX13 0x0E |
Same as PART_DOS4_FAT(06h), but uses Logical Block Address Int 13h extensions. | |
#define | PART_DOSX13X 0x0F |
Same as PART_EXTENDED(05h), but uses Logical Block Address Int 13h extensions. | |
#define | PART_DYNAMICDISK 0x42 |
Dynamic disk. | |
#define | PART_LINUX 0x83 |
Linux partition (eg. ext2, ext3). | |
#define | PART_LINUX_LVM 0x8E |
Linux partition LVM (eg. ext2, ext3). | |
#define | PART_HFS 0xAF |
HFS or HFS+. | |
#define | PART_APFS 0x01AF |
APFS. | |
#define | PART_GPT 0xEE |
GPT disk (Protection MBR flag). | |
#define | PART_RAW 0xF0 |
Raw partition. | |
#define | MAX_PARTITIONS 256 |
Maximum number of partitions per physical disk supported for collecting disk partition information. | |
#define | MAX_NUM_PHYSDISKS (SYSINFO_MAXNUMDISKS + 26 + 1) |
Maximum number of physcial disk supported for collecting disk partition information. | |
#define | START_VOLUME_INDEX SYSINFO_MAXNUMDISKS |
#define | START_IMAGE_INDEX (START_VOLUME_INDEX + 26) |
#define | DRIVE_NOT_MOUNTED (DWORD) -1 |
#define | UNKNOWN_DISK_TYPE 0 |
#define | BASIC_DISK 1 |
Master Boot Record partition table. | |
#define | DYNAMIC_DISK 2 |
EFI/ GUID Partition Table. | |
#define | UNKNOWN_DISK_PARTITION 0 |
#define | MBR_DISK 1 |
Master Boot Record partition table. | |
#define | GPT_DISK 2 |
EFI/ GUID Partition Table. | |
#define | APM_DISK 3 |
Apple Partition Map. | |
#define | SERIAL_NUM_LEN 20 |
#define | FIRMWARE_REV_LEN 8 |
#define | MODEL_NUM_LEN 40 |
#define | VENDOR_UNIQUE_LEN 3 |
#define | WWN_LEN 8 |
#define | MAX_PARTITIONS_PER_DEVICE 8 |
#define | SMART_STATUS_SUCCESS 0 |
No error. Function completed and returned successfully. | |
#define | SMART_ERR_DEVICE_ID_DNE -1000 |
The device ID passed in does not exist. Please use GetSmartDeviceIDFirst and GetSmartDeviceIDNext to get the device ID. | |
#define | SMART_ERR_DEVICE_ID_NOT_SMART -1001 |
Disk does not support S.M.A.R.T. Older disk that does not support S.M.A.R.T. will get this error. | |
#define | SMART_ERR_DEVICE_OPEN -1002 |
#define | SMART_ERR_DRIVE_NUMBER_INVALID -1100 |
Valid drive numbers are from 0 ("A:\") to 25 ("Z:\"). Any number not in this range will yield this error. | |
#define | SMART_ERR_DRIVE_NUMBER_DNE -1101 |
Drive number does not exist. This means there is not physical device that has this drive number. | |
#define | SMART_ERR_DRIVE_NUMBER_NOT_FIXED -1102 |
Drive number is not a fixed drive. Floppies and CDROMs are not fixed drives and will get this error. | |
#define | SMART_ERR_BUFFER_INVALID -2000 |
Buffer provided points to NULL. | |
#define | SMART_ERR_BUFFER_TOO_SMALL -2001 |
Buffer provided is too small to hold all the data. | |
#define | SMART_ERR_BUFFER_FAILED_ALLOCATE -2002 |
Failed to allocate buffer in function. | |
#define | SMART_ERR_SMART_DEVICE_ID_EMPTY -3001 |
There is no S.M.A.R.T. device ID in the list. | |
#define | SMART_ERR_SMART_DEVICE_ID_EOL -3002 |
We have reached the end of list for the S.M.A.R.T. device ID(s). | |
#define | SMART_ERR_SMART_ATTR_ID_EMPTY -4001 |
There is no S.M.A.R.T. attribute for the drive. | |
#define | SMART_ERR_SMART_ATTR_ID_EOL -4002 |
We have reached the end of list for the S.M.A.R.T. attribute(s) for the drive. | |
#define | SMART_ERR_SMART_ATTR_ID_INVALID -4003 |
Smart attribute ID is invalid. Attribute ID cannot be zero. | |
#define | SMART_WARN_SMART_ATTR_ID_UNKNOWN -4004 |
Smart attribute ID unrecognized by DLL. Possibly a new attribute implemented by certain hard disk manufacturer. The attribute value will still be valid. However, you will get "Unknown Attribute" if you try and get its description string. This is a warning rather than an error. | |
#define | SMART_ERR_FOPEN_FAIL -5001 |
Fail to open file for reading and writing. This happens when the Windows API fopen() returned an error. | |
#define | SMART_ERR_FWRITE_FAIL -5002 |
Fail to write to file. This happens when the number of characters written using the Windows API fwrite() is less than what we intended to write. | |
#define | SMART_ERR_FREAD_FAIL -5003 |
Fail to read file. This happens when the Windows API fread() returned an error. | |
#define | SMART_ERR_ACCESS_RW -5101 |
No read/write permission for file. | |
#define | SMART_ERR_ACCESS_RO -5102 |
No read permission for file. | |
#define | SMART_ERR_FSEEK_FAIL -5201 |
Fail to seek to a location in file. This happens when the Windows API fseek() returned an error. | |
#define | SMART_ERR_GET_PHY_CAPACITY -6001 |
Fail to get device capacity. | |
#define | SMART_ERR_BUILD_DRIVES_INFO_NO_ACCESS -7001 |
No access rights when trying to get info for drive. | |
#define | SMART_ERR_NO_ADMIN_RIGHTS -7002 |
No access rights to gather drive information. In Windows Server and Vista, your application needs to "Run as administrator". | |
#define | SMART_ERR_SELFTEST_FAILED -8001 |
Failed to execute the specifield self test. The self test may not be supported. | |
#define | SMART_WARN_48BITCMD_UNSUPPORTED -9001 |
The drive does not support 48-bit commands. The result may not be as expected. | |
#define | SMART_ERR_48BITCMD_UNSUPPORTED -9002 |
The drive does not support 48-bit commands. | |
#define | SMART_ERR_DLL_NOT_INIT -10001 |
Occur when you try and use SmartDisk DLL’s APIs without first calling SmartDisk Init. | |
#define | SMART_ERR_DLL_INIT_MEMORY_ALLOC_FAIL -10002 |
SmartDisk Init failed to allocate memory. | |
#define | SMART_ERR_FUNCTION_NOT_SUPPORTED -10003 |
This function is not supported in Windows 98/Me. | |
#define | SMART_ERR_EMPTY_STRING -10004 |
Empty string returned from SmartDll GetXXX functions. | |
#define | SMART_ERR_INVALID_PARAM -10005 |
One of the parameters is invalid. | |
#define | SMART_ERR_TEC_NO_ATTRIBUTES -20001 |
There are no S.M.A.R.T. attributes to record for the chosen drive number. | |
#define | SMART_ERR_TEC_SIGNATURE_HEAD -20002 |
The TEC file does not have "SMDL" in the first 4 bytes of the file stream. | |
#define | SMART_ERR_TEC_SIGNATURE_TAIL -20003 |
The TEC file does not have ""LDMS" in the last 4 bytes of the file stream. | |
#define | SMART_ERR_TEC_FILE_DNE -20004 |
The TEC file for the drive number does not exist. | |
#define | SMART_WARN_TEC_NOT_ENOUGH_DATA -20005 |
There are not enough TEC data to predict TEC. We need to have at least 3 sets of data. | |
#define | SMART_WARN_TEC_ATTR_ID_NA -20006 |
For given attribute ID, threshold value is 0. It means we have no threshold value to work with to predict TEC. | |
#define | SMART_WARN_TEC_UNABLE_TO_PREDICT -20007 |
No changes in attribute values have been detected, making it impossible to predict TEC. | |
#define | SMART_ERR_UNEXPECTED -30001 |
#define | ATTR_INVALID 0x0 |
#define | ATTR_READ_ERROR_RATE 0x1 |
Raw Read Error Rate: Represents the rate of uncorrected read errors. Lower values indicate that there is a problem with either disk surface or read/write heads. | |
#define | ATTR_THROUGHPUT_PERF 0x2 |
Throughput Performance: Represents the throughput performance of the drive, i.e. The speed at which the drive is reading and writing data. | |
#define | ATTR_SPIN_UP_TIME 0x3 |
Spin Up Time: Represents the average amount of time required to spin up the drive spindle to operational speed from a stopped state. | |
#define | ATTR_START_STOP_COUNT 0x4 |
Start/Stop Count: Represents the number of start/stop cycles for the drive. The raw value indicates the count of start/stop cycles for the drive. The drive being powered on/off or suspended/woken up are considered as start/stop cycles. | |
#define | ATTR_REALLOC_SECTOR_COUNT 0x5 |
Reallocated Sector Count: Represents the amount of spare sector pool available. Spare sectors are used to replace sectors that became bad for some reason (for instance, if a read error occurs). Therefore the more sectors reallocated, the worse the condition of the drive. A high value represents few reallocated sectors, a low value represents a disk in poor physical condition. | |
#define | ATTR_READ_CHANNEL_MARGIN 0x6 |
Read Channel Margin: Margin of a channel while reading data. The function of this attribute is not specified. | |
#define | ATTR_SEEK_ERROR_RATE 0x7 |
Seek Error Rate: Represents the number of seek errors. Each time the drive attempts a seek operation, but fails to position its head correctly, the seek error rate increases. | |
#define | ATTR_SEEK_TIME_PERF 0x8 |
Seek Time Performance: Represents how efficiently the drive is performing seek operations. A low value indicates problems with the drive subsystem, for instance the servo responsible for positioning the head. | |
#define | ATTR_POWER_ON_TIME 0x9 |
Power On Hours Count: This is an informative attribute, the raw value of which displays the number of hours the drive has been powered on for. | |
#define | ATTR_SPIN_RETRY_COUNT 0xA |
Spin Retry Count: Represents the number of times a drive fails to spin its spindle up to operation speed on the first attempt. The lower the value, the more retries have occurred. | |
#define | ATTR_CALIBRATION_RETRY_COUNT 0xB |
Calibration Retry Count: Calibration is the act of repositioning the drive read/write head to cylinder 0. This value represents the number of times a calibration has failed on the first attempt. | |
#define | ATTR_POWER_CYCLE_COUNT 0xC |
Power Cycle Count: Informative attribute, the raw value of which represents the number of drive power on/drive power off cycles for the disk. | |
#define | ATTR_SOFT_READ_ERROR_RATE 0xD |
Soft Read Error Rate: Uncorrected read errors reported to the operating system. | |
#define | ATTR_DOWNSHIFT_ERROR_COUNT 0xB7 |
#define | ATTR_END_TO_END_ERROR 0xB8 |
#define | ATTR_HEAD_STABILITY 0xB9 |
#define | ATTR_INDUCED_OP_VIB_DETECT 0xBA |
#define | ATTR_UNCORRECTABLE_ERRORS 0xBB |
#define | ATTR_COMMAND_TIMEOUT 0xBC |
#define | ATTR_COMMAND_HIGH_FLY_WRITES 0xBD |
#define | ATTR_100_MINUS_TEMPERATURE 0xBE |
Temperature Difference from 100: The exact specification of this attribute is not quite stable. This is what it is known as on Seagate drives whereas it is called Airflow Temperature on Western Digital hard disks. In either case this attribute usually has to do with subtracting the temperature from 100 to give a value that is worse when it is lower. | |
#define | ATTR_GSENSE_ERROR_RATE_BF 0xBF |
G-Sense Error Rate: Frequency of mistakes as a result of impact loads. | |
#define | ATTR_POWER_OFF_RETRACT_COUNT 0xC0 |
Power-off Retract Count: Number of times the heads are loaded off the media. Heads can be unloaded without actually powering off. | |
#define | ATTR_LOAD_CYCLE_COUNT 0xC1 |
Load/Unload Cycle: Count of load/unload cycles into head landing zone position. | |
#define | ATTR_TEMPERATURE_C2 0xC2 |
Temperature: Informative attribute, the raw value of which represents the current temperature in Celsius of the drive. | |
#define | ATTR_HARDWARE_ECC_RECOVERED 0xC3 |
Hardware ECC Recovered: Time between ECC-corrected errors. | |
#define | ATTR_REALLOC_EVENT_COUNT 0xC4 |
Reallocation Event Count: Represents the number of reallocation events, which have taken place. Sometimes multiple sectors are reallocated together – this corresponds to one reallocation event. (See also: Reallocated Sector Count and Current Pending Sector Count). | |
#define | ATTR_PENDING_SECTOR_COUNT 0xC5 |
Current Pending Sector Count: Represents the number of sectors currently pending reallocation. | |
#define | ATTR_UNCORRECTABLE_SECTOR_COUNT 0xC6 |
Uncorrectable Sector Count: The total number of uncorrectable errors when reading/writing a sector. | |
#define | ATTR_ULTRADMA_CRC_ERROR_COUNT 0xC7 |
Ultra ATA CRC Error Count: Represents the number of CRC error found in the Ultra DMA high-speed transfer mode. (CRC stands for Cyclic Redundancy Check and is data verification algorithm which uses polynomial checksums). | |
#define | ATTR_WRITE_ERROR_COUNT 0xC8 |
Write Error Count: Represents the rate of uncorrected write errors. Lower values indicate that there is a problem with either disk surface or read/write heads. | |
#define | ATTR_OFF_TRACK_ERRORS 0xC9 |
Soft Read Error Rate: Number of off-track errors. | |
#define | ATTR_DATA_ADDRESS_MARK_ERRORS 0xCA |
Data Address Mark errors: Number of Data Address Mark errors. | |
#define | ATTR_ECC_ERRORS 0xCB |
Run Out Cancel: Number of ECC errors. | |
#define | ATTR_SOFT_ECC_CORRECTION 0xCC |
Soft ECC Correction: Number of errors corrected by software ECC. | |
#define | ATTR_THERMAL_ASPERITY_RATE 0xCD |
Thermal asperity rate (TAR ): Number of thermal asperity errors. | |
#define | ATTR_FLYING_HEIGHT 0xCE |
Flying Height: Height of heads above the disk surface. | |
#define | ATTR_SPIN_HIGH_CURRENT 0xCF |
Spin High Current: Amount of high current used to spin up the drive. | |
#define | ATTR_SPIN_BUZZ 0xD0 |
Spin Buzz: Number of buzz routines to spin up the drive. | |
#define | ATTR_OFFLINE_SEEK_PERFORMANCE 0xD1 |
Offline Seek Performance: Drive’s seek performance during offline operations. | |
#define | ATTR_VIBRATION_DURING_WRITE 0xD3 |
#define | ATTR_SHOCK_DURING_WRITE 0xD4 |
#define | ATTR_DISK_SHIFT 0xDC |
Disk Shift: Distance the disk has shifted relative to the spindle (usually due to shock). | |
#define | ATTR_GSENSE_ERROR_RATE_DD 0xDD |
GSense Error rate: The number of errors resulting from externally-induced shock & vibration. | |
#define | ATTR_LOADED_HOURS 0xDE |
Loaded Hours: Time spent operating under data load (movement of magnetic head armature). | |
#define | ATTR_LOAD_UNLOAD_RERTY_COUNT 0xDF |
Load/Unload retry count: Number of times head changes position. | |
#define | ATTR_LOAD_FRICTION 0xE0 |
Load Friction: Resistance caused by friction in mechanical parts while operating. | |
#define | ATTR_LOAD_UNLOAD_CYCLE_COUNT 0xE1 |
Load/Unload Cycle Count: Total number of load cycles. | |
#define | ATTR_LOAD_IN_TIME 0xE2 |
Load 'In'-time: Total time of loading on the magnetic heads actuator (time not spent in parking area). | |
#define | ATTR_TORQUE_AMPLIFICATION_COUNT 0xE3 |
Torque Amplification Count: Number of attempts to compensate for platter speed variations. | |
#define | ATTR_POWEROFF_RETRACT_CYCLE 0xE4 |
Power off retract cycle: The number of times the magnetic armature was retracted automatically as a result of cutting power. | |
#define | ATTR_GMR_HEAD_AMPLITUDE 0xE6 |
GMR Head Amplitude: Amplitude of "thrashing" (distance of repetitive forward/reverse head motion). | |
#define | ATTR_TEMPERATURE_E7 0xE7 |
Temperature: Drive Temperature, unknown units. | |
#define | ATTR_HEAD_FLYING_HOURS 0xF0 |
Head Flying Hours: Time while head is positioning. | |
#define | ATTR_TOTAL_LBAS_WRITTEN 0xF1 |
#define | ATTR_TOTAL_LBAS_READ 0xF2 |
#define | ATTR_READ_ERROR_RETRY_RATE 0xFA |
Read Error Retry Rate: Number of errors while reading from a disk. | |
#define | ATTR_FREE_FALL_PROTECTION 0xFE |
#define | ATTR_TYPE_STR_DESC 0x20 |
A text description of the attribute. See below for a more detailed description of each attribute. | |
#define | ATTR_TYPE_INT_STATUS 0x40 |
Provided a status for the attribute. OK means the attribute value is well in the safe zone. FAIL means that a Threshold Exceeding Condition has been detected. | |
#define | ATTR_TYPE_INT_TYPE 0x80 |
The type of the SMART attribute. | |
#define | ATTR_TYPE_INT_VALUE 0x01 |
The current normalized attribute value. | |
#define | ATTR_TYPE_ULONGLONG_RAW 0x02 |
#define | ATTR_TYPE_INT_WORST 0x04 |
The worst (lowest) value recorded so far. This is an indicator of how close to failure the drive has ever been. | |
#define | ATTR_TYPE_INT_THRESHOLD 0x08 |
The attribute threshold. This value will not change and represents the lowest possible safe attribute value. | |
#define | SMART_SELFTEST_STATUS_NOERR 0x0 |
Indicates a previous self-test routine completed without error or no self-test status is available. | |
#define | SMART_SELFTEST_STATUS_ABORTED 0x1 |
The self-test routine was aborted by the host. | |
#define | SMART_SELFTEST_STATUS_INTERRUPTED 0x2 |
The self-test routine was interrupted by the host with a hardware or software reset. | |
#define | SMART_SELFTEST_STATUS_FATALERR 0x3 |
A fatal error or unknown test error occurred while the device was executing its self-test routine and the device was unable to complete the self-test routine. | |
#define | SMART_SELFTEST_STATUS_FAILED_UNKNOWN 0x4 |
The previous self-test completed having a test element that failed and the test element that failed is not known. | |
#define | SMART_SELFTEST_STATUS_FAILED_ELECTRICAL 0x5 |
The previous self-test completed having the electrical element of the test failed. | |
#define | SMART_SELFTEST_STATUS_FAILED_SERVOSEEK 0x6 |
The previous self-test completed having the servo and/or seek test element of the test failed. | |
#define | SMART_SELFTEST_STATUS_FAILED_READ 0x7 |
The previous self-test completed having the read element of the test failed. | |
#define | SMART_SELFTEST_STATUS_FAILED_HANDLING 0x8 |
The previous self-test completed having a test element that failed and the device is suspected of having handling damage. | |
#define | SMART_SELFTEST_STATUS_IN_PROGRESS 0xF |
Self-test routine in progress. | |
#define | INTERFACE_TYPE_UNKNOWN 0x00 |
#define | INTERFACE_TYPE_SCSI 0x01 |
#define | INTERFACE_TYPE_ATAPI 0x02 |
#define | INTERFACE_TYPE_ATA 0x03 |
#define | INTERFACE_TYPE_1394 0x04 |
#define | INTERFACE_TYPE_SSA 0x05 |
#define | INTERFACE_TYPE_FIBRE 0x06 |
#define | INTERFACE_TYPE_USB 0x07 |
#define | INTERFACE_TYPE_RAID 0x08 |
#define | INTERFACE_TYPE_ISCSI 0x09 |
#define | INTERFACE_TYPE_SAS 0x0A |
#define | INTERFACE_TYPE_SATA 0x0B |
#define | INTERFACE_TYPE_NVME 0x11 |
#define | ATA_COMPLIANCE(x) (x != 0x0000 && x != 0xFFFF) |
#define | ATA8_SUPPORTED(x) (x & (1 << 8)) |
#define | ATA7_SUPPORTED(x) (x & (1 << 7)) |
#define | ATA6_SUPPORTED(x) (x & (1 << 6)) |
#define | ATA5_SUPPORTED(x) (x & (1 << 5)) |
#define | ATA4_SUPPORTED(x) (x & (1 << 4)) |
#define | TRANSPORT_TYPE_AVAILABLE(x) (x != 0x0000 && x != 0xFFFF) |
#define | TRANSPORT_TYPE_SERIAL(x) (x & (1 << 12)) |
#define | TRANSPORT_TYPE_PARALLEL(x) ((x & (1 << 12)) == 0) |
#define | SATA3_0_COMPLIANCE(x) (x & (1 << 5)) |
#define | SATA2_6_COMPLIANCE(x) (x & (1 << 4)) |
#define | SATA2_5_COMPLIANCE(x) (x & (1 << 3)) |
#define | SATA2_EXT_COMPLIANCE(x) (x & (1 << 2)) |
#define | SATA1_COMPLIANCE(x) (x & (1 << 1)) |
#define | ATA7_COMPLIANCE(x) (x & (1 << 1)) |
#define | ATA8_COMPLIANCE(x) (x & 1) |
#define | ROTATION_RATE_AVAILABLE(x) (x != 0) |
#define | ROTATION_RATE_SSD(x) (x == 0x0001) |
#define | MULTIDMA_MODE2_SUPPORTED(x) (x & (1 << 2)) |
#define | MULTIDMA_MODE1_SUPPORTED(x) (x & (1 << 1)) |
#define | MULTIDMA_MODE0_SUPPORTED(x) (x & 1) |
#define | MULTIDMA_MODE2_SELECTED(x) (x & (1 << 2)) |
#define | MULTIDMA_MODE1_SELECTED(x) (x & (1 << 1)) |
#define | MULTIDMA_MODE0_SELECTED(x) (x & 1) |
#define | ULTRADMA_MODE6_SUPPORTED(x) (x & (1 << 6)) |
#define | ULTRADMA_MODE5_SUPPORTED(x) (x & (1 << 5)) |
#define | ULTRADMA_MODE4_SUPPORTED(x) (x & (1 << 4)) |
#define | ULTRADMA_MODE3_SUPPORTED(x) (x & (1 << 3)) |
#define | ULTRADMA_MODE2_SUPPORTED(x) (x & (1 << 2)) |
#define | ULTRADMA_MODE1_SUPPORTED(x) (x & (1 << 1)) |
#define | ULTRADMA_MODE0_SUPPORTED(x) (x & 1) |
#define | ULTRADMA_MODE6_SELECTED(x) (x & (1 << 6)) |
#define | ULTRADMA_MODE5_SELECTED(x) (x & (1 << 5)) |
#define | ULTRADMA_MODE4_SELECTED(x) (x & (1 << 4)) |
#define | ULTRADMA_MODE3_SELECTED(x) (x & (1 << 3)) |
#define | ULTRADMA_MODE2_SELECTED(x) (x & (1 << 2)) |
#define | ULTRADMA_MODE1_SELECTED(x) (x & (1 << 1)) |
#define | ULTRADMA_MODE0_SELECTED(x) (x & 1) |
#define | PIO_MODE3_SUPPORTED(x) (x & 1) |
#define | PIO_MODE4_SUPPORTED(x) (x & (1 << 1)) |
#define | SATA_NCQ_PRIO_INFO_SUPPORTED(x) (x & (1 << 12)) |
#define | SATA_UNLOAD_NCQ_PENDING_SUPPORTED(x) (x & (1 << 11)) |
#define | SATA_PHY_EVENT_COUNTERS_SUPPORTED(x) (x & (1 << 10)) |
#define | SATA_POWER_MGMT_REQUESTS_SUPPORTED(x) (x & (1 << 9)) |
#define | SATA_NCQ_FEATURES_SUPPORTED(x) (x & (1 << 8)) |
#define | SATA_GEN3_SIGNAL_SPEED_SUPPORTED(x) (x & (1 << 3)) |
#define | SATA_GEN2_SIGNAL_SPEED_SUPPORTED(x) (x & (1 << 2)) |
#define | SATA_GEN1_SIGNAL_SPEED_SUPPORTED(x) (x & (1 << 1)) |
#define | SATA_SSP_SUPPORTED(x) (x & (1 << 6)) |
#define | SATA_IN_ORDER_DELIVERY_SUPPORTED(x) (x & (1 << 4)) |
#define | SATA_INIT_POWER_MGMT_SUPPORTED(x) (x & (1 << 3)) |
#define | SATA_DMA_SETUP_AUTO_ACT_SUPPORTED(x) (x & (1 << 2)) |
#define | SATA_NON_ZERO_BUFOFF_SUPPORTED(x) (x & (1 << 1)) |
#define | SATA_SSP_ENABLED(x) (x & (1 << 6)) |
#define | SATA_IN_ORDER_DELIVERY_ENABLED(x) (x & (1 << 4)) |
#define | SATA_INIT_POWER_MGMT_ENABLED(x) (x & (1 << 3)) |
#define | SATA_DMA_SETUP_AUTO_ACT_ENABLED(x) (x & (1 << 2)) |
#define | SATA_NON_ZERO_BUFOFF_ENABLED(x) (x & (1 << 1)) |
#define | AAM_LEVEL_VENDOR_SPECIFIC(x) (x == 0x00) |
#define | AAM_LEVEL_MIN_ACOUSTIC(x) (x == 0x80) |
#define | AAM_LEVEL_INT_ACOUSTIC(x) (x >= 0x81 && x <= 0xFD) |
#define | AAM_LEVEL_MAX_PERFORMANCE(x) (x == 0xFE) |
#define | APM_LEVEL_MIN_POWER_WITH_STANDBY(x) (x == 0x01) |
#define | APM_LEVEL_INT_POWER_WITH_STANDBY(x) (x >= 0x02 && x <= 0x7F) |
#define | APM_LEVEL_MIN_POWER_WITHOUT_STANDBY(x) (x == 0x80) |
#define | APM_LEVEL_INT_POWER_WITHOUT_STANDBY(x) (x >= 0x81 && x <= 0xFD) |
#define | APM_LEVEL_MAX_PERFORMANCE(x) (x == 0xFE) |
#define | SCT_TRANSPORT_SUPPORTED(x) (x & 1) |
#define | SCT_DATA_TABLES_SUPPORTED(x) (x & (1 << 5)) |
#define | SCT_FEATURES_CTRL_SUPPORTED(x) (x & (1 << 4)) |
#define | SCT_ERROR_RECOVERY_CTRL_SUPPORTED(x) (x & (1 << 3)) |
#define | SCT_WRITE_SAME_SUPPORTED(x) (x & (1 << 2)) |
#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 |
#define | MAX_SOFTWARE_RECORDS 1000 |
#define | MAX_SOFTWARE_NAME_LEN 128 |
#define | MAX_USER_NAME_LEN 64 |
Enumerations | |
enum | CPU_OCLK { CPU_OVERCLOCKED_UNKNOWN = 0, CPU_OVERCLOCKED = 1, CPU_UNDERCLOCKED = 2, CPU_OVERCLOCKED_NO = 3, CPU_MAXVAL = 4 } |
enum | CPUINFO_STATUS { CPUINFO_SUCCESS = 0, CPUINFO_ACCESS_DENIED = 1, CPUINFO_INIT_DIRECTIO = 2, CPUINFO_DIRECTIO_VERSION = 3, CPUINFO_NOT_ALL_CPUS_AVAILABLE = 4 } |
Return code for SysInfoDll_GetCPUInfo. More... | |
enum | SPDINFO_STATUS { SPDINFO_SUCCESS = 0, SPDINFO_ACCESS_DENIED = 1, SPDINFO_INIT_DIRECTIO = 2, SPDINFO_DIRECTIO_VERSION = 3, SPDINFO_ACCESS_COLLISION = 4 } |
Return code for SysInfoDll_GetMemSPDInfo. More... | |
enum | MEMTIMINGS_STATUS { MEMTIMINGS_SUCCESS = 0, MEMTIMINGS_ACCESS_DENIED = 1, MEMTIMINGS_INIT_DIRECTIO = 2, MEMTIMINGS_DIRECTIO_VERSION = 3, MEMTIMINGS_UNSUPPORTED = 4 } |
Return code for SysInfoDll_GetMemTimings. More... | |
enum | RAMTYPE { RAMTYPE_UNDEFINED = 0, RAMTYPE_OTHER, RAMTYPE_UNKNOWN, RAMTYPE_DRAM, RAMTYPE_EDRAM, RAMTYPE_VRAM, RAMTYPE_SRAM, RAMTYPE_RAM, RAMTYPE_ROM, RAMTYPE_FLASH, RAMTYPE_EEPROM, RAMTYPE_FEPROM, RAMTYPE_EPROM, RAMTYPE_CDRAM, RAMTYPE_3DRAM, RAMTYPE_SDRAM, RAMTYPE_SGRAM, RAMTYPE_RDRAM, RAMTYPE_DDR, RAMTYPE_DDR2, RAMTYPE_DDR2_FB_DIMM, RAMTYPE_DDR3 = 0x18, RAMTYPE_FBD2, RAMTYPE_DDR4, RAMTYPE_LPDDR, RAMTYPE_LPDDR2, RAMTYPE_LPDDR3, RAMTYPE_LPDDR4, RAMTYPE_LNVD, RAMTYPE_HBM, RAMTYPE_HBM2, RAMTYPE_DDR5, RAMTYPE_LPDDR5, RAMTYPE_HBM3, RAMTYPE_TERMINATOR } |
enum | SMB_STATUS { SMBERR_SUCCESS, SMBERR_MEMALLOC, SMBERR_INIT_DIRECTIO, SMBERR_NO_SMBIOS, SMBERR_ACCESS_DENIED, SMBERR_FAILURE, SMBERR_BUFFER_TOO_SMALL } |
enum | SYSINFO_FORMAT_TYPE { FORMAT_TEXT = 0, FORMAT_HTML, FORMAT_TEXT_CLIPBOARD } |
enum | NVME_SMART_ATTR { NVME_ATTR_CRITICAL_WARN, NVME_ATTR_TEMPERATURE, NVME_ATTR_AVAILABE_SPARE, NVME_ATTR_AVAILABLE_SPARE_THRESHOLD, NVME_ATTR_PERCENTAGE_USED, NVME_ATTR_DATA_UNITS_READ, NVME_ATTR_DATA_UNITS_WRITTEN, NVME_ATTR_HOST_READ_COMMANDS, NVME_ATTR_HOST_WRITE_COMMANDS, NVME_ATTR_CONTROLLER_BUSY_TIME, NVME_ATTR_POWER_CYCLES, NVME_ATTR_POWER_ON_HOURS, NVME_ATTR_UNSAFE_SHUTDOWNS, NVME_ATTR_MEDIA_ERRORS, NVME_ATTR_NUM_ERR_INFO_LOG_ENTRIES } |
NVME SMART Attribute IDs. More... | |
enum | SMART_TYPE { SMART_TYPE_ATA = 0, SMART_TYPE_NVME = 1 } |
enum | SMART_SELFTEST { SMART_SELFTEST_ABORT = 0, SMART_SELFTEST_SHORT = 1, SMART_SELFTEST_EXT = 2, SMART_SELFTEST_CONVEYANCE = 3, SMART_SELFTEST_SELECTIVE = 4, SMART_SELFTEST_MAX = 5 } |
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 const wchar_t * | SysInfoDll_GetVersion (void) |
Call this function to retrieve the SysInfo DLL version. This function returns a pointer to constant characters (via use of a static buffer). Attempting to change the value(s) of constant characters is an error. No attempt should be made to free the character buffer returned by this function. | |
SYSINFO_API BOOL | SysInfoDll_StartLogging (LPWSTR lpszPath) |
Call this function to begin writing SysInfo log information into a file. | |
SYSINFO_API BOOL | SysInfoDll_StartLoggingExisting (FILE *fp) |
Call this function to begin writing SysInfo log information into an existng file managed by the calling application. | |
SYSINFO_API BOOL | SysInfoDll_StopLogging (void) |
Call this function to stop writing SysInfo log information. | |
SYSINFO_API BOOL | SysInfoDll_GetLastErrorString (LPWSTR lpszError, DWORD dwsize) |
Call this function to retrieve the last error as a string. | |
SYSINFO_API VOID | SysInfo_TurnDebugMessageBoxesOn () |
Call this function to start debug logging with MessageBoxes being displayed. Logging must be turned on prior to this. | |
SYSINFO_API VOID | SysInfo_TurnDebugMessageBoxesOff () |
Call this function to stop debug logging with MessageBoxes being displayed. | |
SYSINFO_API BOOL | SysInfoDll_GetComputerName (LPWSTR lpBuffer, LPDWORD nSize) |
Call this function to return the computer's NetBIOS name as a string. | |
SYSINFO_API const wchar_t * | SysInfoDll_GetOS (LPWSTR lpszOS, int iLen) |
Call this function to retrieve the OS version information as a string. | |
SYSINFO_API BOOL | SysInfoDll_GetOSEx (LPOSVERSIONINFOW lpVersionInformation) |
Call this function to retrieve the OS version information. | |
SYSINFO_API int | SysInfoDll_GetCPUInfo (CPUINFO *pCPUinfo) |
Call this function to return the CPU information structure. | |
SYSINFO_API int | SysInfoDll_GetCPUInfoMin (CPUINFO *pCPUinfo) |
Call this function to return the CPU information structure (with reduced low level infomration). | |
SYSINFO_API BOOL | SysInfoDll_GetMemoryInfo (MEMORYSTATUSEX *pMemInfoEx) |
Call this function to return the Memory information structure. | |
SYSINFO_API int | SysInfoDll_GetMemSPDInfo (MEMMODULEINFO *pMemModuleInfo) |
Call this function to retrieve the SPD information from all memory modules. | |
SYSINFO_API int | SysInfoDll_GetMemTemps (MEMTEMPINFO *pMemTempInfo) |
Call this function to retrieve the temperature information from all memory modules. | |
SYSINFO_API int | SysInfoDll_GetMemTimings (MEMTIMINGSINFO *pMemTimingsInfo) |
Call this function to retrieve the configured memory timings. | |
SYSINFO_API BOOL | SysInfoDll_GetGraphicsInfo (MULTIMONITOR_DYN *MM, DISPLAY_DEVICES *DD, LPWSTR szSummary, int iLen) |
Call this function to retrieve the monitor and display devices information, as well as a summary string. | |
SYSINFO_API bool | SysInfoDll_CheckWhichCardUsed (wchar_t *appName, bool *usingIntegrated, char lastPrograms[50][256]) |
Call this function to check if application name was run on discrete or integrated video card. | |
SYSINFO_API wchar_t * | SysInfoDll_GetGraphicsSummaryLine (wchar_t *szSummary, int iLen) |
Call this function to retrieve a summary string for the system graphics hardware. | |
SYSINFO_API BOOL | SysInfoDll_GetUSBInfo (USB_HOST_CONTROLLERS *USBHostControllers) |
Call this function to retrieve the USB controller and device information. | |
SYSINFO_API BOOL | SysInfoDll_GetBiometricsInfo (SYSINFO_BIOMETRICS *Biometrics) |
Call this function to retrieve the Biometrics device information (like fingerprint scanners). | |
SYSINFO_API BOOL | SysInfoDll_GetSystemInfo_WMI (SYSINFO_WMI *SysInfo) |
Call this function to return system information via WMI (Windows Management Information). | |
SYSINFO_API BOOL | SysInfoDll_GetSystemInfo_WMI_async (SYSINFO_WMI *SysInfo_WMI) |
Call this function to return system information via WMI (Windows Management Information). | |
SYSINFO_API BOOL | SysInfoDll_GetSystemInfo_WMI_async_complete (SYSINFO_WMI *SysInfo, int *iProgressPercent) |
Call this function to check whether the system information from a previous call to SysInfoDll_GetSystemInfo_WMI_async is available. | |
int | SysInfoDll_GetHDDetails (PHYSICALDRIVEINFO *PhyscialDriveInfo) |
Call this function to return system physcial disk information via WMI (Windows Management Information). This is a subset of the SysInfoDll_GetSystemInfo_WMI API. The call is synchronous. | |
int | SysInfoDll_GetBaseBoardDetails (BASEBOARDINFO *BaseBoardInfo) |
Call this function to return system baseboard via WMI (Windows Management Information). This is a subset of the SysInfoDll_GetSystemInfo_WMI API. The call is synchronous. | |
SYSINFO_API wchar_t * | SysInfoDll_GetHDDSummaryLine (SYSINFO_WMI *SysInfo_WMI, wchar_t *line, int iLen) |
Call this function to get the physical disk system information. This is a subset of the SysInfoDll_GetSystemInfo_WMI() API. | |
HRESULT | SysInfoDll_GetIMAPI2OpticalBurners (wchar_t szIMAPI2BurnersSummary[MAXBURNERSTRLEN], wchar_t szIMAPI2Burners[MAXNUMCDDVD][MAXBURNERSTRLEN], IMAPI_INFO *pIMAPI_Drives) |
Call this function to retrieve a information about all of the IMAPI 2 optical drive burners on the system. | |
SYSINFO_API int | SysInfoDll_GetSystemInfo_SMBIOS (SYSINFO_SMBIOS *SysInfo) |
Call this function to return system information via SMBIOS (System Management BIOS). | |
SYSINFO_API int | SysInfoDll_GetSystemInfo_SMBIOS_RAMInfo (RAMINFO_SMBIOS_EX *RAMInfo, int *ioNumRAMInfo) |
Call this function to return RAM information via SMBIOS (System Management BIOS). | |
SYSINFO_API DWORD | SysInfoDll_GetPartitionInfo (PHYSDISK *PhyDisks[MAX_NUM_PHYSDISKS]) |
Call this function to return Disk Partition information from the Partition table and Master Boot Record for NTFS and FAT partitions. | |
SYSINFO_API DWORD | SysInfoDll_GetPartitionInfoAll (PHYSDISK *PhyDisks[MAX_NUM_PHYSDISKS]) |
Call this function to return Disk Partition information via Partition table and Master Boot Record. | |
SYSINFO_API DWORD | SysInfoDll_ScanPartitionTableBlock (HANDLE hDrive, DWORD wDrive, PHYSDISK *Disk) |
Call this function to return Disk Partition information (for a single disk) via Partition table and Master Boot Record. Requries the disk to be opened before calling. | |
SYSINFO_API BOOL | SysInfoDll_GetAll (LPWSTR szComputerName, LPWSTR szszOSName, CPUINFO *pCPUinfo, MEMORYSTATUSEX *pMemInfoEx, MULTIMONITOR_DYN *MM, DISPLAY_DEVICES *DD, LPWSTR szGraphicsSummary, SYSINFO_WMI *SysInfo_WMI, SYSINFO_SMBIOS *SysInfo_SMBIOS, USB_HOST_CONTROLLERS *USBHostControllers) |
Call this function to get the aggregate of all of the system information calls above. | |
SYSINFO_API BOOL | SysInfoDll_GetAll_async (LPWSTR szComputerName, LPWSTR szszOSName, CPUINFO *pCPUinfo, MEMORYSTATUSEX *pMemInfoEx, MULTIMONITOR_DYN *MM, DISPLAY_DEVICES *DD, LPWSTR szGraphicsSummary, SYSINFO_WMI *SysInfo_WMI, SYSINFO_SMBIOS *SysInfo_SMBIOS, USB_HOST_CONTROLLERS *USBHostControllers) |
Call this function to get the aggregate of all of the system information calls above. | |
SYSINFO_API BOOL | SysInfoDll_FormatAll (SYSINFO_FORMAT_TYPE Format, LPWSTR szComputerName, LPWSTR szOSName, CPUINFO *pCPUinfo, MEMORYSTATUSEX *pMemInfoEx, MEMMODULEINFO *pMemModuleInfo, MEMTIMINGSINFO *pMemTimingsInfo, MULTIMONITOR_DYN *MM, DISPLAY_DEVICES *DD, LPWSTR szGraphicsSummary, SYSINFO_WMI *SysInfo_WMI, SYSINFO_SMBIOS *SysInfo_SMBIOS, USB_HOST_CONTROLLERS *USBHostControllers, LPWSTR pszRes, int *iResLen) |
Call this function to format all system information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatAll2 (SYSINFO_FORMAT_TYPE Format, LPWSTR szComputerName, LPWSTR szOSName, CPUINFO *pCPUinfo, MEMORYSTATUSEX *pMemInfoEx, MEMMODULEINFO *pMemModuleInfo, MULTIMONITOR_DYN *MM, DISPLAY_DEVICES *DD, LPWSTR szGraphicsSummary, SYSINFO_WMI *SysInfo_WMI, SYSINFO_SMBIOS *SysInfo_SMBIOS, USB_HOST_CONTROLLERS *USBHostControllers, IMAPI_INFO *pIMAPI_Drives, LPWSTR pszRes, int *iResLen) |
Call this function to format all system information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatSummary (SYSINFO_FORMAT_TYPE Format, LPWSTR szComputerName, LPWSTR szOSName, CPUINFO *pCPUinfo, MEMORYSTATUSEX *pMemInfoEx, LPWSTR szGraphicsSummary, SYSINFO_WMI *SysInfo_WMI, SYSINFO_SMBIOS *SysInfo_SMBIOS, LPWSTR pszRes, int *iResLen) |
Call this function to format all system information (summary only) into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatSummary2 (SYSINFO_FORMAT_TYPE Format, wchar_t *szComputerName, wchar_t *szOSName, CPUINFO *pCPUinfo, MEMORYSTATUSEX *pMemInfoEx, wchar_t *szGraphicsSummary, SYSINFO_WMI *SysInfo_WMI, SYSINFO_SMBIOS *SysInfo_SMBIOS, IMAPI_INFO *pIMAPI_Drives, wchar_t *pszRes, int *iResLen) |
Call this function to format all system information (summary only) into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatGeneral (SYSINFO_FORMAT_TYPE Format, LPWSTR szComputerName, SYSINFO_WMI *SysInfo_WMI, SYSINFO_SMBIOS *SysInfo_SMBIOS, LPWSTR pszRes, int *iResLen) |
Call this function to format the general system information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatGeneralExtended (SYSINFO_FORMAT_TYPE Format, LPWSTR szComputerName, SYSINFO_WMI *SysInfo_WMI, SYSINFO_SMBIOS *SysInfo_SMBIOS, SYSINFO_GENERIC_ENTRIES *SysInfo_Generic, LPWSTR pszRes, int *iResLen) |
SYSINFO_API BOOL | SysInfoDll_FormatPCI (SYSINFO_FORMAT_TYPE Format, LPWSTR pszRes, int *iResLen) |
Call this function to format the PCI information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatCPU (SYSINFO_FORMAT_TYPE Format, CPUINFO *pCPUinfo, LPWSTR pszRes, int *iResLen) |
Call this function to format the CPU information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatMemory (SYSINFO_FORMAT_TYPE Format, MEMORYSTATUSEX *pMemInfoEx, SYSINFO_WMI *SysInfo_WMI, SYSINFO_SMBIOS *SysInfo_SMBIOS, MEMMODULEINFO *pMemModuleInfo, MEMTIMINGSINFO *pMemTimingsInfo, LPWSTR pszRes, int *iResLen) |
Call this function to format the Memory information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatMemSPD (SYSINFO_FORMAT_TYPE Format, MEMMODULEINFO *pMemModuleInfo, LPWSTR pszRes, int *iResLen) |
Call this function to format the Memory SPD information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatMemSPD_Short (SYSINFO_FORMAT_TYPE Format, MEMMODULEINFO *pMemModuleInfo, LPWSTR pszRes, int *iResLen) |
Call this function to format the Memory SPD information into a string (for reporting purposes) with much less information than SysInfoDll_FormatMemSPD. | |
SYSINFO_API BOOL | SysInfoDll_FormatGraphics (SYSINFO_FORMAT_TYPE Format, MULTIMONITOR_DYN *MM, DISPLAY_DEVICES *DD, LPWSTR szGraphicsSummary, LPWSTR pszRes, int *iResLen) |
Call this function to format the Monitor/Display Device information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatDiskVolumes (SYSINFO_FORMAT_TYPE Format, SYSINFO_WMI *SysInfo_WMI, LPWSTR pszRes, int *iResLen) |
Call this function to format the Disk volume information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatDiskDrives (SYSINFO_FORMAT_TYPE Format, SYSINFO_WMI *SysInfo_WMI, LPWSTR pszRes, int *iResLen) |
Call this function to format the Disk drive information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatOpticalDrives (SYSINFO_FORMAT_TYPE Format, SYSINFO_WMI *SysInfo_WMI, LPWSTR pszRes, int *iResLen) |
Call this function to format the Optical drive information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatOpticalDrives2 (SYSINFO_FORMAT_TYPE Format, SYSINFO_WMI *SysInfo_WMI, IMAPI_INFO *pIMAPI_Drives, wchar_t *pszRes, int *iResLen) |
Call this function to format the Optical drive information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatNetwork (SYSINFO_FORMAT_TYPE Format, SYSINFO_WMI *SysInfo_WMI, LPWSTR pszRes, int *iResLen) |
Call this function to format the Network information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatPorts (SYSINFO_FORMAT_TYPE Format, SYSINFO_WMI *SysInfo_WMI, LPWSTR pszRes, int *iResLen) |
Call this function to format the Port information into a string (for reporting purposes). | |
SYSINFO_API BOOL | SysInfoDll_FormatUSB (SYSINFO_FORMAT_TYPE Format, USB_HOST_CONTROLLERS *USBHostControllers, LPWSTR pszRes, int *iResLen) |
Call this function to format the USB controller and device information into a string (for reporting purposes). | |
SYSINFO_API int | SysInfoDll_Smart_Init (bool debug, wchar_t *iDebugFile=NULL, bool iRecordTEC=true) |
Call this function to initialize usage of the SMART set of APIs. | |
SYSINFO_API void | SysInfoDll_Smart_Cleanup (void) |
Call this function to clean up memory usage of the DLL after finishing all calls to SysInfo SMART APIs. It de-allocates all memory that was allocated and used by SmartDisk DLL. Calling subsequent SmartDll API calls after SmartDll_Cleanup is an error. | |
SYSINFO_API int | SysInfoDll_Smart_Refresh (bool iRecordTEC=false) |
Call this function to refresh (and re-probe) all SMART devices. If iRecordTEC is true, it records S.M.A.R.T. values for all the available S.M.A.R.T. devices discovered. | |
SYSINFO_API int | SysInfoDll_Smart_SetInitTimeout (DWORD iTimeoutMs) |
Call this function to set the timeout for retrieving SMART info from a drive. | |
SYSINFO_API int | SysInfoDll_Smart_GetNumSmartDevices (void) |
Call this function to return the total number of SMART devices detected. | |
SYSINFO_API int | SysInfoDll_Smart_GetNumDetectedDrives (void) |
Call this function to return the total number of physical drives detected. | |
SYSINFO_API int | SysInfoDll_Smart_GetPhysicalDeviceIDFirst (void) |
Returns the device ID of the first physical device detected. | |
SYSINFO_API int | SysInfoDll_Smart_GetPhysicalDeviceIDNext (void) |
Returns the device ID of the next physical device detected. | |
SYSINFO_API int | SysInfoDll_Smart_IsValidSmartDevice (int iDeviceID) |
Checks if a particular device ID is a SMART device. | |
SYSINFO_API int | SysInfoDll_Smart_GetDevicePartitionInfo (int *ioDriveNumSameDisk, int *ioNumPartition, int iDeviceID) |
Checks if a particular device ID belongs has multiple partitions. | |
SYSINFO_API int | SysInfoDll_Smart_GetDriveLetterFromDriveNum (wchar_t *ioDriveLetter, int iDriveNum) |
Get the drive letter from the drive number. | |
SYSINFO_API int | SysInfoDll_Smart_GetDeviceIDFromDriveNum (int iDriveNum) |
Get the device ID from the drive number. | |
SYSINFO_API int | SysInfoDll_Smart_GetDeviceSerialNumber (wchar_t *ioBuf, int *ioLen, int iDeviceID) |
Get the serial number of the device. | |
SYSINFO_API int | SysInfoDll_Smart_GetDeviceFirmWareRev (wchar_t *ioBuf, int *ioLen, int iDeviceID) |
Get the firmware revision number of the device. | |
SYSINFO_API int | SysInfoDll_Smart_GetDeviceModelNumber (wchar_t *ioBuf, int *ioLen, int iDeviceID) |
Get the device model number of the device. | |
SYSINFO_API int | SysInfoDll_Smart_GetDeviceCapacity (int *ioCapacity, int iDeviceID) |
Get the capacity of the device in MB . | |
SYSINFO_API int | SysInfoDll_Smart_GetDeviceInterface (wchar_t *ioBuf, int *ioLen, bool *isSSD, int iDeviceID) |
Get the interface type of the device and return if marked as SSD. | |
SYSINFO_API int | SysInfoDll_Smart_GetVolumeCapacity (int *ioCapacity, int iDriveNum) |
Get the capacity of a volume in MB . | |
SYSINFO_API int | SysInfoDll_Smart_GetSmartDeviceIDFirst (void) |
Returns the device ID of the first SMART device detected. | |
SYSINFO_API int | SysInfoDll_Smart_GetSmartDeviceIDNext (void) |
Returns the device ID of the next SMART device detected. | |
SYSINFO_API int | SysInfoDll_Smart_GetNumSmartAttr (int iDeviceID) |
Returns the number of SMART attributes for a SMART device. | |
SYSINFO_API int | SysInfoDll_Smart_GetSmartAttributeIDFirst (int iDeviceID) |
Returns the first discovered attribute ID of the SMART device. | |
SYSINFO_API int | SysInfoDll_Smart_GetSmartAttributeIDNext (int iDeviceID) |
Returns the next discovered attribute ID of the SMART device. | |
SYSINFO_API int | SysInfoDll_Smart_RefreshSmartAttributes (int iDeviceID) |
Refresh the SMART attributes for a SMART device. | |
SYSINFO_API int | SysInfoDll_Smart_ExecuteSelfTest (int iDeviceID, int iTestType) |
Execute a SMART self-test routine. | |
SYSINFO_API int | SysInfoDll_Smart_GetSelfTestStatus (int iDeviceID, int *ioStatus, int *ioPercentRem) |
Retrieve the status of a previously executed SMART self-test routine. | |
SYSINFO_API int | SysInfoDll_Smart_GetMaxLBA (int iDeviceID, unsigned long long *oMaxLBA) |
Retrieve maximum valid LBA for a device (HPA). | |
SYSINFO_API int | SysInfoDll_Smart_GetMax28bitLBA (int iDeviceID, unsigned int *oMaxLBA) |
Retrieve maximum valid 28-bit LBA for a device (HPA). | |
SYSINFO_API int | SysInfoDll_Smart_SetMaxLBA (int iDeviceID, unsigned long long iMaxLBA) |
Set the maximum allowable LBA for a device (HPA). | |
SYSINFO_API int | SysInfoDll_Smart_GetDCOMaxLBA (int iDeviceID, unsigned long long *oMaxLBA) |
Retrieve highest LBA accepted by a device (DCO). | |
SYSINFO_API int | SysInfoDll_Smart_SetDCOMaxLBA (int iDeviceID, unsigned long long iMaxLBA) |
Set the maximum valid LBA for a device (DCO). | |
SYSINFO_API int | SysInfoDll_Smart_RestoreDCO (int iDeviceID) |
Restore the DCO to default settings. | |
SYSINFO_API int | SysInfoDll_Smart_ReadSectors (int iDeviceID, unsigned long long iLBA, unsigned int iNumSectors, unsigned char *oBuffer) |
Read sectors from a device. | |
SYSINFO_API int | SysInfoDll_Smart_GetSmartAttributeByID (void *ioPtr, int *ioLen, int iAttrID, int inAttrType, int iDeviceID) |
Get the attribute value of a particular attribute ID for a SMART device. | |
SYSINFO_API int | SysInfoDll_Smart_GetAttrDescByID (wchar_t *oBuf, int *ioLen, int iAttrID, int iDeviceID) |
Get the attribute description of a particular attribute ID. | |
SYSINFO_API int | SysInfoDll_Smart_GetDeviceInfo (DEVICEINFO *oDeviceInfo, int iDeviceID) |
Get the device information (such as disk geometry, interface, supported/enabled features). | |
SYSINFO_API int | SysInfoDll_Smart_ExportReport (wchar_t *filename, int iDeviceID, wchar_t *iHeaderText, int iHeaderTextLen, int iExportFlags=3, int iHistoryAttr=0) |
Exports an ASCII text report containing the device information, SMART attribute values and history. | |
SYSINFO_API int | SysInfoDll_Smart_RecordTECData (int iDeviceID) |
Records the current set of normalized and raw attribute values to a binary file for use with TEC prediction. | |
SYSINFO_API int | SysInfoDll_Smart_GetTECDataSetCount (int *ioCount, int iDeviceID) |
Get number of TEC prediction data sets recorded for a particular SMART device. | |
SYSINFO_API int | SysInfoDll_Smart_ExportTECData (time_t *ioTimeArray, int *ioNormValArray, int *ioWorstValArray, unsigned long long *ioRawValArray, int *ioArraySize, int iAttrID, int iDeviceID) |
Extract the TEC prediction data for a particular attribute of a SMART device. | |
SYSINFO_API int | SysInfoDll_Smart_GetTECDataAtIndex (time_t *ioTime, int *ioNormVal, int *ioWorstVal, unsigned long long *ioRawVal, int inIndex, int iAttrID, int iDeviceID) |
Extract a particular TEC prediction data entry for a particular attribute of a SMART device. | |
SYSINFO_API int | SysInfoDll_Smart_EstimateTECByAttributeID (time_t *ioEarliest, time_t *ioLatest, int iAttrID, int iDeviceID) |
Predicts TEC based on previously recorded TEC prediction data for a particular attribute of a SMART device. | |
SYSINFO_API int | SysInfoDll_Smart_EstimateTEC (time_t *ioEarliest, time_t *ioLatest, int *oAttrID, int iDeviceID) |
Predicts TEC based on previously recorded TEC prediction data for all applicable attributes of a SMART device. | |
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[]). | |
SYSINFO_API int | SysInfoDll_GetInstalledProgramsSystem (SOFTWARE_LIST *swl) |
Gets an array of all software installed on the system. | |
SYSINFO_API int | SysInfoDll_GetInstalledProgramsUser (SOFTWARE_LIST *swl) |
Gets an array of the software installed on the system for the current user. | |
SYSINFO_API int | SysInfoDll_GetInstalledAppsSystem (SOFTWARE_LIST *swl) |
Gets an array of the apps installed on the system. | |
SYSINFO_API int | SysInfoDll_GetInstalledAppsUser (SOFTWARE_LIST *swl) |
Gets an array of the apps installed on the system for the current user. | |
SYSINFO_API void | SysInfoDll_GetInstalledPrograms_ReleaseMem (SOFTWARE_LIST *swl) |
Release any memory allcoated by SysInfoDll_GetInstalledProgramsSystem() or SysInfoDll_GetInstalledProgramsUser(). |
#define SYSINFO_API extern "C" __declspec(dllexport) |
#define INET6_ADDRSTRLEN 65 |
#define INET_ADDRSTRLEN 22 |
#define VSHORT_STRING_LEN 16 |
#define SHORT_STRING_LEN 64 |
#define LONG_STRING_LEN 256 |
#define VLONG_STRING_LEN 1024 |
#define MAXBIOMETRICS 20 |
#define MAXBIOLEN 256 |
SYSINFO_API BOOL SysInfoDll_GetBiometricsInfo | ( | SYSINFO_BIOMETRICS * | Biometrics | ) |
Call this function to retrieve the Biometrics device information (like fingerprint scanners).
[out] | Biometrics | Pointer to a structure to store the Biometrics information |