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