PopClearSpecialRequest

NTSTATUS __stdcall PopClearSpecialRequest(_PO_POWER_REQUEST *PowerRequest, _POWER_REQUEST_TYPE Type){
  NTSTATUS v3; 
  VOID *v4; 
  char v5; 
  VOID *v6; 

  if( Type != PowerRequestExecutionRequired )
    return -1073741811;
  v4 = 0i64;
  v5 = 0;
  PopAcquirePowerRequestPushLock(1u);
  v6 = (VOID *)*((_QWORD *)PowerRequest + 16);
  if( v6 )
  {
    *((_QWORD *)PowerRequest + 16) = 0i64;
    *((_QWORD *)PowerRequest + 15) = 0i64;
    v4 = v6;
    --PowerRequest[11];
    v5 = 1;
    PopDiagTracePowerRequestChange(PowerRequest);
    v3 = 0;
  }
  else
  {
    v3 = -1073741811;
  }
  PopReleaseRwLock((_POP_RW_LOCK *)((char *)&stru_140C23628 + 5864));
  if( v5 )
    PsReleaseProcessWakeCounter(v4, (UINT64)PowerRequest);
  return v3;
}

Referenced by:

PopPowerRequestActionInfo