PnpDeviceCompletionRequestDestroy

VOID __fastcall PnpDeviceCompletionRequestDestroy(INT64 a1){
  _IO_WORKITEM *WorkItem; 
  WORK_QUEUE_ITEM *v3; 
  if( _InterlockedExchangeAdd((volatile signed __int32 *)(a1 + 56), 0xFFFFFFFF) == 1 )
  {
    WorkItem = IoAllocateWorkItem(*(_DEVICE_OBJECT **)(*(_QWORD *)(a1 + 16) + 32i64));
    if( WorkItem )
    {
      v3 = (WORK_QUEUE_ITEM *)IopQueueWorkItemProlog(
                                (INT64)WorkItem,
                                (INT64)PnpDeviceCompletionRequestDestroyWorkItem,
                                a1);
      ExQueueWorkItemFromIo(v3, DelayedWorkQueue);
    }
  }
}

Referenced by:

PnpDeviceCompletionProcessCompletedRequest
PnpDeviceCompletionRoutine