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