KiProcessSecondarySignalList
VOID __stdcall KiProcessSecondarySignalList(_KDPC *Dpc, VOID *DpcContext, VOID *SystemArgument1, VOID *SystemArgument2){
_LIST_ENTRY *Blink;
__int64 v5;
char OldIrql[8];
_LIST_ENTRY DisconnectedList;
OldIrql[0] = 0;
DisconnectedList.Blink = &DisconnectedList;
DisconnectedList.Flink = &DisconnectedList;
KiAcquireSecondarySignalListLock((UINT8 *)OldIrql);
if( (__int64 *)KiSecondarySignalList != &KiSecondarySignalList )
{
Blink = DisconnectedList.Blink;
if( DisconnectedList.Flink->Blink != &DisconnectedList
|| DisconnectedList.Blink->Flink != &DisconnectedList
|| *(__int64 **)(KiSecondarySignalList + 8) != &KiSecondarySignalList
|| *(__int64 **)qword_140C2B268 != &KiSecondarySignalList
|| (DisconnectedList.Blink->Flink = (_LIST_ENTRY *)&KiSecondarySignalList,
DisconnectedList.Blink = (_LIST_ENTRY *)qword_140C2B268,
*(_QWORD *)qword_140C2B268 = &DisconnectedList,
v5 = KiSecondarySignalList,
qword_140C2B268 = (__int64)Blink,
*(__int64 **)(KiSecondarySignalList + 8) != &KiSecondarySignalList)
|| (__int64 *)Blink->Flink != &KiSecondarySignalList )
{
__fastfail(3u);
}
Blink->Flink = (_LIST_ENTRY *)KiSecondarySignalList;
*(_QWORD *)(v5 + 8) = Blink;
qword_140C2B268 = (__int64)&KiSecondarySignalList;
KiSecondarySignalList = (__int64)&KiSecondarySignalList;
}
KiSecondarySignalDpcRunning = 0;
KxReleaseSpinLock(&KiSecondarySignalListLock);
__writecr8((unsigned __int8)OldIrql[0]);
KiProcessDisconnectList(&DisconnectedList);
}Referenced by:
No references.