PnpRecordBlackboxDelayedRemoveWorkerInformation
VOID __fastcall PnpRecordBlackboxDelayedRemoveWorkerInformation(INT64 a1){
_DWORD *v1;
__int64 v2;
__int64 v4;
_DWORD *PoolWithTag;
UINT64 v6;
__int64 InputBuffer[2];
__int64 v8;
int v9;
int v10;
v8 = 0i64;
v10 = 0;
v1 = 0i64;
v2 = 0i64;
v4 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
if( a1 )
{
v2 = 64i64;
PoolWithTag = ExAllocatePoolWithTag(NonPagedPoolNx, 0x40ui64, 0x4B706E50ui64);
v1 = PoolWithTag;
if( PoolWithTag )
{
memset((INT64)PoolWithTag, 0i64);
*v1 = 1;
v1[1] = 64;
v1[3] = (v4 - **(_QWORD **)(a1 + 24)) / 0x2710ui64;
*((_QWORD *)v1 + 3) = *(_QWORD *)(a1 + 8);
*((_QWORD *)v1 + 4) = *(_QWORD *)(a1 + 16);
*((_QWORD *)v1 + 2) = *(_QWORD *)a1;
*((_QWORD *)v1 + 5) = PnpDeviceEventThread;
*((_QWORD *)v1 + 6) = *(_QWORD *)PnpDeviceActionThread;
*((_QWORD *)v1 + 7) = PnpDelayedRemoveWorkerThread;
}
}
v8 = 0i64;
v10 = 0;
LODWORD(v6) = 0;
v9 = 11;
InputBuffer[0] = (__int64)v1;
InputBuffer[1] = v2;
NtPowerInformation(TraceApplicationPowerMessage|0x40, InputBuffer, 0x20ui64, 0i64, v6);
if( v1 )
ExFreePoolWithTag(v1, 0x4B706E50u);
}Referenced by:
PnpRecordBlackbox