PopBatteryIrpComplete

NTSTATUS __stdcall PopBatteryIrpComplete(_DEVICE_OBJECT *Device, _IRP *Irp, VOID *Context){
  int Status; 
  bool v4; 
  int v5; 

  Status = Irp->IoStatus.Status;
  if( Status == -1073741536 )
  {
    v4 = 0;
  }
  else
  {
    v5 = *((_DWORD *)Context + 26);
    v4 = 1;
    if( Status >= 0 )
    {
      if( !v5 )
      {
        *((_DWORD *)Context + 27) = *((_DWORD *)Context + 42);
        *((_DWORD *)Context + 26) = 1;
      }
    }
    else
    {
      *((_DWORD *)Context + 26) = v5 != 0 ? 2 : 4;
      v4 = v5 != 0;
    }
  }
  KeSetEvent((PRKEVENT)((char *)Context + 80), 0, 0);
  if( v4 )
    PopBatteryQueueWork(1i64);
  return -1073741802;
}

Referenced by:

No references.