PopThermalWriteShutdownToRegistry
VOID __stdcall PopThermalWriteShutdownToRegistry(){
VOID *v0;
__int64 v1;
WCHAR v2;
VOID *v3;
__int64 v4;
UINT64 DataSize;
UINT64 DataSizea;
_UNICODE_STRING DestinationString;
_UNICODE_STRING ValueName;
_UNICODE_STRING v9;
int Data;
VOID *KeyHandle;
KeyHandle = 0i64;
v3 = v0;
v4 = v1;
DestinationString = 0i64;
ValueName = 0i64;
v9 = 0i64;
if( (int)PopOpenThermalLoggingKey(0, &KeyHandle, v2) >= 0 )
{
RtlInitUnicodeString(&DestinationString, L"ShutdownOccurred");
RtlInitUnicodeString(&ValueName, L"ShutdownSource");
RtlInitUnicodeString(&v9, L"ShutdownTemperature");
LODWORD(DataSize) = 4;
Data = 1;
ZwSetValueKey(KeyHandle, &DestinationString, 0i64, 4ui64, &Data, DataSize);
if( !PopThermalCriticalShutdownReported )
{
if( v4 )
{
LODWORD(DataSizea) = *(unsigned __int16 *)(v4 + 2);
ZwSetValueKey(KeyHandle, &ValueName, 0i64, 1ui64, *(VOID **)(v4 + 8), DataSizea);
}
if( v3 )
{
LODWORD(DataSizea) = 4;
ZwSetValueKey(KeyHandle, &v9, 0i64, 4ui64, v3, DataSizea);
}
}
PopThermalCriticalShutdownReported = 1;
if( KeyHandle )
ZwClose((_HANDLE)KeyHandle);
}
}Referenced by:
PopCheckAndHandleThermalConditions
PopThermalProcessUsermodeEvent