public static DataType getDataType(Program program) {

		DataTypeManager dataTypeManager = program.getDataTypeManager();
		boolean isRelative = isRelative(program);
		CategoryPath categoryPath = new CategoryPath(CATEGORY_PATH);
		StructureDataType struct =
			getAlignedPack4Structure(dataTypeManager, categoryPath, STRUCTURE_NAME);

		// Add the components.
		DataType compDt;

		/* comps[0] */
		compDt = new IntegerDataType(dataTypeManager);
		struct.add(compDt, "nCount", null);

		/* comps[1] */
		if (isRelative) {
			compDt = new IBO32DataType(dataTypeManager);
			struct.add(compDt, "dispTypeArray", null);
		}
		else {
			compDt = new PointerDataType(EHCatchHandlerModel.getDataType(program), dataTypeManager);
			struct.add(compDt, "pTypeArray", null);
		}

		TypedefDataType typeDefDt =
			new TypedefDataType(categoryPath, DATA_TYPE_NAME, struct, dataTypeManager);

		return MSDataTypeUtils.getMatchingDataType(program, typeDefDt);
	}
This gets the ESTypeList structure for the indicated program.
@param program the program which will contain this data type. 
@return the ESTypeList structure.
Ghidra/Features/MicrosoftCodeAnalyzer/src/main/java/ghidra/app/cmd/data/exceptionhandling/EHESTypeListModel.java