PnpDisableWatchdog
VOID *__fastcall PnpDisableWatchdog(__int64 a1){
__int64 v1;
int v3;
v1 = *(_QWORD *)(a1 + 8);
ExDeleteTimer(*(_QWORD *)(v1 + 56), 1, 1, 0i64);
*(_QWORD *)(v1 + 56) = 0i64;
if( *(int *)(v1 + 96) > 0 )
KeWaitForSingleObject(v1 + 104, 0, 0, 0, 0i64);
ExFreePoolWithTag((PVOID)v1, 0x54645750u);
v3 = *(_DWORD *)(a1 + 16);
*(_QWORD *)(a1 + 8) = 0i64;
PnpRecordBlackbox(0i64, v3);
if( *(_BYTE *)(a1 + 32) )
PnpWatchdogEtwWrite(a1, 0);
return PnpFreeWatchdog((void *)a1);
}Referenced by:
PnpCallAddDevice
PnpDelayedRemoveWorker
PnpDeviceCompletionRequestDestroyWorkItem
PnpDeviceEventWorker
PnpProcessCompletedEject