PpmMediaBufferingWorker

VOID __stdcall PpmMediaBufferingWorker(VOID *Context){
  bool v1; 
  unsigned __int8 v2; 
  UINT8 v3; 
  unsigned __int64 v4; 
  REGHANDLE v5; 
  _BOOL4 v6; 
  _EVENT_DATA_DESCRIPTOR UserData; 

  while( 1 )
  {
    v1 = 1;
    v2 = KeAcquireSpinLockRaiseToDpc((UINT64 *)&stru_140C23628 + 443);
    v3 = *(&stru_140C23628 + 3553);
    v4 = v2;
    if( *(&stru_140C23628 + 3553) == *(&stru_140C23628 + 1828) )
      break;
    *(&stru_140C23628 + 1828) = *(&stru_140C23628 + 3553);
    KxReleaseSpinLock((UINT64 *)&stru_140C23628 + 443);
    __writecr8(v4);
    v6 = 0;
    if( PpmEtwRegistered )
    {
      v5 = PpmEtwHandle;
      if( EtwEventEnabled(PpmEtwHandle, &PPM_ETW_MEDIA_BUFFERING_NOTIFY) )
      {
        UserData.Size = 4;
        UserData.Reserved = 0;
        v6 = v3 != 0;
        UserData.Ptr = (unsigned __int64)&v6;
        EtwWriteEx(v5, &PPM_ETW_MEDIA_BUFFERING_NOTIFY, 0i64, 0, 0, 0, 1u, &UserData);
      }
    }
    PpmAcquireLock((_PPM_LOCK *)((char *)&stru_140C23628 + 1048));
    if( !PpmLowPowerProfile )
    {
      if( v3 )
        v1 = 0;
      else
        v1 = *(&stru_140C23628 + 3592) != 0;
    }
    PpmReleaseLock((INT64 *)&stru_140C23628 + 131);
    if( v1 )
    {
      *(&stru_140C23628 + 3592) = v3;
      PpmPdcNotifyMediaBufferingUpdate(v3);
    }
  }
  *(&stru_140C23628 + 3552) = 0;
  KxReleaseSpinLock((UINT64 *)&stru_140C23628 + 443);
  __writecr8(v4);
}

Referenced by:

No references.