MiCancelPhase0Locking

VOID __stdcall MiCancelPhase0Locking(_KLDR_DATA_TABLE_ENTRY *DataTableEntry){
  INT64 v1; 
  _ETHREAD *CurrentThread; 

  if( (DataTableEntry->Flags & 0x400000) != 0 )
  {
    CurrentThread = (_ETHREAD *)KeGetCurrentThread();
    --CurrentThread->Tcb.KernelApcDisable;
    ExAcquireResourceExclusiveLite((UINT64)&PsLoadedModuleResource, 1, v1);
    if( (DataTableEntry->Flags & 0x400000) != 0 )
    {
      MiLockPagableSections(DataTableEntry, 0i64);
      DataTableEntry->Flags &= ~0x400000u;
    }
    ExReleaseResourceLite(&PsLoadedModuleResource);
    KeLeaveCriticalRegionThread(&CurrentThread->Tcb);
  }
}

Referenced by:

MmPageEntireDriver
MmResetDriverPaging