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