CcInsertIntoDirtySharedCacheMapList
VOID __fastcall CcInsertIntoDirtySharedCacheMapList(_SHARED_CACHE_MAP *SharedCacheMap){
_CC_PARTITION *Partition;
_LIST_ENTRY *v2;
_LIST_ENTRY *v3;
_LIST_ENTRY *p_LoggedStreamLinks;
_LIST_ENTRY *Flink;
_LIST_ENTRY *Blink;
_LIST_ENTRY *v7;
_LIST_ENTRY *p_SharedCacheMapLinks;
_LIST_ENTRY *v9;
_LIST_ENTRY *v10;
_LIST_ENTRY *v11;
Partition = SharedCacheMap->Partition;
v2 = (_LIST_ENTRY *)((char *)Partition + 72);
v3 = (_LIST_ENTRY *)((char *)Partition + 96);
if( (SharedCacheMap->Flags & 0x3000000) != 0 )
{
p_LoggedStreamLinks = &SharedCacheMap->LoggedStreamLinks;
Flink = SharedCacheMap->LoggedStreamLinks.Flink;
if( Flink->Blink != &SharedCacheMap->LoggedStreamLinks
|| (Blink = SharedCacheMap->LoggedStreamLinks.Blink, Blink->Flink != p_LoggedStreamLinks)
|| (Blink->Flink = Flink, Flink->Blink = Blink, v7 = v3->Blink, v7->Flink != v3) )
{
LABEL_10:
__fastfail(3u);
}
p_LoggedStreamLinks->Flink = v3;
SharedCacheMap->LoggedStreamLinks.Blink = v7;
v7->Flink = p_LoggedStreamLinks;
v3->Blink = p_LoggedStreamLinks;
}
p_SharedCacheMapLinks = &SharedCacheMap->SharedCacheMapLinks;
v9 = SharedCacheMap->SharedCacheMapLinks.Flink;
if( v9->Blink != &SharedCacheMap->SharedCacheMapLinks )
goto LABEL_10;
v10 = SharedCacheMap->SharedCacheMapLinks.Blink;
if( v10->Flink != p_SharedCacheMapLinks )
goto LABEL_10;
v10->Flink = v9;
v9->Blink = v10;
v11 = v2->Blink;
if( v11->Flink != v2 )
goto LABEL_10;
p_SharedCacheMapLinks->Flink = v2;
p_SharedCacheMapLinks->Blink = v11;
v11->Flink = p_SharedCacheMapLinks;
v2->Blink = p_SharedCacheMapLinks;
}Referenced by:
CcDecrementOpenCount
CcSetDirtyInMask
CcSetDirtyPinnedData
CcUninitializeCacheMap
CcWriteBehindInternal