PiDrvDbUnloadNodeWaitWorkerCallback
VOID __stdcall PiDrvDbUnloadNodeWaitWorkerCallback(VOID *Parameter){
NTSTATUS v2;
_ETHREAD *CurrentThread;
int v4;
INT64 v5;
v2 = ZwWaitForSingleObject(*((_QWORD *)Parameter + 59), 0, 0i64);
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v4 = v2;
--CurrentThread->Tcb.KernelApcDisable;
ExAcquireResourceExclusiveLite((UINT64)Parameter + 88, 1, v5);
if( !*((_BYTE *)Parameter + 489) )
{
*((_BYTE *)Parameter + 489) = 1;
PnpDiagnosticTraceObjectWithStatus(&KMPnPEvt_DriverDatabaseUnload_Stop, (unsigned __int16 *)Parameter + 8, v4);
PnpDiagnosticTraceObjectWithStatus(&KMPnPEvt_DriverDatabaseLoaded_Stop, (unsigned __int16 *)Parameter + 8, v4);
}
ExReleaseResourceLite((PERESOURCE)((char *)Parameter + 88));
KeLeaveCriticalRegionThread(KeGetCurrentThread());
}Referenced by:
No references.