ViTargetRemovingCheckContiguousMemory
VOID __stdcall ViTargetRemovingCheckContiguousMemory(
_VF_TARGET_VERIFIED_DRIVER_DATA *VerifiedData,
_KLDR_DATA_TABLE_ENTRY *DataTableEntry){
_LIST_ENTRY *p_ContiguousMemoryListHead;
_LIST_ENTRY *Flink;
_LIST_ENTRY *v4;
_LIST_ENTRY *Blink;
UINT64 v6;
p_ContiguousMemoryListHead = &VerifiedData->ContiguousMemoryListHead;
if( (MmVerifierData & 0x800) != 0 && p_ContiguousMemoryListHead->Flink != p_ContiguousMemoryListHead )
VerifierBugCheckIfAppropriate(
0xC4ui64,
0x62u,
(ULONG_PTR)DataTableEntry->BaseDllName.Buffer,
(ULONG_PTR)VerifiedData,
VerifiedData->ContiguousMemoryBytes,
v6);
while( 1 )
{
Flink = p_ContiguousMemoryListHead->Flink;
if( p_ContiguousMemoryListHead->Flink == p_ContiguousMemoryListHead )
break;
v4 = Flink->Flink;
if( Flink->Flink->Blink != Flink || (Blink = Flink->Blink, Blink->Flink != Flink) )
__fastfail(3u);
Blink->Flink = v4;
v4->Blink = Blink;
VfUtilFreePoolDispatchLevel(Flink);
}
}Referenced by:
VfTargetDriversRemove