PpmFireWmiEvent

NTSTATUS __stdcall PpmFireWmiEvent(VOID *Context, _GUID *Guid, UINT64 DataSize, VOID *DataPtr){
  size_t v5; 
  int v6; 
  tagWNODE_SINGLE_INSTANCE *v7; 
  tagWNODE_SINGLE_INSTANCE *v8; 

  v5 = DataSize;
  if( !*((_DWORD *)Context + 2) )
    return -1073741823;
  v7 = PpmAllocWmiEvent(Context, Guid, (unsigned int)DataSize, (UINT64)DataPtr);
  v8 = v7;
  if( !v7 )
    return -1073741670;
  if( DataPtr )
    memmove((char *)v7 + v7->DataBlockOffset, DataPtr, v5);
  v6 = IoWMIWriteEvent(v8);
  if( v6 >= 0 )
    return 0;
  ExFreePoolWithTag(v8, 0x774D5050u);
  return v6;
}

Referenced by:

PopFireThermalWmiEvent
PpmEventDomainPerfStateChange
PpmEventLegacyProcessorPerfStateChange
PpmEventThermalCapChange