CmpStartRMLogs
NTSTATUS __stdcall CmpStartRMLogs(CM_RM *CmRm){
unsigned int RmFlags;
NTSTATUS v3;
bool v5;
__int64 v6;
INT64 v7;
int started;
INT64 v9;
UUID Uuid;
RmFlags = CmRm->RmFlags;
v3 = 0;
Uuid = 0i64;
if( (RmFlags & 8) != 0 )
return -1073741431;
if( (RmFlags & 1) == 0 )
{
v5 = CmpUuidCreate(&Uuid) >= 0;
v6 = (CmRm->RmFlags & 2) != 0 ? 4 : 0;
CmpLockRegistryFreezeAware(0);
started = CmpStartRMLog((char *)CmRm, 0i64, v7);
v3 = started;
if( started < 0 && started != -1073741697 && started != -1073741757 && started != -1073741670 && v5 )
{
CmRm->RmFlags &= ~2u;
v3 = CmpStartRMLog((char *)CmRm, (_LIST_ENTRY *)&Uuid, v9);
}
CmpUnlockRegistry();
*(int *)((char *)&CmRm->LogStartStatus1 + v6) = v3;
}
return v3;
}Referenced by:
CmpTransInitializeTransaction