HalpCmcInitializePolling
NTSTATUS __stdcall HalpCmcInitializePolling(INT64 a1){
unsigned __int64 v2;
int v3;
NTSTATUS result;
v2 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc(qword_140CED3C0);
if( !byte_140C50551 )
{
qword_140C50528 = (INT64)&unk_140CED3D0;
HalpCmcInitializeErrorPacketContents((INT64)&unk_140CED3D0);
v3 = *(_DWORD *)(a1 + 52);
stru_140C505B8.DeferredRoutine = (void(__fastcall *)(_KDPC *, void *, void *, void *))HalpCmcDeferredRoutine;
qword_140C50608 = (__int64)HalpCmcWorkerRoutine;
LODWORD(Period) = v3;
*(_QWORD *)stru_140C50578.gap0 = 8i64;
*(_QWORD *)&stru_140C50578.gap0[16] = &stru_140C50578.gap0[8];
*(_QWORD *)&stru_140C50578.gap0[8] = &stru_140C50578.gap0[8];
stru_140C505B8.TargetInfoAsUlong = 275;
stru_140C505B8.DeferredContext = &Period;
stru_140C505B8.DpcData = 0i64;
stru_140C505B8.ProcessorHistory = 0i64;
qword_140C50610 = (__int64)&Period;
qword_140C505F8 = 0i64;
stru_140C50578.DueTime.QuadPart = 0i64;
stru_140C50578.Period = 0;
stru_140C50578.Processor = 0;
byte_140C50551 = 1;
}
KxReleaseSpinLock(qword_140CED3C0);
result = KiIrqlFlags;
__writecr8(v2);
return result;
}Referenced by:
HalpInitializeCmc