PopIdlePhaseWatchdogCallback
NTSTATUS __stdcall PopIdlePhaseWatchdogCallback(INT64 a1, INT64 a2, INT64 a3, INT64 a4, INT64 P3, INT64 P4){
unsigned int v7;
void *v9;
NTSTATUS v10;
VOID *v12;
INT64 *v13;
UINT64 v14;
PVOID P[10];
v7 = a2;
memset(P, 0i64, sizeof(P));
PopSnapSystemIdleContext(&P[2], &P[3]);
PopPdcSnapDiagnosticContext();
PopAcquireRwLockExclusive((_POP_RW_LOCK *)((char *)&PopIrpWorkerControlEvent + 1960));
v9 = (void *)*(&PopIrpWorkerControlEvent + 247);
*(&PopIrpWorkerControlEvent + 247) = 0i64;
*(&PopIrpWorkerControlEvent + 496) = 0;
P[0] = v9;
PopReleaseRwLock((_POP_RW_LOCK *)((char *)&PopIrpWorkerControlEvent + 1960));
memset(&P[4], 0, 40);
PopPowerAggregatorSnapDiagnosticContext((CHAR **)&P[9]);
LODWORD(v12) = 0;
v10 = DbgkWerCaptureLiveKernelDump(
L"IdlePhaseWatchdog",
v7,
a3,
a4,
P3,
P4,
0i64,
0i64,
v12,
v13,
0i64,
0i64,
0i64,
0i64,
0i64,
v14,
(UINT64)P[0],
(UINT64)P[1],
(UINT64)P[2],
P[3],
(DBGK_LIVEDUMP_FLAGS)P[4]);
if( P[0] )
ExFreePoolWithTag(P[0], 0x67696450u);
if( P[2] )
ExFreePoolWithTag(P[2], 0x67696450u);
if( P[4] )
ExFreePoolWithTag(P[4], 0x54445050u);
if( P[5] )
ExFreePoolWithTag(P[5], 0x54445050u);
if( P[6] )
ExFreePoolWithTag(P[6], 0x54445050u);
if( P[7] )
ExFreePoolWithTag(P[7], 0x54445050u);
if( P[8] )
ExFreePoolWithTag(P[8], 0x54445050u);
if( P[9] )
ExFreePoolWithTag(P[9], 0x67696450u);
return v10;
}Referenced by:
No references.