CmpPrepareLightWeightTransaction
NTSTATUS __stdcall CmpPrepareLightWeightTransaction(_CM_TRANS *CmTrans){
struct _LOOKASIDE_LIST_EX *v1;
struct _LOOKASIDE_LIST_EX *v2;
__int64 v4;
__int64 v5;
__int64 v6;
NTSTATUS v7;
LIST_ENTRY *ListIterator;
struct _EVENT_DATA_DESCRIPTOR v10[2];
v2 = v1;
if( (unsigned int)dword_140C02130 > 5 && tlgKeywordOn((__int64)&dword_140C02130, 1i64) )
tlgWriteTransfer_EtwWriteTransfer(
(__int64)&dword_140C02130,
(unsigned __int8 *)&word_1400224AE,
0i64,
0i64,
2u,
v10);
if( CmTrans )
{
LOCK_TRANSACTION_LIST();
CmTrans->TransState |= 1u;
UNLOCK_TRANSACTION_LIST();
ListIterator = 0i64;
while( 1 )
{
LODWORD(v4) = CmListGetNextElement(&CmTrans->KCBUoWListHead, &ListIterator, 0i64);
if( !v4 )
break;
v7 = CmpProcessLightWeightUOW(v4, 0i64, v5, v2);
if( v7 < 0 )
{
CmpCleanupLightWeightPrepare((__int64)CmTrans, v6, (__int64)v2);
goto LABEL_8;
}
}
}
v7 = 0;
LABEL_8:
if( (unsigned int)dword_140C02130 > 5 && tlgKeywordOn((__int64)&dword_140C02130, 1i64) )
tlgWriteTransfer_EtwWriteTransfer(
(__int64)&dword_140C02130,
(unsigned __int8 *)&byte_1400224DF,
0i64,
0i64,
2u,
v10);
return v7;
}Referenced by:
CmpCommitLightWeightTransaction