PnpDeviceCompletionProcessCompletedRequests

NTSTATUS __stdcall PnpDeviceCompletionProcessCompletedRequests(UINT64 All, UINT64 Wait, UINT64 *Completed){
  int v4; 
  int v5; 
  NTSTATUS v6; 
  INT64 CompletedRequest; 
  int v9; 
  _PNP_DEVICE_COMPLETION_QUEUE *v10; 
  *(_BYTE *)Completed = 0;
  v4 = Wait;
  v5 = All;
  v6 = 0;
  if( !(unsigned int)PnpDeviceCompletionQueueIsEmpty((_PNP_DEVICE_COMPLETION_QUEUE *)All) )
  {
    do
    {
      if( !Semaphore.Header.SignalState && (!v4 || !v5 && *(_BYTE *)Completed) )
        break;
      CompletedRequest = PnpDeviceCompletionQueueGetCompletedRequest();
      v9 = PnpDeviceCompletionProcessCompletedRequest(CompletedRequest);
      *(_BYTE *)Completed = 1;
      if( v9 == -1073741106 )
        v6 = -1073741106;
    }
    while( !(unsigned int)PnpDeviceCompletionQueueIsEmpty(v10) );
  }
  return v6;
}

Referenced by:

PipProcessDevNodeTree