CcDecrementOpenCount
VOID __fastcall CcDecrementOpenCount(INT64 a1){
UINT8 Partition;
int v3;
int v4;
__int64 v5;
bool v6;
--*(_DWORD *)(a1 + 4);
--*(_DWORD *)(a1 + 536);
Partition = CcGetPartition((_QWORD *)a1);
if( !*(_DWORD *)(a1 + 4) )
{
*(_BYTE *)(*(_QWORD *)(a1 + 528) + 633i64) = 1;
v3 = *(_DWORD *)(a1 + 152);
v4 = *(_DWORD *)(a1 + 112);
if( (v3 & 0x10000) != 0 )
{
if( !v4 )
CcInsertIntoDirtySharedCacheMapList((_SHARED_CACHE_MAP *)a1);
v6 = 1;
}
else
{
if( v4 || (v3 & 0x20) != 0 )
return;
CcInsertIntoDirtySharedCacheMapList((_SHARED_CACHE_MAP *)a1);
v6 = v5 != 0;
}
CcScheduleLazyWriteScan(Partition, v6);
}
}Referenced by:
CcCompleteAsyncRead
CcFlushCachePriv
CcGetFlushedValidData
CcMdlWriteAbort
CcMdlWriteComplete2
CcNotifyOfMappedWrite
CcNotifyOfMappedWriteComplete
CcPerformReadAhead
CcPurgeCacheSection
CcSetFileSizesEx
CcUnmapInactiveViewsInternal
CcWriteBehindInternal