CmpCleanupDiscardReplaceContext
VOID __stdcall CmpCleanupDiscardReplaceContext(_CMP_DISCARD_AND_REPLACE_KCB_CONTEXT *Context){
__int64 v1;
VOID *v3;
_CM_KEY_CONTROL_BLOCK *BaseKcb;
_LIST_ENTRY *p_ClonedKcbListHead;
v3 = (VOID *)v1;
BaseKcb = Context->BaseKcb;
if( BaseKcb )
{
p_ClonedKcbListHead = &Context->ClonedKcbListHead;
if( p_ClonedKcbListHead->Flink != p_ClonedKcbListHead )
{
CmpEnumerateAllHigherLayerKcbs(
(__int64)BaseKcb,
(unsigned int(__fastcall *)(void *, __int64))CmpCleanupDiscardReplacePre,
(unsigned int(__fastcall *)(void *, __int64, __int64))CmpCleanupDiscardReplacePost,
v1,
(__int64)Context,
1,
0);
if( p_ClonedKcbListHead->Flink != p_ClonedKcbListHead )
CmpCleanupDiscardReplacePost(Context->BaseKcb, v3);
}
}
}Referenced by:
CmDeleteLayeredKey
CmpCleanupLightWeightPrepare
CmpCommitDeleteKeyUoW
CmpLightWeightCommitDeleteKeyUoW
CmpLightWeightPrepareDeleteKeyUoW