SmKmEtwLogStoreChange

VOID __stdcall SmKmEtwLogStoreChange(
        UINT64 *EtwRegHandle,
        PVOID StoreCtx,
        EVENT_DESCRIPTOR *EventDescriptor,
        EVENT_DESCRIPTOR *a4){
  EVENT_DATA_DESCRIPTOR *UserData; 
  int v8; 
  UINT64 UserDataCount; 
  __int64 v10[2]; 
  int v11; 
  __int64 v12; 
  int v13; 
  __int64 result[20]; 
  EVENT_DATA_DESCRIPTOR v15; 
  memset((INT64)&v15, 0i64);
  memset((INT64)result, 0i64);
  v12 = 19i64;
  v10[1] = (__int64)result;
  v11 = 0;
  UserData = &v15;
  v10[0] = (__int64)&v15;
  v13 = 152;
  if( EventDescriptor == &SmEventStoreDelete )
  {
    v8 = 1;
    result[0] = (__int64)StoreCtx;
    v15.Ptr = (unsigned __int64)result;
    *(_QWORD *)&v15.Size = 8i64;
  }
  else
  {
    SMKM_STORE::SmStEtwFillStoreEvent((__int64)StoreCtx, (__int64)v10);
    v8 = v11;
    UserData = (EVENT_DATA_DESCRIPTOR *)v10[0];
  }
  LODWORD(UserDataCount) = v8;
  EtwWriteEx(*EtwRegHandle, EventDescriptor, 0i64, 0i64, 0i64, 0i64, UserDataCount, UserData);
}

Referenced by:

SmKmEtwLogStoreRundown
SmKmStoreAdd
SmKmStoreDelete