External applications

AIDA64 offers the following options to share sensor readings with external applications: shared memory, Registry, WMI (Windows Management Instrumentation) and Rivatuner OSD Server.

Enable shared memory

One of the most common ways to share information between Windows applications is shared memory. The AIDA64 hardware monitoring module uses the shared memory “AIDA64_SensorValues”.

The shared memory content is a long string value ending in a 0x00 char, making it a classic PChar or char*.

The string is made of XML tags, but it is not a complete XML document. It includes all temperature, cooling fan and voltage values AIDA64 can measure. Temperatures are always in Celsius, even if Fahrenheit is selected in the Preferences menu. Sensor value labels are always displayed in English, they are not localized.

The buffer size (the size of the shared memory block) has to be at least 10 KB. A typical buffer size is around 1 to 3 KB, but for Abit MicroGuru 2005 based boards, for example, it can be a lot more.

 

For reading the contents of the shared memory, a code similar to the following Delphi procedure can be used:

Const

sharedmem_name = 'AIDA64_SensorValues';

Function ExtApp_SharedMem_ReadBuffer(bu:PChar;bu_size:DWord):Boolean;

Var

mappedData : PChar;

th : THandle;

Begin

Result:=False;

th:=OpenFileMapping(FILE_MAP_READ,False,sharedmem_name);

If th<>INVALID_HANDLE_VALUE Then

Begin

mappedData:=MapViewOfFile(th,FILE_MAP_READ,0,0,0);

If mappedData<>Nil Then

Begin

StrLCopy(bu,mappedData,bu_size);

If UnmapViewOfFile(mappedData) Then Result:=True;

End;

CloseHandle(th);

End;

End;

Here is a shared memory output example:

 

Enable writing sensor values to Registry

When we choose to share sensor values with external applications through the Windows Registry, sensor values are written to the following Windows Registry path:

HKEY_CURRENT_USER\Software\FinalWire\AIDA64\SensorValues

When AIDA64 is closed, it deletes both the registry path and the values it contains from the Registry. Temperatures are always in Celsius, even if Fahrenheit is selected in the Preferences menu. Sensor value labels are always displayed in English, they are not localized.

Here is an example of how sensor values appear in the Registry:

 

Enable writing sensor values to WMI

When we choose to share sensor values with external applications through the WMI, sensor values are written to the following WMI path:

Root\WMI\AIDA64_SensorValues

When AIDA64 is closed, it deletes both the path and the values it contains from the WMI. Temperatures are always in Celsius, even if Fahrenheit is selected in the Preferences menu. Sensor value labels are always displayed in English, they are not localized.

 

Enable writing sensor values to Rivatuner OSD Server

When we choose this option, AIDA64 shares sensor readings (temperatures, voltage and fan readings) with Rivatuner's OSD Server through the shared memory “RTSSSharedMemoryV2”. Rivatuner OSD Server is capable of displaying these values on an OSD panel even during full-screen 3D games or video playback.