PopCreateDynamicIrpWorker
NTSTATUS __stdcall PopCreateDynamicIrpWorker(KSEMAPHORE *StartedSemaphore){
KSEMAPHORE **v2;
KSEMAPHORE **v3;
int PowerThread;
LODWORD(v2) = ExAllocateFromNPagedLookasideList((NPAGED_LOOKASIDE_LIST *)PopDynamicIrpWorkerLookaside);
v3 = v2;
if( !v2 )
{
PowerThread = -1073741670;
LABEL_7:
if( v3 )
ExFreeToNPagedLookasideList((NPAGED_LOOKASIDE_LIST *)PopDynamicIrpWorkerLookaside, v3);
ExAcquireFastMutex(&PopIrpWorkerMutex);
--PopIrpWorkerPendingCount;
KeReleaseGuardedMutex(&PopIrpWorkerMutex);
return PowerThread;
}
*v2 = StartedSemaphore;
PowerThread = PopCreatePowerThread((KSTART_ROUTINE *)PopIrpWorker, v2);
if( PowerThread >= 0 )
PowerThread = 0;
if( PowerThread < 0 )
goto LABEL_7;
return PowerThread;
}Referenced by:
PopIrpWorkerControl
PopRunMaximumIrpWorkers