PpmFireWmiEvent
INT64 __stdcall PpmFireWmiEvent(VOID *Context, GUID *Guid, UINT64 DataSize, VOID *DataPtr){
UINT64 v5;
NTSTATUS v6;
tagWNODE_SINGLE_INSTANCE *v7;
tagWNODE_SINGLE_INSTANCE *v8;
v5 = (unsigned int)DataSize;
if( *((_DWORD *)Context + 2) )
{
v7 = PpmAllocWmiEvent(Context, Guid, (unsigned int)DataSize);
v8 = v7;
if( v7 )
{
if( DataPtr )
memmove((UINT8 *)v7 + v7->DataBlockOffset, (UINT8 *)DataPtr, v5);
v6 = IoWMIWriteEvent(v8);
if( v6 >= 0 )
return 0;
else
ExFreePoolWithTag(v8, 0x774D5050u);
}
else
{
return(unsigned int)-1073741670;
}
}
else
{
return(unsigned int)-1073741823;
}
return(unsigned int)v6;
}Referenced by:
PopFireThermalWmiEvent
PpmEventDomainPerfStateChange
PpmEventLegacyProcessorPerfStateChange
PpmEventThermalCapChange