SdbGetTagDataSize
UINT64 __stdcall SdbGetTagDataSize(_DB *pdb, UINT64 tiWhich){
int v2;
int v4;
UINT64 result;
unsigned int pBuffer;
v2 = tiWhich;
v4 = SdbGetTagFromTagID(pdb, tiWhich) & 0xF000;
switch( v4 )
{
case 12288:
result = 2i64;
break;
case 24576:
case 16384:
result = 4i64;
break;
case 20480:
result = 8i64;
break;
case 4096:
result = 0i64;
break;
case 8192:
result = 1i64;
break;
default:
pBuffer = 0;
if( !SdbpReadMappedData(pdb, (unsigned int)(v2 + 2), &pBuffer, 4ui64) )
AslLogCallPrintf(1ui64, (INT8 *)"SdbGetTagDataSize", 0x116ui64, (INT8 *)"Error reading size data");
result = pBuffer;
break;
}
if( (int)result + v2 < (unsigned int)result || (int)result + v2 > (unsigned int)pdb[5] )
{
AslLogCallPrintf(1ui64, (INT8 *)"SdbGetTagDataSize", 0x121ui64, (INT8 *)"Error reading size data");
return 0xFFFFFFFFi64;
}
return result;
}Referenced by:
KsepDbReadKData
SdbQueryDataExTagID
SdbpGetFirstIndexedRecord
SdbpGetIndex
SdbpGetMatchingTextAttributes
SdbpGetNextIndexedRecord
SdbpGetNextTagId
SdbpGetRegistryMatchingAttributes
SdbpReadTagData