@Override
	protected DataTypeComponent[] getAllComponents(MemBuffer buf) {
		Program program = buf.getMemory().getProgram();
		DataTypeManager dtm = program.getDataTypeManager();
		long rtti1Count = getRtti1Count(buf.getMemory(), buf.getAddress());
		DataType rtti2Dt = new RTTI2DataType(rtti1Count, dtm);
		DataType rtti2RefDt = getReferenceDataType(program, rtti2Dt);

		DataTypeComponent[] comps = new DataTypeComponent[4];
		System.arraycopy(fixedComps, 0, comps, 0, 3);
		comps[3] = new ReadOnlyDataTypeComponent(rtti2RefDt, this, 4, 3, RTTI_2_POINTER_OFFSET,
			"pBaseClassArray", is64Bit(program) ? "rtti1MapDisplacement" : "rtti1MapPointer");
		return comps;
	}
Creates a dynamic Class Hierarchy Descriptor data type.
@param dtm the data type manager for this data type.
Ghidra/Features/Base/src/main/java/ghidra/app/util/datatype/microsoft/RTTI3DataType.java