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