SmArrayGrow
UINT64 __stdcall SmArrayGrow(UINT64 DesiredIndex, UINT64 EntrySize, UINT64 *EntryCountMax, VOID **Array){
unsigned int v6;
unsigned __int64 v7;
VOID **PoolWithTag;
VOID **v9;
__int64 v10;
size_t v11;
if( (unsigned int)DesiredIndex < *(_DWORD *)EntryCountMax )
return 1i64;
v6 = 2 * *(_DWORD *)EntryCountMax;
if( v6 < 8 )
v6 = 8;
if( (unsigned int)DesiredIndex < v6 || (v6 = DesiredIndex + 8, (int)DesiredIndex + 8 >= (unsigned int)DesiredIndex) )
{
v7 = 16i64 * v6;
if( v7 <= 0xFFFFFFFF )
{
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, (unsigned int)v7, 1916890483i64);
v9 = PoolWithTag;
if( PoolWithTag )
{
v10 = (unsigned int)(16 * *(_DWORD *)EntryCountMax);
v11 = 16 * *(_DWORD *)EntryCountMax;
memset((char *)PoolWithTag + v10, 0i64, v7 - v10);
if( (_DWORD)v10 )
{
memmove(v9, *Array, v11);
ExFreePoolWithTag(*Array, 0);
}
*Array = v9;
*(_DWORD *)EntryCountMax = v6;
return 1i64;
}
}
}
return 0i64;
}Referenced by:
B_TREE<_SM_PAGE_KEY,SMKM_STORE_MGR::SMKM_FRONTEND_ENTRY,4096,B_TREE_DUMMY_NODE_POOL,B_TREE_KEY_COMPARATOR<_SM_PAGE_KEY>>::BTreeInsertEx
B_TREE<_SM_PAGE_KEY,SMKM_STORE_MGR::SMKM_FRONTEND_ENTRY,4096,B_TREE_DUMMY_NODE_POOL,B_TREE_KEY_COMPARATOR<_SM_PAGE_KEY>>::BTreeSearchKey
B_TREE<_SM_PAGE_KEY,ST_STORE::_ST_PAGE_ENTRY,4096,NP_CONTEXT,B_TREE_KEY_COMPARATOR<_SM_PAGE_KEY>>::BTreeInsertEx
B_TREE<_SM_PAGE_KEY,ST_STORE::_ST_PAGE_ENTRY,4096,NP_CONTEXT,B_TREE_KEY_COMPARATOR<_SM_PAGE_KEY>>::BTreeSearchKey
SMKM_STORE::SmStOutSwapStore
SmKmStoreFileGetExtents
long,ST_STORE::_ST_HASH_ENTRY,4096,NP_CONTEXT,ST_STORE::ST_HASH_ENTRY_COMPARATOR>::BTreeInsertEx
long,ST_STORE::_ST_HASH_ENTRY,4096,NP_CONTEXT,ST_STORE::ST_HASH_ENTRY_COMPARATOR>::BTreeSearchKey
long,ST_STORE::_ST_REGION_ENTRY,4096,NP_CONTEXT,ST_STORE::ST_REGION_ENTRY_COMPARATOR>::BTreeInsertEx
long,ST_STORE::_ST_REGION_ENTRY,4096,NP_CONTEXT,ST_STORE::ST_REGION_ENTRY_COMPARATOR>::BTreeSearchKey