PpmEventProcessorPerfStateChange
INT64 __fastcall PpmEventProcessorPerfStateChange(
_HHIVE *Hive,
_CM_KEY_NODE *Parent,
_UNICODE_STRING *ValueName,
UINT64 Index,
HSTORAGE_TYPE StorageType){
INT64 result;
EVENT_DESCRIPTOR *v7;
EVENT_DESCRIPTOR *v8;
UINT64 v9;
_CELL_DATA *(__fastcall *GetCellRoutine)(_HHIVE *, unsigned int, _HV_GET_CELL_CONTEXT *);
UINT64 UserDataCount;
int v12;
int v13;
int v14;
int v15;
EVENT_DATA_DESCRIPTOR UserData;
int *v17;
__int64 v18;
INT64 v19[2];
__int64 v20;
__int64 v21;
__int64 v22;
__int64 v23;
__int64 v24;
__int64 v25;
__int64 v26;
__int64 v27;
__int64 v28;
__int64 v29;
__int64 v30;
__int64 v31;
int *v32;
__int64 v33;
int *v34;
__int64 v35;
int *v36;
__int64 v37;
int v38;
int v39;
v39 = (int)ValueName;
v38 = (int)Parent;
v12 = 0;
result = PpmEventGetEventDescriptorAndProcessorId(
(INT64)Hive,
(INT64)&PPM_ETW_PROCESSOR_PERF_STATE_CHANGE,
(INT64)&PPM_ETW_PROCESSOR_PERF_STATE_CHANGE_HV,
(INT64)&v12,
(INT64)v19);
v8 = (EVENT_DESCRIPTOR *)result;
if( PpmEtwRegistered )
{
v9 = PpmEtwHandle;
LOBYTE(result) = EtwEventEnabled(PpmEtwHandle, (EVENT_DESCRIPTOR *)result, v7);
if( (_BYTE)result )
{
GetCellRoutine = Hive->GetCellRoutine;
v13 = *((_DWORD *)GetCellRoutine + 16);
v14 = *((_DWORD *)GetCellRoutine + 19);
UserData.Ptr = (unsigned __int64)&v13;
v17 = &v14;
v20 = (__int64)GetCellRoutine + 72;
v22 = (__int64)GetCellRoutine + 88;
v24 = (__int64)GetCellRoutine + 80;
v26 = (__int64)GetCellRoutine + 84;
v28 = (__int64)GetCellRoutine + 92;
v30 = (__int64)GetCellRoutine + 96;
*(_QWORD *)&UserData.Size = 4i64;
v18 = 4i64;
v21 = 4i64;
v23 = 4i64;
v25 = 4i64;
v27 = 4i64;
v29 = 4i64;
v31 = 4i64;
v15 = *((unsigned __int8 *)GetCellRoutine + 100);
v32 = &v15;
v34 = &v38;
v36 = &v39;
LODWORD(UserDataCount) = 12;
v33 = 4i64;
v35 = 4i64;
v37 = 4i64;
LODWORD(result) = EtwWriteEx(v9, v8, 0i64, 0i64, 0i64, 0i64, UserDataCount, &UserData);
}
}
return result;
}Referenced by:
PpmPerfApplyHiddenProcessorState
PpmPerfArbitratorApplyProcessorState