PnprQuiesceWorker
VOID __stdcall PnprQuiesceWorker(PVOID Parameter){
DEVICE_OBJECT *v2;
DEVICE_OBJECT *v3;
int v4;
int v5;
struct _KEVENT *v6;
int v7;
VOID *v8[2];
INT64 v9[2];
__int128 v10;
__int128 v11;
__int64 v12;
int v13;
*(_OWORD *)v9 = 0i64;
v10 = 0i64;
v11 = 0i64;
v12 = 0i64;
v13 = 0;
v8[0] = (VOID *)(PnprContext + 20760);
v8[1] = (VOID *)(PnprContext + 20808);
KeWaitForMultipleObjects((_BYTE *)2, v8, WaitAny, Executive, 0, 0, 0i64, 0i64);
if( v4 != 1 )
{
PnprLockPagesForReplace(v3, v2);
v5 = PnprQuiesceDevices((INT64)v9);
v6 = (struct _KEVENT *)PnprContext;
v7 = v5;
*(_DWORD *)(PnprContext + 20856) = v5;
KeSetEvent(v6 + 866, 0);
if( v7 >= 0 )
{
KeWaitForSingleObject((PVOID)(PnprContext + 20808), Executive, 0, 0, 0i64);
PnprWakeDevices((__int64)v9);
}
PnprCompleteWake();
}
KeSetEvent((PRKEVENT)(PnprContext + 20832), 0);
ExFreePoolWithTag(Parameter, 0x51706E50u);
}Referenced by:
No references.