CmpStopRMLog
void __fastcall CmpStopRMLog(__int64 a1){
_ETHREAD *CurrentThread;
__int64 v3;
CmpLockRegistry();
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
ExAcquireResourceExclusiveLite(*(ERESOURCE **)(a1 + 128), 1u);
if( *(_QWORD *)(a1 + 88) )
{
if( *(_QWORD *)(a1 + 96) )
{
CmpLogCheckpoint(a1, v3, 0);
ClfsDeleteMarshallingArea(*(PVOID *)(a1 + 96));
*(_QWORD *)(a1 + 96) = 0i64;
}
if( (PVOID)a1 != CmRmSystem && *(_QWORD *)(a1 + 16) == a1 + 16 )
ClfsDeleteLogByPointer(*(PLOG_FILE_OBJECT *)(a1 + 88));
ClfsCloseLogFileObject(*(PLOG_FILE_OBJECT *)(a1 + 88));
*(_QWORD *)(a1 + 88) = 0i64;
}
ExReleaseResourceLite(*(PERESOURCE *)(a1 + 128));
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
CmpUnlockRegistry();
}Referenced by:
CmShutdownCmRM