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